Skip to content

Refine office launch cockpit and loading screen #36

Refine office launch cockpit and loading screen

Refine office launch cockpit and loading screen #36

name: Release Guardrails
on:
pull_request:
push:
branches:
- main
workflow_dispatch:
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
permissions:
contents: read
jobs:
static-checks:
name: static-checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: 22
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Lint
run: pnpm run lint
- name: Typecheck
run: pnpm run typecheck
test-client:
name: test-client
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: 22
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Test Client
run: pnpm run test:client
test-server:
name: test-server
runs-on: ubuntu-latest
env:
TEST_SERVER_BATCH_SIZE: 20
TEST_SERVER_SINGLE_FORK: "0"
TEST_SERVER_FILE_PARALLELISM: "0"
TEST_SERVER_BATCH_TIMEOUT_MS: 180000
TEST_SERVER_KILL_GRACE_MS: 10000
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: 22
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Test Server
run: pnpm run test:server
test-executor:
name: test-executor
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: 22
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Test Executor
run: pnpm run test:executor
build:
name: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: 22
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
quality-gates:
name: quality-gates
if: always()
runs-on: ubuntu-latest
needs:
- static-checks
- test-client
- test-server
- test-executor
- build
steps:
- name: Summarize dependency results
run: |
echo "static-checks=${{ needs.static-checks.result }}"
echo "test-client=${{ needs.test-client.result }}"
echo "test-server=${{ needs.test-server.result }}"
echo "test-executor=${{ needs.test-executor.result }}"
echo "build=${{ needs.build.result }}"
- name: Fail if any dependency failed
run: |
if [ "${{ needs.static-checks.result }}" != "success" ] || \
[ "${{ needs.test-client.result }}" != "success" ] || \
[ "${{ needs.test-server.result }}" != "success" ] || \
[ "${{ needs.test-executor.result }}" != "success" ] || \
[ "${{ needs.build.result }}" != "success" ]; then
echo "One or more quality gate jobs failed."
exit 1
fi