# Ship every merge to dev2, where logicsrc.com runs since it left Railway (which # deployed on merge by itself). The box pulls the merged commit, rebuilds the # image(s) from this repo and restarts the compose stack under # /home/anthony/www/logicsrc.com. Generated by cli-tools/dev2/dev2-site scaffold. name: Deploy to dev2 on: push: branches: [master] workflow_dispatch: inputs: ref: description: Git ref to deploy (defaults to the pushed commit) required: false type: string concurrency: group: deploy-dev2 cancel-in-progress: false jobs: deploy: runs-on: ubuntu-latest timeout-minutes: 45 steps: # ${{ }} values go through env, never straight into a run: body. - name: Resolve target revision id: rev env: REF: ${{ inputs.ref || github.sha }} run: echo "sha=$REF" >> "$GITHUB_OUTPUT" - name: Set up ssh env: SSH_KEY: ${{ secrets.DEV2_SSH_KEY }} KNOWN_HOSTS: ${{ secrets.DEV2_KNOWN_HOSTS }} run: | install -d -m 700 ~/.ssh printf '%s\n' "$SSH_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 printf '%s\n' "$KNOWN_HOSTS" > ~/.ssh/known_hosts chmod 644 ~/.ssh/known_hosts - name: Deploy env: DEV2_USER: ${{ secrets.DEV2_USER }} DEV2_HOST: ${{ secrets.DEV2_HOST }} SHA: ${{ steps.rev.outputs.sha }} run: | ssh -o BatchMode=yes "$DEV2_USER@$DEV2_HOST" \ /home/anthony/www/logicsrc.com/deploy-app.sh "$SHA" - name: Verify the site answers run: | for i in $(seq 1 10); do code=$(curl -s -o /dev/null -w '%{http_code}' "https://logicsrc.com/" || true) case "$code" in 2*|3*|401|403) echo "logicsrc.com $code"; exit 0;; esac echo "attempt $i: $code"; sleep 10 done echo "logicsrc.com never answered"; exit 1