cyberia 3.2.12 → 3.2.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +127 -68
- package/.github/workflows/cyberia-client.cd.yml +40 -0
- package/.github/workflows/cyberia-server.cd.yml +40 -0
- package/.github/workflows/docker-image.cyberia-client.ci.yml +49 -0
- package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +48 -0
- package/.github/workflows/docker-image.cyberia-server.ci.yml +69 -0
- package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +69 -0
- package/.github/workflows/docker-image.engine-cyberia.ci.yml +52 -0
- package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +52 -0
- package/.github/workflows/engine-cyberia.cd.yml +34 -24
- package/.github/workflows/engine-cyberia.ci.yml +27 -5
- package/.github/workflows/ghpkg.ci.yml +89 -1
- package/.github/workflows/gitlab.ci.yml +1 -1
- package/.github/workflows/hardhat.ci.yml +1 -1
- package/.github/workflows/npmpkg.ci.yml +19 -12
- package/.github/workflows/publish.ci.yml +2 -2
- package/.github/workflows/publish.cyberia.ci.yml +5 -16
- package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -8
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/CHANGELOG.md +451 -1
- package/CLI-HELP.md +1040 -1130
- package/Dockerfile +141 -43
- package/Dockerfile.dev +143 -0
- package/Dockerfile.test +165 -0
- package/README.md +1 -1
- package/baremetal/commission-workflows.json +1 -0
- package/bin/build.js +128 -136
- package/bin/build.template.js +25 -179
- package/bin/cyberia.js +1089 -188
- package/bin/deploy.js +6 -3
- package/bin/index.js +1089 -188
- package/bump.config.js +1 -0
- package/compose.env +131 -0
- package/conf.js +19 -1
- package/deployment.yaml +74 -2
- package/docker-compose.yml +316 -0
- package/hardhat/hardhat.config.js +2 -2
- package/hardhat/package-lock.json +620 -2041
- package/hardhat/package.json +7 -5
- package/hardhat/scripts/deployObjectLayerToken.js +18 -18
- package/hardhat/test/ObjectLayerToken.js +378 -274
- package/ipfs/configure-ipfs.sh +13 -0
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +74 -2
- package/manifests/deployment/dd-cyberia-development/grpc-service.yaml +17 -0
- package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +32 -0
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/mongodb/entrypoint.sh +76 -0
- package/nginx.conf +87 -0
- package/package.json +34 -22
- package/pv-pvc.yaml +32 -0
- package/scripts/disk-clean.sh +85 -60
- package/scripts/kubeadm-node-setup.sh +317 -0
- package/scripts/link-local-underpost-cli.sh +6 -0
- package/scripts/rocky-kickstart.sh +877 -185
- package/scripts/rpmfusion-ffmpeg-setup.sh +26 -50
- package/scripts/test-monitor.sh +248 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +43 -7
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +17 -25
- package/src/api/cyberia-action/cyberia-action.controller.js +19 -0
- package/src/api/cyberia-action/cyberia-action.model.js +21 -29
- package/src/api/cyberia-action/cyberia-action.router.js +42 -7
- package/src/api/cyberia-action/cyberia-action.service.js +20 -4
- package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +58 -57
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +37 -6
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +8 -2
- package/src/api/cyberia-entity/cyberia-entity.router.js +39 -7
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.controller.js +74 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.model.js +67 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.router.js +63 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.service.js +46 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +62 -10
- package/src/api/cyberia-instance/cyberia-instance.model.js +32 -2
- package/src/api/cyberia-instance/cyberia-instance.router.js +6 -6
- package/src/api/cyberia-instance/cyberia-world-generator.js +116 -3
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +3 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +39 -7
- package/src/api/cyberia-map/cyberia-map.router.js +21 -6
- package/src/api/cyberia-quest/cyberia-quest.controller.js +38 -0
- package/src/api/cyberia-quest/cyberia-quest.router.js +47 -7
- package/src/api/cyberia-quest/cyberia-quest.service.js +59 -4
- package/src/api/cyberia-saga/cyberia-saga.controller.js +74 -0
- package/src/api/cyberia-saga/cyberia-saga.model.js +59 -0
- package/src/api/cyberia-saga/cyberia-saga.router.js +63 -0
- package/src/api/cyberia-saga/cyberia-saga.service.js +42 -0
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +551 -122
- package/src/api/cyberia-skill/cyberia-skill.controller.js +74 -0
- package/src/api/cyberia-skill/cyberia-skill.model.js +50 -0
- package/src/api/cyberia-skill/cyberia-skill.router.js +63 -0
- package/src/api/cyberia-skill/cyberia-skill.service.js +42 -0
- package/src/api/ipfs/ipfs.service.js +28 -15
- package/src/api/object-layer/object-layer.router.js +25 -15
- package/src/api/object-layer/object-layer.service.js +15 -20
- package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +39 -7
- package/src/cli/baremetal.js +717 -16
- package/src/cli/cluster.js +80 -5
- package/src/cli/deploy.js +326 -292
- package/src/cli/docker-compose.js +648 -0
- package/src/cli/env.js +12 -6
- package/src/cli/fs.js +75 -30
- package/src/cli/image.js +187 -55
- package/src/cli/index.js +157 -6
- package/src/cli/kickstart.js +142 -20
- package/src/cli/monitor.js +387 -6
- package/src/cli/release.js +72 -15
- package/src/cli/repository.js +339 -40
- package/src/cli/run.js +678 -186
- package/src/cli/secrets.js +82 -48
- package/src/cli/ssh.js +234 -0
- package/src/cli/static.js +2 -2
- package/src/client/components/core/PanelForm.js +44 -44
- package/src/client/components/cyberia/ActionEngineCyberia.js +1867 -0
- package/src/client/components/cyberia/EntityEngineCyberia.js +585 -0
- package/src/client/components/cyberia/InstanceEngineCyberia.js +219 -13
- package/src/client/components/cyberia/MapEngineCyberia.js +154 -71
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +40 -63
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +34 -20
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +195 -4
- package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +66 -0
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +8 -0
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +8 -0
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +92 -20
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +272 -50
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +3 -3
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +39 -22
- package/src/client/public/cyberia-docs/CYBERIA-LORE.md +88 -0
- package/src/client/public/cyberia-docs/CYBERIA-SAGA.md +394 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +28 -12
- package/src/client/public/cyberia-docs/CYBERIA.md +1 -1
- package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +27 -5
- package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +1 -1
- package/src/client/services/cyberia-entity-type-default/cyberia-entity-type-default.service.js +99 -0
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +2 -2
- package/src/client/services/cyberia-map/cyberia-map.management.js +2 -2
- package/src/client/services/cyberia-saga/cyberia-saga.service.js +99 -0
- package/src/client/services/cyberia-skill/cyberia-skill.service.js +99 -0
- package/src/client/services/object-layer/object-layer.management.js +6 -6
- package/src/{server → client-builder}/client-build-docs.js +15 -5
- package/src/{server → client-builder}/client-build-live.js +3 -3
- package/src/{server → client-builder}/client-build.js +25 -22
- package/src/{server → client-builder}/client-dev-server.js +3 -3
- package/src/{server → client-builder}/client-icons.js +2 -2
- package/src/{server → client-builder}/ssr.js +5 -5
- package/src/client.build.js +1 -3
- package/src/client.dev.js +1 -1
- package/src/db/mongo/MongoBootstrap.js +12 -12
- package/src/db/mongo/MongooseDB.js +2 -1
- package/src/grpc/cyberia/grpc-server.js +255 -70
- package/src/index.js +12 -1
- package/src/mailer/EmailRender.js +1 -1
- package/src/{server → projects/cyberia}/atlas-sprite-sheet-generator.js +2 -2
- package/src/{server → projects/cyberia}/besu-genesis-generator.js +3 -3
- package/src/projects/cyberia/catalog-cyberia.js +81 -0
- package/src/projects/cyberia/gemini-client.js +175 -0
- package/src/projects/cyberia/generate-saga.js +2107 -0
- package/src/{server → projects/cyberia}/ipfs-client.js +6 -4
- package/src/{server → projects/cyberia}/object-layer.js +12 -108
- package/src/{server → projects/cyberia}/semantic-layer-generator-floor.js +1 -1
- package/src/{server → projects/cyberia}/semantic-layer-generator-resource.js +1 -1
- package/src/{server → projects/cyberia}/semantic-layer-generator-skin.js +1 -1
- package/src/{server → projects/cyberia}/semantic-layer-generator.js +2 -2
- package/src/{server → projects/cyberia}/shape-generator.js +2 -2
- package/src/projects/underpost/catalog-underpost.js +60 -0
- package/src/runtime/cyberia-client/Dockerfile +31 -83
- package/src/runtime/cyberia-client/Dockerfile.dev +23 -30
- package/src/runtime/cyberia-server/Dockerfile +23 -42
- package/src/runtime/cyberia-server/Dockerfile.dev +20 -35
- package/src/runtime/engine-cyberia/Dockerfile +143 -0
- package/src/runtime/engine-cyberia/Dockerfile.dev +143 -0
- package/src/runtime/engine-cyberia/Dockerfile.test +165 -0
- package/src/runtime/engine-cyberia/compose.env +131 -0
- package/src/runtime/engine-cyberia/docker-compose.yml +316 -0
- package/src/runtime/engine-cyberia/ipfs/configure-ipfs.sh +13 -0
- package/src/runtime/engine-cyberia/mongodb/entrypoint.sh +76 -0
- package/src/runtime/engine-cyberia/nginx.conf +87 -0
- package/src/runtime/express/Express.js +2 -2
- package/src/runtime/nginx/Nginx.js +250 -0
- package/src/runtime/wp/Dockerfile +3 -3
- package/src/server/catalog.js +72 -0
- package/src/server/conf.js +415 -60
- package/src/server/runtime-status.js +252 -0
- package/src/server/start.js +42 -11
- package/src/server.js +6 -2
- package/test/cyberia-instance-conf-defaults.test.js +140 -0
- package/test/deploy-monitor.test.js +267 -0
- package/test/shape-generator.test.js +7 -1
- package/typedoc.dd-cyberia.json +3 -1
- package/typedoc.json +3 -1
- package/manifests/deployment/dd-test-development/deployment.yaml +0 -256
- package/manifests/deployment/dd-test-development/proxy.yaml +0 -102
- /package/src/client/ssr/{Render.js → RootDocument.js} +0 -0
- /package/src/{server → client-builder}/client-formatted.js +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
name: CD | Engine cyberia | remote ssh
|
|
2
2
|
on:
|
|
3
|
-
push:
|
|
4
3
|
workflow_dispatch:
|
|
5
4
|
inputs:
|
|
6
5
|
job:
|
|
@@ -18,12 +17,7 @@ permissions:
|
|
|
18
17
|
|
|
19
18
|
jobs:
|
|
20
19
|
deploy:
|
|
21
|
-
if:
|
|
22
|
-
github.repository == 'underpostnet/engine'
|
|
23
|
-
&& (
|
|
24
|
-
startsWith(github.event.head_commit.message, 'cd(ssh-engine-cyberia)')
|
|
25
|
-
|| (github.event_name == 'workflow_dispatch' && github.event.inputs.job == 'deploy')
|
|
26
|
-
)
|
|
20
|
+
if: github.event.inputs.job == 'deploy'
|
|
27
21
|
name: Remote SSH deployment
|
|
28
22
|
runs-on: ubuntu-latest
|
|
29
23
|
steps:
|
|
@@ -53,12 +47,7 @@ jobs:
|
|
|
53
47
|
sudo -n -- /bin/bash -lc "node bin run secret"
|
|
54
48
|
sudo -n -- /bin/bash -lc "node bin run deploy dd-cyberia"
|
|
55
49
|
sync-and-deploy:
|
|
56
|
-
if:
|
|
57
|
-
github.repository == 'underpostnet/engine'
|
|
58
|
-
&& (
|
|
59
|
-
startsWith(github.event.head_commit.message, 'cd(ssh-sync-engine-cyberia)')
|
|
60
|
-
|| (github.event_name == 'workflow_dispatch' && github.event.inputs.job == 'sync-and-deploy')
|
|
61
|
-
)
|
|
50
|
+
if: github.event.inputs.job == 'sync-and-deploy'
|
|
62
51
|
name: Remote SSH sync and deploy
|
|
63
52
|
runs-on: ubuntu-latest
|
|
64
53
|
steps:
|
|
@@ -82,23 +71,43 @@ jobs:
|
|
|
82
71
|
set -e
|
|
83
72
|
set -o pipefail
|
|
84
73
|
echo "Starting remote sync and deploy"
|
|
74
|
+
TARGET_NODE=localhost.localdomain
|
|
85
75
|
cd /home/dd/engine
|
|
86
76
|
sudo -n -- /bin/bash -lc "node bin run pull"
|
|
87
77
|
sudo -n -- /bin/bash -lc "npm install"
|
|
88
78
|
sudo -n -- /bin/bash -lc "node bin run secret"
|
|
89
|
-
sudo -n -- /bin/bash -lc "node bin run clean src/client/public/cyberia"
|
|
90
|
-
sudo -n -- /bin/bash -lc "node bin fs src/client/public/cyberia --git --pull --recursive --deploy-id dd-cyberia"
|
|
91
|
-
sudo -n -- /bin/bash -lc "node bin run clean src/client/public/underpost"
|
|
92
|
-
sudo -n -- /bin/bash -lc "node bin fs src/client/public/underpost --git --pull --recursive --deploy-id dd-cyberia --storage-file-path './engine-private/conf/dd-cyberia/storage.underpost.json'"
|
|
93
79
|
sudo -n -- /bin/bash -lc "npm run test"
|
|
94
|
-
sudo -n -- /bin/bash -lc "node bin run sync
|
|
80
|
+
sudo -n -- /bin/bash -lc "node bin run sync 'dd-cyberia,1,,underpost/engine-cyberia:v3.2.70' \
|
|
81
|
+
--kubeadm \
|
|
82
|
+
--deploy-id-cron-jobs none \
|
|
83
|
+
--timeout-response 300000ms \
|
|
84
|
+
--node-name ${TARGET_NODE} \
|
|
85
|
+
--ssh-key-path /home/dd/tmp/897as9dxhaskd9 \
|
|
86
|
+
--image-pull-policy Always \
|
|
87
|
+
--cmd 'cd /home/dd/engine, \
|
|
88
|
+
underpost clone underpostnet/engine-cyberia, \
|
|
89
|
+
mkdir -p /home/dd/engine/src/client/public/itemledger \
|
|
90
|
+
/home/dd/engine/src/client/public/cryptokoyn \
|
|
91
|
+
/home/dd/engine/src/client/components/cryptokoyn \
|
|
92
|
+
/home/dd/engine/src/client/components/itemledger \
|
|
93
|
+
/home/dd/engine/hardhat, \
|
|
94
|
+
cp -a ./engine-cyberia/src/client/public/itemledger/. /home/dd/engine/src/client/public/itemledger/, \
|
|
95
|
+
cp -a ./engine-cyberia/src/client/public/cryptokoyn/. /home/dd/engine/src/client/public/cryptokoyn/, \
|
|
96
|
+
cp -a ./engine-cyberia/src/client/components/cryptokoyn/. /home/dd/engine/src/client/components/cryptokoyn/, \
|
|
97
|
+
cp -a ./engine-cyberia/src/client/components/itemledger/. /home/dd/engine/src/client/components/itemledger/, \
|
|
98
|
+
cp -a ./engine-cyberia/src/client/Itemledger.index.js /home/dd/engine/src/client/Itemledger.index.js, \
|
|
99
|
+
cp -a ./engine-cyberia/src/client/Cryptokoyn.index.js /home/dd/engine/src/client/Cryptokoyn.index.js, \
|
|
100
|
+
rm -rf ./engine-cyberia, \
|
|
101
|
+
sudo rm -rf ./engine-private/, \
|
|
102
|
+
node bin clone underpostnet/engine-cyberia-private, \
|
|
103
|
+
sudo mv ./engine-cyberia-private ./engine-private, \
|
|
104
|
+
node bin env dd-cyberia production, \
|
|
105
|
+
node ./engine-private/itc-scripts/dd-cyberia-0.js, \
|
|
106
|
+
node bin env dd-cyberia production, \
|
|
107
|
+
node bin client dd-cyberia, \
|
|
108
|
+
node bin start dd-cyberia production --run'"
|
|
95
109
|
init:
|
|
96
|
-
if:
|
|
97
|
-
github.repository == 'underpostnet/engine'
|
|
98
|
-
&& (
|
|
99
|
-
startsWith(github.event.head_commit.message, 'cd(ssh-init-engine-cyberia)')
|
|
100
|
-
|| (github.event_name == 'workflow_dispatch' && github.event.inputs.job == 'init')
|
|
101
|
-
)
|
|
110
|
+
if: github.event.inputs.job == 'init'
|
|
102
111
|
name: Remote SSH init deployment
|
|
103
112
|
runs-on: ubuntu-latest
|
|
104
113
|
steps:
|
|
@@ -126,6 +135,7 @@ jobs:
|
|
|
126
135
|
sudo -n -- /bin/bash -lc "node bin run pull"
|
|
127
136
|
sudo -n -- /bin/bash -lc "npm install"
|
|
128
137
|
sudo -n -- /bin/bash -lc "node bin run secret"
|
|
138
|
+
sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
|
|
129
139
|
sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --sync --build-manifest --timeout-response 300000ms --versions green --replicas 1"
|
|
130
140
|
sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --disable-update-proxy --git-clean"
|
|
131
141
|
sudo -n -- /bin/bash -lc "node bin monitor dd-cyberia production --ready-deployment --promote --timeout-response 300000ms --versions green --replicas 1"
|
|
@@ -37,7 +37,7 @@ jobs:
|
|
|
37
37
|
packages: write
|
|
38
38
|
id-token: write
|
|
39
39
|
steps:
|
|
40
|
-
- uses: actions/checkout@
|
|
40
|
+
- uses: actions/checkout@v7
|
|
41
41
|
|
|
42
42
|
- name: Install required packages
|
|
43
43
|
run: |
|
|
@@ -61,13 +61,13 @@ jobs:
|
|
|
61
61
|
- name: Build repository
|
|
62
62
|
env:
|
|
63
63
|
GITHUB_TOKEN: ${{ secrets.GIT_AUTH_TOKEN }}
|
|
64
|
+
GITHUB_USERNAME: ${{ github.repository_owner }}
|
|
64
65
|
run: |
|
|
65
66
|
cd .. && node engine/bin clone underpostnet/pwa-microservices-template
|
|
66
67
|
if [ -n "${{ github.event.inputs.message }}" ]; then
|
|
67
68
|
LAST_COMMIT_MESSAGE="${{ github.event.inputs.message }}"
|
|
68
69
|
else
|
|
69
|
-
|
|
70
|
-
LAST_COMMIT_MESSAGE=$(echo "$FULL_MSG" | sed '1s/^[^:]*: [^ ]* //')
|
|
70
|
+
LAST_COMMIT_MESSAGE=$(cd engine && node bin cmt --changelog-msg --from-n-commit 1 --changelog-no-hash 2>/dev/null || echo "")
|
|
71
71
|
fi
|
|
72
72
|
SHOULD_CD="${{ github.event.inputs.sync }}"
|
|
73
73
|
DEPLOY_TYPE="${{ github.event.inputs.deploy_type }}"
|
|
@@ -78,16 +78,38 @@ jobs:
|
|
|
78
78
|
echo "[INFO] Should CD: $SHOULD_CD, Deploy type: $DEPLOY_TYPE"
|
|
79
79
|
node engine/bin clone --bare underpostnet/engine-cyberia
|
|
80
80
|
cd engine
|
|
81
|
+
git clone --depth 1 --no-checkout https://$GITHUB_TOKEN@github.com/underpostnet/engine-private.git ./engine-private
|
|
82
|
+
cd ./engine-private && git sparse-checkout set conf/dd-cyberia && git checkout && cd ..
|
|
81
83
|
node bin/build dd-cyberia development
|
|
82
84
|
cd ../pwa-microservices-template
|
|
83
85
|
rm -rf ./.git
|
|
84
86
|
mv ../engine-cyberia.git ./.git
|
|
87
|
+
mv ../engine/engine-private ./engine-private
|
|
88
|
+
npm install
|
|
89
|
+
node bin new --default-conf --deploy-id dd-cyberia
|
|
90
|
+
mv ./conf.dd-cyberia.js ./conf.js
|
|
91
|
+
rm -rf ./engine-private
|
|
85
92
|
git init
|
|
86
93
|
git config user.name 'underpostnet'
|
|
87
94
|
git config user.email 'development@underpost.net'
|
|
88
95
|
git add .
|
|
89
|
-
git
|
|
90
|
-
|
|
96
|
+
if git diff --cached --quiet; then
|
|
97
|
+
echo "[INFO] No changes to publish; skipping commit and push."
|
|
98
|
+
else
|
|
99
|
+
git commit -m "$LAST_COMMIT_MESSAGE"
|
|
100
|
+
node ../engine/bin push . underpostnet/engine-cyberia
|
|
101
|
+
echo "[INFO] Dispatching canonical github package build engine-ghpkg-cyberia"
|
|
102
|
+
GHPKG_PAYLOAD=$(MSG="$LAST_COMMIT_MESSAGE" node -e '
|
|
103
|
+
const i = { conf_id: "cyberia" };
|
|
104
|
+
if (process.env.MSG) i.message = process.env.MSG;
|
|
105
|
+
process.stdout.write(JSON.stringify({ ref: "master", inputs: i }));
|
|
106
|
+
')
|
|
107
|
+
curl -s -X POST \
|
|
108
|
+
-H "Accept: application/vnd.github.v3+json" \
|
|
109
|
+
-H "Authorization: token ${{ secrets.GIT_AUTH_TOKEN }}" \
|
|
110
|
+
"https://api.github.com/repos/underpostnet/engine/actions/workflows/ghpkg.ci.yml/dispatches" \
|
|
111
|
+
-d "$GHPKG_PAYLOAD"
|
|
112
|
+
fi
|
|
91
113
|
if [ "$SHOULD_CD" = "true" ]; then
|
|
92
114
|
if [ -z "$DEPLOY_TYPE" ]; then
|
|
93
115
|
DEPLOY_TYPE="sync-and-deploy"
|
|
@@ -4,6 +4,16 @@ on:
|
|
|
4
4
|
branches: ['master']
|
|
5
5
|
pull_request:
|
|
6
6
|
branches: ['master']
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
conf_id:
|
|
10
|
+
description: 'Conf id of the canonical engine github package repo (engine-ghpkg-<conf_id>)'
|
|
11
|
+
required: false
|
|
12
|
+
default: 'cyberia'
|
|
13
|
+
message:
|
|
14
|
+
description: 'Commit message for the canonical package build'
|
|
15
|
+
required: false
|
|
16
|
+
default: ''
|
|
7
17
|
permissions:
|
|
8
18
|
contents: write
|
|
9
19
|
packages: write
|
|
@@ -20,7 +30,7 @@ jobs:
|
|
|
20
30
|
packages: write
|
|
21
31
|
id-token: write
|
|
22
32
|
steps:
|
|
23
|
-
- uses: actions/checkout@
|
|
33
|
+
- uses: actions/checkout@v7
|
|
24
34
|
|
|
25
35
|
- name: Install required packages
|
|
26
36
|
run: |
|
|
@@ -57,6 +67,7 @@ jobs:
|
|
|
57
67
|
- name: Clone and Push to github package repository
|
|
58
68
|
env:
|
|
59
69
|
GITHUB_TOKEN: ${{ secrets.GIT_AUTH_TOKEN }}
|
|
70
|
+
GITHUB_USERNAME: ${{ github.repository_owner }}
|
|
60
71
|
run: |
|
|
61
72
|
node bin clone --bare underpostnet/pwa-microservices-template-ghpkg
|
|
62
73
|
rm -rf ./.git
|
|
@@ -70,3 +81,80 @@ jobs:
|
|
|
70
81
|
git status
|
|
71
82
|
git commit -m "$LAST_COMMIT_MESSAGE"
|
|
72
83
|
node bin push . underpostnet/pwa-microservices-template-ghpkg
|
|
84
|
+
|
|
85
|
+
engine-ghpkg:
|
|
86
|
+
if: github.repository == 'underpostnet/engine' && github.event_name == 'workflow_dispatch'
|
|
87
|
+
name: Build engine ${{ github.event.inputs.conf_id || 'cyberia' }} ghpkg repository
|
|
88
|
+
runs-on: ubuntu-latest
|
|
89
|
+
container:
|
|
90
|
+
image: quay.io/rockylinux/rockylinux:9
|
|
91
|
+
permissions:
|
|
92
|
+
contents: write
|
|
93
|
+
packages: write
|
|
94
|
+
id-token: write
|
|
95
|
+
steps:
|
|
96
|
+
- uses: actions/checkout@v7
|
|
97
|
+
|
|
98
|
+
- name: Install required packages
|
|
99
|
+
run: |
|
|
100
|
+
dnf install -y sudo tar gzip bzip2 git
|
|
101
|
+
dnf install -y curl --allowerasing
|
|
102
|
+
|
|
103
|
+
- name: Install Node.js
|
|
104
|
+
run: |
|
|
105
|
+
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
|
|
106
|
+
dnf install nodejs -y
|
|
107
|
+
|
|
108
|
+
- name: Install dependencies
|
|
109
|
+
run: npm install
|
|
110
|
+
|
|
111
|
+
- name: Resolve canonical github package repo
|
|
112
|
+
run: |
|
|
113
|
+
CONF_ID="${{ github.event.inputs.conf_id }}"
|
|
114
|
+
CONF_ID="${CONF_ID:-cyberia}"
|
|
115
|
+
echo "CONF_ID=$CONF_ID" >> $GITHUB_ENV
|
|
116
|
+
echo "GHPKG_REPO=engine-ghpkg-$CONF_ID" >> $GITHUB_ENV
|
|
117
|
+
echo "PACKAGE_NAME=@underpostnet/$CONF_ID" >> $GITHUB_ENV
|
|
118
|
+
echo "[INFO] Canonical github package repo: underpostnet/engine-ghpkg-$CONF_ID"
|
|
119
|
+
|
|
120
|
+
- name: Capture commit message
|
|
121
|
+
run: |
|
|
122
|
+
FULL_MSG="${{ github.event.inputs.message }}"
|
|
123
|
+
if [ -z "$FULL_MSG" ]; then
|
|
124
|
+
FULL_MSG=$(node bin cmt --changelog-msg --from-n-commit 1 --changelog-no-hash 2>/dev/null || echo "")
|
|
125
|
+
fi
|
|
126
|
+
LAST_COMMIT_MESSAGE="${FULL_MSG:-Update canonical github package repo}"
|
|
127
|
+
echo "LAST_COMMIT_MESSAGE<<EOF" >> $GITHUB_ENV
|
|
128
|
+
echo "$LAST_COMMIT_MESSAGE" >> $GITHUB_ENV
|
|
129
|
+
echo "EOF" >> $GITHUB_ENV
|
|
130
|
+
echo "[INFO] Commit message: $LAST_COMMIT_MESSAGE"
|
|
131
|
+
|
|
132
|
+
- name: Set git global credentials
|
|
133
|
+
run: |
|
|
134
|
+
git config --global --add safe.directory '*'
|
|
135
|
+
git config --global credential.helper ""
|
|
136
|
+
git config --global user.name 'underpostnet'
|
|
137
|
+
git config --global user.email 'development@underpost.net'
|
|
138
|
+
|
|
139
|
+
- name: Mirror engine-$CONF_ID and Push to canonical github package repository
|
|
140
|
+
env:
|
|
141
|
+
GITHUB_TOKEN: ${{ secrets.GIT_AUTH_TOKEN }}
|
|
142
|
+
GITHUB_USERNAME: ${{ github.repository_owner }}
|
|
143
|
+
run: |
|
|
144
|
+
cd .. && node engine/bin clone underpostnet/engine-$CONF_ID
|
|
145
|
+
node engine/bin clone --bare underpostnet/$GHPKG_REPO
|
|
146
|
+
cd engine-$CONF_ID
|
|
147
|
+
rm -rf ./.git
|
|
148
|
+
mv ../$GHPKG_REPO.git ./.git
|
|
149
|
+
node ../engine/bin/deploy rename-package "$PACKAGE_NAME"
|
|
150
|
+
node ../engine/bin/deploy set-repo underpostnet/$GHPKG_REPO
|
|
151
|
+
git init
|
|
152
|
+
git config user.name 'underpostnet'
|
|
153
|
+
git config user.email 'development@underpost.net'
|
|
154
|
+
git add .
|
|
155
|
+
if git diff --cached --quiet; then
|
|
156
|
+
echo "[INFO] No changes to publish; skipping commit and push."
|
|
157
|
+
else
|
|
158
|
+
git commit -m "$LAST_COMMIT_MESSAGE"
|
|
159
|
+
node ../engine/bin push . underpostnet/$GHPKG_REPO
|
|
160
|
+
fi
|
|
@@ -11,7 +11,7 @@ on:
|
|
|
11
11
|
required: false
|
|
12
12
|
default: ''
|
|
13
13
|
deploy_conf_id:
|
|
14
|
-
description: 'Engine conf ID to dispatch after build
|
|
14
|
+
description: 'Engine conf ID to dispatch after build'
|
|
15
15
|
required: false
|
|
16
16
|
default: ''
|
|
17
17
|
deploy_type:
|
|
@@ -39,7 +39,7 @@ jobs:
|
|
|
39
39
|
packages: write
|
|
40
40
|
id-token: write
|
|
41
41
|
steps:
|
|
42
|
-
- uses: actions/checkout@
|
|
42
|
+
- uses: actions/checkout@v7
|
|
43
43
|
|
|
44
44
|
- name: Install required packages
|
|
45
45
|
run: |
|
|
@@ -85,20 +85,24 @@ jobs:
|
|
|
85
85
|
run: |
|
|
86
86
|
cd .. && node engine/bin clone underpostnet/pwa-microservices-template
|
|
87
87
|
cd engine
|
|
88
|
-
npm run
|
|
88
|
+
npm run build:template
|
|
89
89
|
cd ../pwa-microservices-template
|
|
90
90
|
git remote set-url origin git@github.com:underpostnet/pwa-microservices-template.git
|
|
91
91
|
git add .
|
|
92
92
|
git config user.name 'underpostnet'
|
|
93
93
|
git config user.email 'fcoverdugoa@underpost.net'
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
if git diff --cached --quiet; then
|
|
95
|
+
echo "[INFO] No template changes to publish; skipping commit and push."
|
|
96
|
+
else
|
|
97
|
+
node ../engine/bin cmt . ci package-pwa-microservices-template-ghpkg "$LAST_COMMIT_MESSAGE"
|
|
98
|
+
node ../engine/bin push . underpostnet/pwa-microservices-template
|
|
99
|
+
fi
|
|
96
100
|
|
|
97
101
|
- name: Dispatch all engine CIs
|
|
98
102
|
run: |
|
|
99
103
|
DEPLOY_CONF_ID="${{ github.event.inputs.deploy_conf_id }}"
|
|
100
104
|
DEPLOY_TYPE="${{ github.event.inputs.deploy_type }}"
|
|
101
|
-
for ENGINE in engine-core engine-cyberia engine-lampp engine-test; do
|
|
105
|
+
for ENGINE in engine-core engine-prototype engine-cyberia engine-lampp engine-test; do
|
|
102
106
|
SYNC="false"
|
|
103
107
|
DT=""
|
|
104
108
|
if [ "$ENGINE" = "$DEPLOY_CONF_ID" ]; then
|
|
@@ -106,14 +110,17 @@ jobs:
|
|
|
106
110
|
DT="$DEPLOY_TYPE"
|
|
107
111
|
fi
|
|
108
112
|
echo "[INFO] Dispatching ${ENGINE}.ci.yml (sync=$SYNC, deploy_type=$DT)"
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
# Build the payload with node so the propagated message (may contain quotes/newlines)
|
|
114
|
+
# is JSON-escaped safely, and forward it so every engine-* repo shares one message.
|
|
115
|
+
PAYLOAD=$(SYNC="$SYNC" DT="$DT" MSG="$LAST_COMMIT_MESSAGE" node -e '
|
|
116
|
+
const i = { sync: process.env.SYNC };
|
|
117
|
+
if (process.env.DT) i.deploy_type = process.env.DT;
|
|
118
|
+
if (process.env.MSG) i.message = process.env.MSG;
|
|
119
|
+
process.stdout.write(JSON.stringify({ ref: "master", inputs: i }));
|
|
120
|
+
')
|
|
114
121
|
curl -s -X POST \
|
|
115
122
|
-H "Accept: application/vnd.github.v3+json" \
|
|
116
123
|
-H "Authorization: token ${{ secrets.GIT_AUTH_TOKEN }}" \
|
|
117
124
|
"https://api.github.com/repos/underpostnet/engine/actions/workflows/${ENGINE}.ci.yml/dispatches" \
|
|
118
|
-
-d "
|
|
125
|
+
-d "$PAYLOAD"
|
|
119
126
|
done
|
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
17
17
|
packages: write
|
|
18
18
|
id-token: write
|
|
19
19
|
steps:
|
|
20
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@v7
|
|
21
21
|
|
|
22
22
|
- name: Install required packages
|
|
23
23
|
run: |
|
|
@@ -54,7 +54,7 @@ jobs:
|
|
|
54
54
|
packages: write
|
|
55
55
|
id-token: write
|
|
56
56
|
steps:
|
|
57
|
-
- uses: actions/checkout@
|
|
57
|
+
- uses: actions/checkout@v7
|
|
58
58
|
|
|
59
59
|
- uses: actions/setup-node@v6
|
|
60
60
|
with:
|
|
@@ -12,7 +12,7 @@ jobs:
|
|
|
12
12
|
contents: read
|
|
13
13
|
id-token: write
|
|
14
14
|
steps:
|
|
15
|
-
- uses: actions/checkout@
|
|
15
|
+
- uses: actions/checkout@v7
|
|
16
16
|
|
|
17
17
|
- uses: actions/setup-node@v6
|
|
18
18
|
with:
|
|
@@ -29,35 +29,24 @@ jobs:
|
|
|
29
29
|
|
|
30
30
|
build-and-publish-ghpkg:
|
|
31
31
|
# prevents this action from running on forks
|
|
32
|
-
if: github.repository == 'underpostnet/engine-cyberia
|
|
32
|
+
if: github.repository == 'underpostnet/engine-ghpkg-cyberia'
|
|
33
33
|
runs-on: ubuntu-latest
|
|
34
34
|
permissions:
|
|
35
35
|
contents: read
|
|
36
|
+
packages: write
|
|
36
37
|
id-token: write
|
|
37
38
|
steps:
|
|
38
|
-
- uses: actions/checkout@
|
|
39
|
+
- uses: actions/checkout@v7
|
|
39
40
|
|
|
40
41
|
- uses: actions/setup-node@v6
|
|
41
42
|
with:
|
|
42
43
|
node-version: '24.x'
|
|
43
|
-
registry-url: 'https://
|
|
44
|
+
registry-url: 'https://npm.pkg.github.com'
|
|
44
45
|
scope: '@underpostnet'
|
|
45
46
|
|
|
46
47
|
- name: Install Dependencies
|
|
47
48
|
run: npm ci
|
|
48
49
|
|
|
49
|
-
- name: Publish to npm
|
|
50
|
-
env:
|
|
51
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
52
|
-
run: npm publish --provenance --access public
|
|
53
|
-
|
|
54
|
-
- name: Setup node to publish to GitHub Packages
|
|
55
|
-
uses: actions/setup-node@v6
|
|
56
|
-
with:
|
|
57
|
-
node-version: '24.x'
|
|
58
|
-
registry-url: 'https://npm.pkg.github.com'
|
|
59
|
-
scope: '@underpostnet'
|
|
60
|
-
|
|
61
50
|
- name: Publish to GitHub Packages
|
|
62
51
|
run: |
|
|
63
52
|
npm config set //npm.pkg.github.com/:_authToken=${{ secrets.GIT_AUTH_TOKEN }}
|
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
# Simple workflow for deploying static content to GitHub Pages
|
|
2
1
|
name: CD | Gihub page | PWA Microservices Template
|
|
3
2
|
|
|
4
3
|
on:
|
|
5
|
-
# Runs on pushes targeting the default branch
|
|
6
4
|
push:
|
|
7
5
|
branches: ['main']
|
|
8
6
|
|
|
9
|
-
# Allows you to run this workflow manually from the Actions tab
|
|
10
7
|
workflow_dispatch:
|
|
11
8
|
|
|
12
|
-
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
13
9
|
permissions:
|
|
14
10
|
contents: read
|
|
15
11
|
pages: write
|
|
16
12
|
id-token: write
|
|
17
13
|
|
|
18
|
-
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
19
|
-
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
20
14
|
concurrency:
|
|
21
15
|
group: 'pages'
|
|
22
16
|
cancel-in-progress: false
|
|
23
17
|
|
|
24
18
|
jobs:
|
|
25
|
-
# Single deploy job since we're just deploying
|
|
26
19
|
deploy:
|
|
27
20
|
if: github.repository == 'underpostnet/pwa-microservices-template-ghpkg'
|
|
28
21
|
environment:
|
|
@@ -33,7 +26,7 @@ jobs:
|
|
|
33
26
|
image: quay.io/rockylinux/rockylinux:9
|
|
34
27
|
steps:
|
|
35
28
|
- name: Checkout
|
|
36
|
-
uses: actions/checkout@
|
|
29
|
+
uses: actions/checkout@v7
|
|
37
30
|
# with:
|
|
38
31
|
# lfs: true
|
|
39
32
|
# - name: Checkout LFS objects
|