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

Workflow file for this run

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"