|
@@ -1,71 +0,0 @@
|
|
-# Deploy short URL service to a server
|
|
|
|
-#
|
|
|
|
-# nginx-proxy should be deployed first: https://github.com/recipeer/nginx-proxy
|
|
|
|
-
|
|
|
|
-name: Deploy
|
|
|
|
-
|
|
|
|
-on:
|
|
|
|
- workflow_dispatch:
|
|
|
|
- inputs:
|
|
|
|
- environment:
|
|
|
|
- description: 'Environment'
|
|
|
|
- required: true
|
|
|
|
- type: environment
|
|
|
|
- tag:
|
|
|
|
- description: 'Image tag'
|
|
|
|
- required: true
|
|
|
|
- default: develop
|
|
|
|
-
|
|
|
|
-env:
|
|
|
|
- SERVICE_IMAGE: ghcr.io/recipeer/short-url-service:${{ inputs.tag }}
|
|
|
|
- TARGET_START_SH: /tmp/short-url-service.start-${{ github.run_number }}.sh
|
|
|
|
-
|
|
|
|
-jobs:
|
|
|
|
- deploy:
|
|
|
|
- name: Deploy
|
|
|
|
- runs-on: ubuntu-latest
|
|
|
|
- environment: ${{ inputs.environment }}
|
|
|
|
- steps:
|
|
|
|
- - name: Checkout repository
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
-
|
|
|
|
- - name: Prepare id_rsa
|
|
|
|
- run: echo "${{ secrets.DEPLOY_KEY }}" > id_rsa && chmod 600 id_rsa
|
|
|
|
-
|
|
|
|
- - name: Prepare deployment script
|
|
|
|
- run: |
|
|
|
|
- export CSV="${{ vars.CSV }}"
|
|
|
|
- export NETWORK=${{ vars.NETWORK }}
|
|
|
|
- export SERVICE_CONTAINER=${{ vars.SERVICE_CONTAINER }}
|
|
|
|
- export SERVICE_HOST=${{ vars.SERVICE_HOST }}
|
|
|
|
- export SERVICE_IMAGE=${{ env.SERVICE_IMAGE }}
|
|
|
|
- export SERVICE_NETWORK_ACCESS=${{ vars.SERVICE_NETWORK_ACCESS }}
|
|
|
|
- envsubst < .deploy/start.sh.template | sed 's/£/$/g' > .deploy/start.sh
|
|
|
|
-
|
|
|
|
- - name: Import target SSH public key
|
|
|
|
- run: |
|
|
|
|
- TARGET=$(echo "${{ vars.SSH_TARGET }}" | awk -F@ '{ print $2 }')
|
|
|
|
- mkdir -p ~/.ssh && ssh-keyscan ${TARGET} >> ~/.ssh/known_hosts
|
|
|
|
-
|
|
|
|
- - name: Copy deployment script to server
|
|
|
|
- run: scp -vi id_rsa .deploy/start.sh ${{ vars.SSH_TARGET }}:${{ env.TARGET_START_SH }}
|
|
|
|
-
|
|
|
|
- - name: Run deployment script
|
|
|
|
- run: ssh -i id_rsa ${{ vars.SSH_TARGET }} bash ${{ env.TARGET_START_SH }}
|
|
|
|
-
|
|
|
|
- - name: Cleanup deployment script
|
|
|
|
- run: ssh -i id_rsa ${{ vars.SSH_TARGET }} rm ${{ env.TARGET_START_SH }}
|
|
|
|
-
|
|
|
|
- # https://github.com/recipeer/docs/blob/develop/workflows/discord-notifications.md
|
|
|
|
- notify:
|
|
|
|
- name: Discord notification
|
|
|
|
- uses: recipeer/docs/.github/workflows/discord.yml@develop
|
|
|
|
- needs: deploy
|
|
|
|
- secrets: inherit
|
|
|
|
- if: ${{ always() }}
|
|
|
|
- with:
|
|
|
|
- repository: ${{ github.repository }}
|
|
|
|
- result: ${{ needs.deploy.result }}
|
|
|
|
- run_id: ${{ github.run_id }}
|
|
|
|
- run_number: ${{ github.run_number }}
|
|
|
|
- workflow: ${{ github.workflow }}
|
|
|