From 7823e98a0fa13f655e8330eb5ef9a0edb669c402 Mon Sep 17 00:00:00 2001 From: johannesbot Date: Wed, 18 Mar 2026 20:31:49 +0100 Subject: [PATCH] Update .gitea/workflows/build-and-deploy.yml --- .gitea/workflows/build-and-deploy.yml | 57 +++++++++++++++++++-------- 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index 22f42a0..f4caa8b 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -23,21 +23,46 @@ jobs: - name: Push Image run: docker push gitea.johannesbot.de/johannesbot/stupid-apis:latest -# deploy: -# runs-on: ubuntu-latest -# needs: build -# steps: -# - name: Deploy via SSH -# run: | -# mkdir -p ~/.ssh -# echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 -# chmod 600 ~/.ssh/id_ed25519 -# ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts -# -# ssh -i ~/.ssh/id_ed25519 ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} << 'EOF' -# cd /opt/myapp -# docker compose pull -# docker compose up -d -# EOF + deploy: + needs: build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Create deployment directory + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SSH_HOST }} + username: ${{ secrets.SSH_USER }} + password: ${{ secrets.SSH_PASSWORD }} + port: ${{ secrets.SSH_PORT || 22 }} + script: mkdir -p /home/${{ secrets.SSH_USER }}/stupid-apis + + - name: Copy docker-compose via SCP + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SSH_HOST }} + username: ${{ secrets.SSH_USER }} + password: ${{ secrets.SSH_PASSWORD }} + port: ${{ secrets.SSH_PORT || 22 }} + source: "docker-compose.prod.yml" + target: "/home/${{ secrets.SSH_USER }}/stupid-apis + + - name: Deploy via SSH + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SSH_HOST }} + username: ${{ secrets.SSH_USER }} + password: ${{ secrets.SSH_PASSWORD }} + port: ${{ secrets.SSH_PORT || 22 }} + script: | + cd /home/${{ secrets.SSH_USER }}/stupid-apis + mv docker-compose.prod.yml docker-compose.yml + # Login as root/sudo to ensure we can pull + echo "${{ secrets.REGISTRY_PASSWORD }}" | sudo docker login https://gitea.johannesbot.de -u ${{ secrets.REGISTRY_USER }} --password-stdin + sudo docker compose pull + sudo docker compose up -d --remove-orphans + sudo docker image prune -f