name: Deploy to Server on: workflow_run: workflows: - Build and Push Docker Image branches: - main types: - completed jobs: deploy: if: ${{ github.event.workflow_run.conclusion == 'success' }} runs-on: ubuntu-latest env: DEFAULT_BRANCH: main REGISTRY_ORG: allucanget REGISTRY_IMAGE_NAME: calminer REGISTRY_URL: ${{ secrets.REGISTRY_URL }} REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} WORKFLOW_RUN_HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }} WORKFLOW_RUN_HEAD_SHA: ${{ github.event.workflow_run.head_sha }} steps: - name: SSH and deploy uses: appleboy/ssh-action@master with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} script: | IMAGE_SHA="${{ env.WORKFLOW_RUN_HEAD_SHA }}" IMAGE_PATH="${{ env.REGISTRY_URL }}/${{ env.REGISTRY_ORG }}/${{ env.REGISTRY_IMAGE_NAME }}" if [ -z "$IMAGE_SHA" ]; then echo "Missing workflow run head SHA; aborting deployment." >&2 exit 1 fi docker pull "$IMAGE_PATH:$IMAGE_SHA" docker stop calminer || true docker rm calminer || true docker run -d --name calminer -p 8000:8000 \ -e DATABASE_DRIVER=${{ secrets.DATABASE_DRIVER }} \ -e DATABASE_HOST=${{ secrets.DATABASE_HOST }} \ -e DATABASE_PORT=${{ secrets.DATABASE_PORT }} \ -e DATABASE_USER=${{ secrets.DATABASE_USER }} \ -e DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }} \ -e DATABASE_NAME=${{ secrets.DATABASE_NAME }} \ -e DATABASE_SCHEMA=${{ secrets.DATABASE_SCHEMA }} \ "$IMAGE_PATH:$IMAGE_SHA"