name: Build, publish & deploy on: push: branches: - master jobs: push_to_registry: name: Push Docker image to Docker Hub runs-on: ubuntu-latest steps: - name: Log in to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push Docker image uses: docker/build-push-action@v3 with: push: true tags: crocmagnon/blog:latest cache-from: type=registry,ref=crocmagnon/blog:latest cache-to: type=inline platforms: linux/amd64 build-args: | POETRY_OPTIONS=--no-dev deploy: name: Deploy new image runs-on: ubuntu-latest needs: [push_to_registry] steps: - name: Deploy run: | TEMP=$(mktemp) echo "${{ secrets.DEPLOY_KEY }}" > $TEMP ssh -o StrictHostKeyChecking=no -i $TEMP -p ${{ secrets.DEPLOY_PORT }} ${{ secrets.DEPLOY_USERNAME }}@${{ secrets.DEPLOY_HOST }} /mnt/data/blog/update - name: Check uses: nick-fields/retry@v2 with: timeout_seconds: 30 max_attempts: 5 retry_wait_seconds: 2 warning_on_retry: false command: curl -sSL --fail -m 10 https://gabnotes.org