[bin-build] Update build process to conditionally copy jsdoc and depl… #1036
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CD | Engine cyberia | remote ssh | |
| on: | |
| push: | |
| workflow_dispatch: | |
| inputs: | |
| job: | |
| description: 'Job to run (deploy, sync-and-deploy, init)' | |
| required: true | |
| type: choice | |
| options: | |
| - deploy | |
| - sync-and-deploy | |
| - init | |
| permissions: | |
| contents: write | |
| packages: write | |
| id-token: write | |
| jobs: | |
| deploy: | |
| if: >- | |
| github.repository == 'underpostnet/engine' | |
| && ( | |
| startsWith(github.event.head_commit.message, 'cd(ssh-engine-cyberia)') | |
| || (github.event_name == 'workflow_dispatch' && github.event.inputs.job == 'deploy') | |
| ) | |
| name: Remote SSH deployment | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Run remote deploy via SSH | |
| uses: appleboy/ssh-action@v1.2.5 | |
| with: | |
| # Remote host (secret) | |
| host: ${{ secrets.SSH_HOST }} | |
| # Remote user (secret) | |
| username: ${{ secrets.SSH_USERNAME }} | |
| # Private key (secret) — the PEM contents (not a path) | |
| key: ${{ secrets.SSH_PRIV_KEY }} | |
| # Remote port (optional) | |
| port: ${{ secrets.SSH_PORT }} | |
| # Optional: increase timeout for long-running commands | |
| command_timeout: 60m | |
| # Optional: if your private key has a passphrase, add: | |
| # passphrase: ${{ secrets.SSH_KEY_PASSPHRASE }} | |
| # Commands to run on the remote VM | |
| script: | | |
| set -e | |
| echo "Starting remote deploy" | |
| cd /home/dd/engine | |
| sudo -n -- /bin/bash -lc "underpost run pull" | |
| sudo -n -- /bin/bash -lc "npm install" | |
| sudo -n -- /bin/bash -lc "node bin run deploy dd-cyberia" | |
| sync-and-deploy: | |
| if: >- | |
| github.repository == 'underpostnet/engine' | |
| && ( | |
| startsWith(github.event.head_commit.message, 'cd(ssh-sync-engine-cyberia)') | |
| || (github.event_name == 'workflow_dispatch' && github.event.inputs.job == 'sync-and-deploy') | |
| ) | |
| name: Remote SSH sync and deploy | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Run remote deploy via SSH | |
| uses: appleboy/ssh-action@v1.2.5 | |
| with: | |
| # Remote host (secret) | |
| host: ${{ secrets.SSH_HOST }} | |
| # Remote user (secret) | |
| username: ${{ secrets.SSH_USERNAME }} | |
| # Private key (secret) — the PEM contents (not a path) | |
| key: ${{ secrets.SSH_PRIV_KEY }} | |
| # Remote port (optional) | |
| port: ${{ secrets.SSH_PORT }} | |
| # Optional: increase timeout for long-running commands | |
| command_timeout: 60m | |
| # Optional: if your private key has a passphrase, add: | |
| # passphrase: ${{ secrets.SSH_KEY_PASSPHRASE }} | |
| # Commands to run on the remote VM | |
| script: | | |
| set -e | |
| echo "Starting remote sync and deploy" | |
| cd /home/dd/engine | |
| sudo -n -- /bin/bash -lc "underpost run pull" | |
| sudo -n -- /bin/bash -lc "npm install" | |
| sudo -n -- /bin/bash -lc "underpost fs src/client/public/cyberia --git --pull --recursive --deploy-id dd-cyberia" | |
| sudo -n -- /bin/bash -lc "underpost fs src/client/public/underpost --git --pull --recursive --deploy-id dd-cyberia --storage-file-path './engine-private/conf/dd-cyberia/storage.underpost.json'" | |
| sudo -n -- /bin/bash -lc "npm run test" | |
| sudo -n -- /bin/bash -lc "node bin run sync --kubeadm --deploy-id-cron-jobs none --timeout-response 300000ms dd-cyberia,1,,localhost/rockylinux9-underpost:v2.98.3 --cmd 'npm install -g npm@11.2.0,npm install -g underpost,underpost secret underpost --create-from-file /etc/config/.env.production,underpost start --build --run dd-cyberia production'" | |
| init: | |
| if: >- | |
| github.repository == 'underpostnet/engine' | |
| && ( | |
| startsWith(github.event.head_commit.message, 'cd(ssh-init-engine-cyberia)') | |
| || (github.event_name == 'workflow_dispatch' && github.event.inputs.job == 'init') | |
| ) | |
| name: Remote SSH init deployment | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Run remote deploy via SSH | |
| uses: appleboy/ssh-action@v1.2.5 | |
| with: | |
| # Remote host (secret) | |
| host: ${{ secrets.SSH_HOST }} | |
| # Remote user (secret) | |
| username: ${{ secrets.SSH_USERNAME }} | |
| # Private key (secret) — the PEM contents (not a path) | |
| key: ${{ secrets.SSH_PRIV_KEY }} | |
| # Remote port (optional) | |
| port: ${{ secrets.SSH_PORT }} | |
| # Optional: increase timeout for long-running commands | |
| command_timeout: 60m | |
| # Optional: if your private key has a passphrase, add: | |
| # passphrase: ${{ secrets.SSH_KEY_PASSPHRASE }} | |
| # Commands to run on the remote VM | |
| script: | | |
| set -e | |
| echo "Starting init deploy" | |
| cd /home/dd/engine | |
| sudo -n -- /bin/bash -lc "underpost run pull" | |
| sudo -n -- /bin/bash -lc "npm install" | |
| sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --sync --build-manifest --image 'localhost/rockylinux9-underpost:v2.98.3' --timeout-response 300000ms --versions green --replicas 1 --cmd 'npm install -g npm@11.2.0,npm install -g underpost,underpost secret underpost --create-from-file /etc/config/.env.production,underpost start --build --run dd-cyberia production'" | |
| sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --disable-update-proxy" | |
| sudo -n -- /bin/bash -lc "node bin monitor dd-cyberia production --ready-deployment --promote --timeout-response 300000ms --versions green --replicas 1" |