aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
authorBobby <[email protected]>2025-06-16 10:36:49 +0530
committerBobby <[email protected]>2025-06-16 10:36:49 +0530
commited51ad90f9d625830f1a998ca74e79efdb3ba382 (patch)
tree1f9d0c5d767d64d01531da3f48c6287222d924ed /.github/workflows/build.yml
parentafcb2cf92c5c72ec52458986ff862f3a9df40541 (diff)
downloadimageboard-ed51ad90f9d625830f1a998ca74e79efdb3ba382.tar.xz
imageboard-ed51ad90f9d625830f1a998ca74e79efdb3ba382.zip
Combine build and deploy into single workflow with job dependencies
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml53
1 files changed, 50 insertions, 3 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 84de603..44e1093 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,4 +1,4 @@
-name: Build
+name: Build and Deploy
on:
push:
@@ -7,7 +7,6 @@ on:
branches: [ "main" ]
jobs:
-
build:
runs-on: ubuntu-latest
steps:
@@ -19,4 +18,52 @@ jobs:
go-version: '1.24'
- name: Build
- run: go build -v ./... \ No newline at end of file
+ run: go build -v ./...
+
+ deploy:
+ runs-on: ubuntu-latest
+ needs: build
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
+ env:
+ IMAGE_URL: ""
+ APP_SERVER: ${{ secrets.APP_SERVER }}
+ APP_NAME: ${{ secrets.APP_NAME }}
+ APP_TOKEN: ${{ secrets.APP_TOKEN }}
+
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v4
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Login to Container Registry
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Preset Image Name
+ id: set_image_url
+ run: |
+ IMAGE_URL=$(echo ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}:$(echo ${{ github.sha }} | cut -c1-7) | tr '[:upper:]' '[:lower:]')
+ echo "IMAGE_URL=$IMAGE_URL" >> $GITHUB_ENV
+ echo "image_url=$IMAGE_URL" >> $GITHUB_OUTPUT
+
+ - name: Build and push Docker Image
+ uses: docker/build-push-action@v5
+ with:
+ context: .
+ file: ./Dockerfile
+ push: true
+ platforms: linux/arm64/v8
+ tags: ${{ steps.set_image_url.outputs.image_url }}
+
+ - name: Deploy Image to Server
+ uses: caprover/[email protected]
+ with:
+ server: ${{ env.APP_SERVER }}
+ app: ${{ env.APP_NAME }}
+ token: ${{ env.APP_TOKEN }}
+ image: ${{ steps.set_image_url.outputs.image_url }} \ No newline at end of file