From 7e5b9fd14c8367564c2dc212778f438725f0a3df Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Mon, 24 Nov 2025 06:19:55 -0600 Subject: [PATCH] chore: implement deploy workflow --- .github/workflows/deploy.yml | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..1154feb --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,58 @@ +name: Deploy +on: + workflow_dispatch: + push: + branches: + - main + paths-ignore: + - '.github/**' + - '.gitignore' + - '**/*/LICENSE.md' + - '**/*/README.md' + - '**/*/Dockerfile' +jobs: + build: + name: Build and push Docker image + runs-on: ubuntu-24.04-arm + outputs: + version: ${{ steps.version.outputs.version }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Create version tag + id: version + run: echo "version=$(date +%Y.%m.%d.%H%M%S)" >> $GITHUB_OUTPUT + - name: Build and push server image + working-directory: src/Blog + run: | + TAG=${{ secrets.DOCKERHUB_USERNAME }}/links.stevanfreeborn.com:${{ steps.version.outputs.version }} + docker build -t $TAG . + docker push $TAG + deploy: + name: Deploy to server + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Run deploy script + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.SSH_HOST }} + username: ${{ secrets.SSH_USERNAME }} + key: ${{ secrets.SSH_KEY }} + script: | + TAG=${{ secrets.DOCKERHUB_USERNAME }}/links.stevanfreeborn.com:${{ steps.version.outputs.version }} + docker stop links.stevanfreeborn.com + docker rm links.stevanfreeborn.com + docker pull $TAG + docker run --restart always -d -p 7777:7777 --name links.stevanfreeborn.com $TAG