Skip to content

[bin-build] Update build process to conditionally copy jsdoc and depl… #1037

[bin-build] Update build process to conditionally copy jsdoc and depl…

[bin-build] Update build process to conditionally copy jsdoc and depl… #1037

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"