100 lines
3.1 KiB
YAML
100 lines
3.1 KiB
YAML
name: ReleaseApp (JS finder + download)
|
|
|
|
on:
|
|
workflow_dispatch: {}
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GITEA_BASE_URL: https://code.bim-it.pl
|
|
OWNER: mz
|
|
REPO: DiunaBI
|
|
REQUIRED_ARTIFACTS: frontend,webapi
|
|
SCAN_LIMIT: "100"
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Use Node.js 20
|
|
uses: https://github.com/actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Install unzip (for extraction)
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y unzip
|
|
|
|
- name: Resolve latest run that exposes required artifacts
|
|
id: resolve
|
|
env:
|
|
GITEA_PAT: ${{ secrets.GITEATOKEN }}
|
|
run: |
|
|
node .gitea/scripts/getLatestRunWithArtifacts.js
|
|
echo "Resolved run_id: $(cat .gitea/.cache/run_id)"
|
|
|
|
- name: Download frontend artifact
|
|
env:
|
|
GITEA_PAT: ${{ secrets.GITEATOKEN }}
|
|
ARTIFACT_NAME: frontend
|
|
RUN_ID: ${{ steps.resolve.outputs.run_id }}
|
|
OUTPUT_DIR: artifacts/frontend
|
|
run: |
|
|
node .gitea/scripts/downloadArtifactByName.js
|
|
|
|
- name: Download webapi artifact
|
|
env:
|
|
GITEA_PAT: ${{ secrets.GITEATOKEN }}
|
|
ARTIFACT_NAME: webapi
|
|
RUN_ID: ${{ steps.resolve.outputs.run_id }}
|
|
OUTPUT_DIR: artifacts/webapi
|
|
run: |
|
|
node .gitea/scripts/downloadArtifactByName.js
|
|
|
|
- name: Show artifact structure
|
|
run: |
|
|
echo "::group::frontend"
|
|
ls -laR artifacts/frontend || true
|
|
echo "::endgroup::"
|
|
echo "::group::webapi"
|
|
ls -laR artifacts/webapi || true
|
|
echo "::endgroup::"
|
|
|
|
- name: Tokenize (replace #{...}# from secrets/vars)
|
|
env:
|
|
SECRETS: ${{ toJson(secrets) }}
|
|
VARIABLES: ${{ toJson(vars) }}
|
|
run: |
|
|
set -euo pipefail
|
|
node -e "require('./.gitea/workflows/scripts/replaceTokens.js')({ github: {}, context: {}, core: {} });"
|
|
|
|
- name: Package artifacts as ZIPs
|
|
run: |
|
|
mkdir -p build
|
|
(cd artifacts/frontend && zip -rq ../../build/DiunaBI-Morska-Frontend.zip .)
|
|
(cd artifacts/webapi && zip -rq ../../build/DiunaBI-Morska-WebApi.zip .)
|
|
ls -la build
|
|
- name: Upload artifacts to remote server
|
|
env:
|
|
SSH_PRIVATE_KEY: ${{ secrets.GITEARUNNER_SSH_KEY }}
|
|
SSH_USER: mz
|
|
SSH_HOST: bim-it.pl
|
|
REMOTE_DIR: deployment
|
|
run: |
|
|
set -euo pipefail
|
|
|
|
umask 077
|
|
echo "$SSH_PRIVATE_KEY" > private_key
|
|
chmod 600 private_key
|
|
|
|
mkdir -p ~/.ssh
|
|
ssh-keyscan -H "$SSH_HOST" >> ~/.ssh/known_hosts
|
|
|
|
ssh -i private_key "$SSH_USER@$SSH_HOST" "mkdir -p ~/$REMOTE_DIR"
|
|
|
|
scp -i private_key build/DiunaBI-Morska-Frontend.zip "$SSH_USER@$SSH_HOST:~/$REMOTE_DIR/"
|
|
scp -i private_key build/DiunaBI-Morska-WebApi.zip "$SSH_USER@$SSH_HOST:~/$REMOTE_DIR/"
|
|
|
|
shred -u private_key |