Skip to content

[codex] Add edge push deploy workflow #2

[codex] Add edge push deploy workflow

[codex] Add edge push deploy workflow #2

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- master
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22
- name: Install dependencies
run: npm ci
- name: Build release artifacts
run: |
npm run build
rm -rf release
mkdir -p release
cp -R dist migrations package.json package-lock.json release/
(cd release && npm ci --omit=dev)
deploy-edge:
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
needs: validate
runs-on: ubuntu-latest
environment: production
concurrency:
group: edge-deploy-${{ github.repository }}
cancel-in-progress: false
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22
- name: Install dependencies
run: npm ci
- name: Build release artifacts
run: |
npm run build
rm -rf release
mkdir -p release
cp -R dist migrations package.json package-lock.json release/
(cd release && npm ci --omit=dev)
- name: Create backend deploy marker
run: |
mkdir -p .deploy-marker
printf '{"release":"%s"}\n' "${GITHUB_SHA}" > ".deploy-marker/${GITHUB_SHA}.json"
- name: Upload backend release to edge
uses: shipstuff/actions/digital-ocean-upload@325fc379aef61b2734ad478d16b1df190a2b4889
with:
ssh-private-key: ${{ secrets.EDGE_KEY }}
edge-user: orcha
source-path: release
edge-path: /home/orcha/releases/${{ github.sha }}/
delete: "true"
- name: Queue backend activation
uses: shipstuff/actions/digital-ocean-upload@325fc379aef61b2734ad478d16b1df190a2b4889
with:
ssh-private-key: ${{ secrets.EDGE_KEY }}
edge-user: orcha
source-path: .deploy-marker
edge-path: /home/orcha/deploy-queue/
delete: "false"
wait-for-marker: "true"
marker-name: ${{ github.sha }}.json