[bin-build] Update build process to conditionally copy jsdoc and depl… #1037
Workflow file for this run
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 core | 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-core)') | |
| || (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-core" | |
| sync-and-deploy: | |
| if: >- | |
| github.repository == 'underpostnet/engine' | |
| && ( | |
| startsWith(github.event.head_commit.message, 'cd(ssh-sync-engine-core)') | |
| || (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_PASSWORD }} | |
| # 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 "node bin run metadata dd-core" | |
| sudo -n -- /bin/bash -lc "node bin run sync --kubeadm dd-core,1,,localhost/rockylinux9-underpost:v2.98.3" | |
| init: | |
| if: >- | |
| github.repository == 'underpostnet/engine' | |
| && ( | |
| startsWith(github.event.head_commit.message, 'cd(ssh-init-engine-core)') | |
| || (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-core production --kubeadm --sync --build-manifest --image 'localhost/rockylinux9-underpost:v2.98.3' --versions green --replicas 1" | |
| sudo -n -- /bin/bash -lc "node bin deploy dd-core production --kubeadm --cert --disable-update-proxy" | |
| sudo -n -- /bin/bash -lc "node bin monitor dd-core production --ready-deployment --promote --versions green --replicas 1" |