name: Build and Deploy on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Login to Gitea Registry run: | echo "${{ secrets.REGISTRY_PASSWORD }}" | \ docker login https://gitea.johannesbot.de -u ${{ secrets.REGISTRY_USER }} --password-stdin - name: Build Image run: docker build -t gitea.johannesbot.de/johannesbot/mc-computer-craft-api-backend:latest . - name: Push Image run: docker push gitea.johannesbot.de/johannesbot/mc-computer-craft-api-backend:latest deploy: needs: build runs-on: ubuntu-latest steps: - name: Checkout run: | git clone ${{ github.server_url }}/${{ github.repository }}.git . git checkout ${{ github.sha }} - 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 }}/mc-computer-craft-api-backend - 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 }}/mc-computer-craft-api 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