|
31163
|
23534
|
81
|
5
|
fbedaf6d0398693dc8466b4b72b6265d2397d93c
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
DIGITAL_EMPLOYEE_OS_ROOT: ${{ github.workspace }}/digital-employee-os
steps:
- name: Checkout service system
uses: actions/checkout@v4
with:
path: service-system
- name: Checkout locked Digital Employee OS baseline
uses: actions/checkout@v4
with:
path: digital-employee-os
ref: 5cb2f1cc2f9953d47fa0bcfac541400d01603f78
repository: laoluojuhai/digital-employee-os
token: ${{ secrets.DIGITAL_EMPLOYEE_OS_READ_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build locked Digital Employee OS compatibility packages
run: |
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" install --frozen-lockfile
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" --filter @repo/contracts build
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" --filter @repo/skill-runtime build
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" --filter @repo/tool-runtime build
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
defaults:
run:
working-directory: service-system
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27234
|
2
|
1787712441
|
1787712471
|
1787711431
|
1787712471
|
|
0
|
|
0
|
Edit
Delete
|
|
31164
|
23534
|
81
|
5
|
fbedaf6d0398693dc8466b4b72b6265d2397d93c
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/juhai_after_sales_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: juhai_after_sales_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d juhai_after_sales_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1787711431
|
1787712472
|
|
1
|
|
0
|
Edit
Delete
|
|
31165
|
23535
|
81
|
5
|
3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
DIGITAL_EMPLOYEE_OS_ROOT: ${{ github.workspace }}/digital-employee-os
steps:
- name: Checkout service system
uses: actions/checkout@v4
with:
path: service-system
- name: Checkout locked Digital Employee OS baseline
uses: actions/checkout@v4
with:
path: digital-employee-os
ref: 5cb2f1cc2f9953d47fa0bcfac541400d01603f78
repository: laoluojuhai/digital-employee-os
token: ${{ secrets.DIGITAL_EMPLOYEE_OS_READ_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build locked Digital Employee OS compatibility packages
run: |
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" install --frozen-lockfile
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" --filter @repo/contracts build
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" --filter @repo/skill-runtime build
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" --filter @repo/tool-runtime build
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
defaults:
run:
working-directory: service-system
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27235
|
2
|
1787714350
|
1787714358
|
1787714348
|
1787714358
|
|
0
|
|
0
|
Edit
Delete
|
|
31166
|
23535
|
81
|
5
|
3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/juhai_after_sales_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: juhai_after_sales_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d juhai_after_sales_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1787714348
|
1787714358
|
|
1
|
|
0
|
Edit
Delete
|
|
31169
|
23537
|
81
|
5
|
466e9752ba0f670d790b5134ff2d12e5b0e974ea
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
DIGITAL_EMPLOYEE_OS_ROOT: ${{ github.workspace }}/digital-employee-os
steps:
- name: Checkout service system
uses: actions/checkout@v4
with:
path: service-system
- name: Checkout locked Digital Employee OS baseline
uses: actions/checkout@v4
with:
path: digital-employee-os
ref: 5cb2f1cc2f9953d47fa0bcfac541400d01603f78
repository: laoluojuhai/digital-employee-os
token: ${{ secrets.DIGITAL_EMPLOYEE_OS_READ_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build locked Digital Employee OS compatibility packages
run: |
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" install --frozen-lockfile
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" --filter @repo/contracts build
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" --filter @repo/skill-runtime build
pnpm --dir "$DIGITAL_EMPLOYEE_OS_ROOT" --filter @repo/tool-runtime build
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
defaults:
run:
working-directory: service-system
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27237
|
2
|
1787820687
|
1787820696
|
1787820687
|
1787820696
|
|
0
|
|
0
|
Edit
Delete
|
|
31170
|
23537
|
81
|
5
|
466e9752ba0f670d790b5134ff2d12e5b0e974ea
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/juhai_after_sales_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: juhai_after_sales_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d juhai_after_sales_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1787820687
|
1787820696
|
|
1
|
|
0
|
Edit
Delete
|
|
31121
|
23527
|
82
|
5
|
343e79d764ae566372808d0d922fcef7ca12a30e
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27211
|
2
|
1787706746
|
1787706776
|
1787706744
|
1787706776
|
|
0
|
|
0
|
Edit
Delete
|
|
31122
|
23527
|
82
|
5
|
343e79d764ae566372808d0d922fcef7ca12a30e
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/juhai_ai_work_order_system_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
- name: Reconcile full governance evidence
run: pnpm check:governance
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: juhai_ai_work_order_system_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d juhai_ai_work_order_system_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1787706744
|
1787706777
|
|
1
|
|
0
|
Edit
Delete
|
|
31173
|
23539
|
82
|
5
|
f78be17ac5fecb9cfa36e167b1e85ea26a48fa45
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27239
|
2
|
1787913991
|
1787914025
|
1787913990
|
1787914025
|
|
0
|
|
0
|
Edit
Delete
|
|
31174
|
23539
|
82
|
5
|
f78be17ac5fecb9cfa36e167b1e85ea26a48fa45
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/juhai_ai_work_order_system_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
S3_ENDPOINT: http://127.0.0.1:9000
S3_ACCESS_KEY_ID: juhai-ci
S3_SECRET_ACCESS_KEY: juhai-ci-secret-change-me
S3_ATTACHMENT_BUCKET: juhai-attachments
S3_REGION: us-east-1
S3_FORCE_PATH_STYLE: "true"
CLAMAV_HOST: 127.0.0.1
CLAMAV_PORT: "3310"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Start real S3 and antivirus acceptance infrastructure
run: |
set -euo pipefail
docker run -d --name juhai-ci-minio -p 9000:9000 \
-e MINIO_ROOT_USER=juhai-ci \
-e MINIO_ROOT_PASSWORD=juhai-ci-secret-change-me \
quay.io/minio/minio@sha256:064117214caceaa8d8a90ef7caa58f2b2aeb316b5156afe9ee8da5b4d83e12c8 \
server /data
docker run -d --name juhai-ci-clamav -p 3310:3310 \
clamav/clamav-debian@sha256:967334b92d1782e4d1314ddf903ae537d26792d21c9a39adecb8ac9757980514
for attempt in $(seq 1 60); do
curl --fail --silent http://127.0.0.1:9000/minio/health/live && break
if [[ "$attempt" == 60 ]]; then exit 1; fi
sleep 2
done
docker run --rm --network host \
quay.io/minio/mc@sha256:09f93f534cde415d192bb6084dd0e0ddd1715fb602f8a922ad121fd2bf0f8b44 \
sh -c 'mc alias set local http://127.0.0.1:9000 juhai-ci juhai-ci-secret-change-me && mc mb --ignore-existing local/juhai-attachments'
for attempt in $(seq 1 90); do
docker exec juhai-ci-clamav clamdscan --ping 1 && break
if [[ "$attempt" == 90 ]]; then exit 1; fi
sleep 3
done
shell: bash
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
- name: Reconcile full governance evidence
run: pnpm check:governance
- name: Create verified logical backup
run: bash scripts/backup-postgres.sh
env:
BACKUP_OUTPUT: ${{ runner.temp }}/juhai-ticket-ci.dump
- name: Restore into an isolated database and verify governed facts
run: |
set -euo pipefail
createdb --dbname="postgresql://postgres:postgres@127.0.0.1:5432/postgres" juhai_ai_work_order_system_restore_ci
checksum="$(awk '{print $1}' "${RUNNER_TEMP}/juhai-ticket-ci.dump.sha256")"
BACKUP_INPUT="${RUNNER_TEMP}/juhai-ticket-ci.dump" \
EXPECTED_SHA256="${checksum}" \
RESTORE_DATABASE_URL="postgresql://postgres:postgres@127.0.0.1:5432/juhai_ai_work_order_system_restore_ci" \
bash scripts/restore-postgres-drill.sh
shell: bash
services:
postgres:
image: pgvector/pgvector@sha256:ccc6e83d6e35e931dc7c5def2022729d5a6c370318d099181995567ff1fb4d6b
env:
POSTGRES_DB: juhai_ai_work_order_system_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d juhai_ai_work_order_system_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1787913990
|
1787914026
|
|
1
|
|
0
|
Edit
Delete
|
|
31333
|
23567
|
83
|
5
|
c652cd634964e915a0a9895cc9a91be4381333b0
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27314
|
2
|
1788073798
|
1788074096
|
1788073796
|
1788074096
|
|
0
|
|
0
|
Edit
Delete
|
|
31334
|
23567
|
83
|
5
|
c652cd634964e915a0a9895cc9a91be4381333b0
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/juhai_ai_hr_system_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run NestJS UI acceptance
run: pnpm check:ui
- name: Run Fastify UI acceptance
run: pnpm check:ui:fastify
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: juhai_ai_hr_system_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d juhai_ai_hr_system_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788073796
|
1788074098
|
|
1
|
|
0
|
Edit
Delete
|
|
31139
|
23529
|
84
|
5
|
f2a674de3343d5031dee856edd261194709b727f
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27216
|
2
|
1787708896
|
1787708916
|
1787708825
|
1787708917
|
|
0
|
|
0
|
Edit
Delete
|
|
31140
|
23529
|
84
|
5
|
f2a674de3343d5031dee856edd261194709b727f
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/juhai_knowledge_cloud_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: juhai_knowledge_cloud_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d juhai_knowledge_cloud_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1787708825
|
1787708918
|
|
1
|
|
0
|
Edit
Delete
|
|
31171
|
23538
|
84
|
5
|
4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27238
|
2
|
1787836636
|
1787836653
|
1787836636
|
1787836653
|
|
0
|
|
0
|
Edit
Delete
|
|
31172
|
23538
|
84
|
5
|
4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/juhai_knowledge_cloud_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: juhai_knowledge_cloud_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d juhai_knowledge_cloud_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1787836636
|
1787836655
|
|
1
|
|
0
|
Edit
Delete
|
|
31192
|
23542
|
90
|
5
|
dcd85b10ac06ae862fe3789b6bd548838487b8fe
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27242
|
2
|
1788052201
|
1788052223
|
1788052201
|
1788052223
|
|
0
|
|
0
|
Edit
Delete
|
|
31193
|
23542
|
90
|
5
|
dcd85b10ac06ae862fe3789b6bd548838487b8fe
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/base_framework_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: base_framework_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d base_framework_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788052201
|
1788052224
|
|
1
|
|
0
|
Edit
Delete
|
|
31214
|
23553
|
90
|
5
|
46dce73b5cfc83e6e6cfb87922f22faee76fdd28
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27258
|
2
|
1788059669
|
1788059693
|
1788059668
|
1788059693
|
|
0
|
|
0
|
Edit
Delete
|
|
31215
|
23553
|
90
|
5
|
46dce73b5cfc83e6e6cfb87922f22faee76fdd28
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/minimax_h3_studio_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: minimax_h3_studio_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d minimax_h3_studio_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788059668
|
1788059693
|
|
1
|
|
0
|
Edit
Delete
|
|
31246
|
23556
|
90
|
5
|
1c5b6ec9fef8d18a24b5bcd6a44665279fb3f493
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27261
|
2
|
1788059948
|
1788059969
|
1788059747
|
1788059969
|
|
0
|
|
0
|
Edit
Delete
|
|
31247
|
23556
|
90
|
5
|
1c5b6ec9fef8d18a24b5bcd6a44665279fb3f493
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/minimax_h3_studio_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: minimax_h3_studio_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d minimax_h3_studio_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788059747
|
1788059970
|
|
1
|
|
0
|
Edit
Delete
|
|
31250
|
23558
|
90
|
5
|
cc4fd9ff70eff1c23556db5da7ac36b0639383e8
|
0
|
Static governance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
0
|
3
|
0
|
1788060627
|
1788060230
|
1788060627
|
|
0
|
|
0
|
Edit
Delete
|
|
31251
|
23558
|
90
|
5
|
cc4fd9ff70eff1c23556db5da7ac36b0639383e8
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/minimax_h3_studio_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: minimax_h3_studio_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d minimax_h3_studio_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
3
|
0
|
1788060627
|
1788060230
|
1788060627
|
|
0
|
|
0
|
Edit
Delete
|
|
31252
|
23559
|
90
|
5
|
8d38d4378b829970bdaf5ccb811e872883fb9d66
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27278
|
2
|
1788060812
|
1788060842
|
1788060627
|
1788060842
|
|
0
|
|
0
|
Edit
Delete
|
|
31253
|
23559
|
90
|
5
|
8d38d4378b829970bdaf5ccb811e872883fb9d66
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/minimax_h3_studio_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: minimax_h3_studio_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d minimax_h3_studio_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788060627
|
1788060844
|
|
1
|
|
0
|
Edit
Delete
|
|
31194
|
23543
|
91
|
5
|
3c6f499596071037b0035ababe289c015f79d83e
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27243
|
2
|
1788052881
|
1788052901
|
1788052880
|
1788052902
|
|
0
|
|
0
|
Edit
Delete
|
|
31195
|
23543
|
91
|
5
|
3c6f499596071037b0035ababe289c015f79d83e
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/qwen3_8_flash_next_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: qwen3_8_flash_next_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d qwen3_8_flash_next_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788052880
|
1788052902
|
|
1
|
|
0
|
Edit
Delete
|
|
31196
|
23544
|
91
|
5
|
3ace3ff6a846bd8e245bbeb090fd28d683945735
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27244
|
2
|
1788053600
|
1788053619
|
1788053599
|
1788053619
|
|
0
|
|
0
|
Edit
Delete
|
|
31197
|
23544
|
91
|
5
|
3ace3ff6a846bd8e245bbeb090fd28d683945735
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/qwen3_8_flash_next_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: qwen3_8_flash_next_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d qwen3_8_flash_next_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788053599
|
1788053621
|
|
1
|
|
0
|
Edit
Delete
|
|
31198
|
23545
|
91
|
5
|
e20004f4776df6413cdfa4d0b49afdd9bea5b69e
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27245
|
2
|
1788053742
|
1788053761
|
1788053741
|
1788053762
|
|
0
|
|
0
|
Edit
Delete
|
|
31199
|
23545
|
91
|
5
|
e20004f4776df6413cdfa4d0b49afdd9bea5b69e
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/qwen3_8_flash_next_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: qwen3_8_flash_next_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d qwen3_8_flash_next_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788053741
|
1788053762
|
|
1
|
|
0
|
Edit
Delete
|
|
31200
|
23546
|
91
|
5
|
e465f302d62150997d35782bfec2304043dd605d
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
# check:os-product 的上游:同实例私有仓,按 SHA 钉版(与本地验收口径一致)。
# 升级流程:先在本地以新 SHA 跑绿 check:os-product(:runtime),再改这里的 OS_SHA。
OS_REPO: luoanwu/digital-employee-os
OS_SHA: fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Checkout Digital Employee OS (check:os-product upstream)
run: |
set -euo pipefail
OS_DIR="$RUNNER_TEMP/digital-employee-os"
rm -rf "$OS_DIR" && mkdir -p "$OS_DIR" && cd "$OS_DIR"
git init -q .
git remote add origin "https://oauth2:${OS_TOKEN}@gitea.g-hi.com/${OS_REPO}.git"
git fetch --depth 1 origin "$OS_SHA"
git checkout -q --detach FETCH_HEAD
echo "DIGITAL_EMPLOYEE_OS_ROOT=$OS_DIR" >> "$GITHUB_ENV"
echo "DIGITAL_EMPLOYEE_OS_SHA=$OS_SHA" >> "$GITHUB_ENV"
env:
OS_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || secrets.GITEA_TOKEN }}
- name: Build Digital Employee OS contracts
run: |
set -euo pipefail
cd "$DIGITAL_EMPLOYEE_OS_ROOT"
pnpm install --frozen-lockfile
pnpm --filter @repo/contracts build
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27246
|
2
|
1788054332
|
1788054370
|
1788054330
|
1788054370
|
|
0
|
|
0
|
Edit
Delete
|
|
31201
|
23546
|
91
|
5
|
e465f302d62150997d35782bfec2304043dd605d
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/qwen3_8_flash_next_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: qwen3_8_flash_next_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d qwen3_8_flash_next_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788054330
|
1788054372
|
|
1
|
|
0
|
Edit
Delete
|
|
31202
|
23547
|
91
|
5
|
fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
# check:os-product 的上游:同实例私有仓,按 SHA 钉版(与本地验收口径一致)。
# 升级流程:先在本地以新 SHA 跑绿 check:os-product(:runtime),再改这里的 OS_SHA。
OS_REPO: luoanwu/digital-employee-os
OS_SHA: fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Checkout Digital Employee OS (check:os-product upstream)
run: |
set -euo pipefail
OS_DIR="$RUNNER_TEMP/digital-employee-os"
rm -rf "$OS_DIR" && mkdir -p "$OS_DIR" && cd "$OS_DIR"
git init -q .
git remote add origin "https://oauth2:${OS_TOKEN}@gitea.g-hi.com/${OS_REPO}.git"
git fetch --depth 1 origin "$OS_SHA"
git checkout -q --detach FETCH_HEAD
echo "DIGITAL_EMPLOYEE_OS_ROOT=$OS_DIR" >> "$GITHUB_ENV"
echo "DIGITAL_EMPLOYEE_OS_SHA=$OS_SHA" >> "$GITHUB_ENV"
env:
OS_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || secrets.GITEA_TOKEN }}
- name: Build Digital Employee OS contracts
run: |
set -euo pipefail
cd "$DIGITAL_EMPLOYEE_OS_ROOT"
pnpm install --frozen-lockfile
pnpm --filter @repo/contracts build
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27247
|
1
|
1788054594
|
1788054657
|
1788054593
|
1788054657
|
|
0
|
|
0
|
Edit
Delete
|
|
31203
|
23547
|
91
|
5
|
fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0
|
0
|
Runtime and UI acceptance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/qwen3_8_flash_next_ci?schema=public
REDIS_URL: redis://127.0.0.1:6379
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
services:
postgres:
image: postgres:16
env:
POSTGRES_DB: qwen3_8_flash_next_ci
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres -d qwen3_8_flash_next_ci" --health-interval 5s --health-timeout 5s --health-retries 20
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 5s --health-timeout 5s --health-retries 20
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
27248
|
2
|
1788054659
|
1788054676
|
1788054593
|
1788054676
|
|
1
|
|
0
|
Edit
Delete
|
|
31204
|
23548
|
91
|
5
|
625450881bfb787bfa4ac092e11bfe534c340163
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
# check:os-product 的上游:同实例私有仓,按 SHA 钉版(与本地验收口径一致)。
# 升级流程:先在本地以新 SHA 跑绿 check:os-product(:runtime),再改这里的 OS_SHA。
OS_REPO: luoanwu/digital-employee-os
OS_SHA: fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Checkout Digital Employee OS (check:os-product upstream)
run: |
set -euo pipefail
OS_DIR="$RUNNER_TEMP/digital-employee-os"
rm -rf "$OS_DIR" && mkdir -p "$OS_DIR" && cd "$OS_DIR"
git init -q .
git remote add origin "https://oauth2:${OS_TOKEN}@gitea.g-hi.com/${OS_REPO}.git"
git fetch --depth 1 origin "$OS_SHA"
git checkout -q --detach FETCH_HEAD
echo "DIGITAL_EMPLOYEE_OS_ROOT=$OS_DIR" >> "$GITHUB_ENV"
echo "DIGITAL_EMPLOYEE_OS_SHA=$OS_SHA" >> "$GITHUB_ENV"
env:
OS_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || secrets.GITEA_TOKEN }}
- name: Build Digital Employee OS contracts
run: |
set -euo pipefail
cd "$DIGITAL_EMPLOYEE_OS_ROOT"
pnpm install --frozen-lockfile
pnpm --filter @repo/contracts build
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27249
|
2
|
1788055008
|
1788055099
|
1788055006
|
1788055099
|
|
0
|
|
0
|
Edit
Delete
|
|
31205
|
23548
|
91
|
5
|
625450881bfb787bfa4ac092e11bfe534c340163
|
0
|
Runtime and UI acceptance
|
0
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
# 大陆网络直连 Playwright CDN 会长时间零进度假死(本机实测 8 分钟 0 字节,
# npmmirror 30 秒完成);runner 与本机同网段,直接走镜像。
PLAYWRIGHT_DOWNLOAD_HOST: https://cdn.npmmirror.com/binaries/playwright
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
- name: Provision PostgreSQL and Redis
run: |
set -euo pipefail
command -v docker >/dev/null 2>&1 || { echo "::error::runner 宿主缺 docker——runtime 验收需要它启动隔离 PostgreSQL/Redis(或改用支持 services 的容器模式 runner)"; exit 1; }
PG_NAME="qwen38fn-ci-pg-${GITHUB_RUN_ID}"
REDIS_NAME="qwen38fn-ci-redis-${GITHUB_RUN_ID}"
docker rm -f "$PG_NAME" "$REDIS_NAME" >/dev/null 2>&1 || true
docker run -d --name "$PG_NAME" \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=qwen3_8_flash_next_ci \
-p 127.0.0.1::5432 postgres:16 >/dev/null
docker run -d --name "$REDIS_NAME" -p 127.0.0.1::6379 redis:7 >/dev/null
PG_PORT="$(docker port "$PG_NAME" 5432/tcp | head -n1 | awk -F: '{print $NF}')"
REDIS_PORT="$(docker port "$REDIS_NAME" 6379/tcp | head -n1 | awk -F: '{print $NF}')"
for _ in $(seq 1 60); do
docker exec "$PG_NAME" pg_isready -U postgres >/dev/null 2>&1 && break
sleep 1
done
docker exec "$PG_NAME" pg_isready -U postgres -d qwen3_8_flash_next_ci
[ "$(docker exec "$REDIS_NAME" redis-cli ping)" = "PONG" ]
{
echo "PG_NAME=$PG_NAME"
echo "REDIS_NAME=$REDIS_NAME"
echo "DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:${PG_PORT}/qwen3_8_flash_next_ci?schema=public"
echo "REDIS_URL=redis://127.0.0.1:${REDIS_PORT}"
} >> "$GITHUB_ENV"
echo "PostgreSQL 127.0.0.1:${PG_PORT} / Redis 127.0.0.1:${REDIS_PORT} 就绪"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
- if: always()
name: Tear down PostgreSQL and Redis
run: docker rm -f "${PG_NAME:-}" "${REDIS_NAME:-}" >/dev/null 2>&1 || true
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
0
|
4
|
0
|
0
|
1788055006
|
1788055099
|
|
1
|
|
0
|
Edit
Delete
|
|
31206
|
23549
|
91
|
5
|
b3c5c984414aa860f22c4e16c497d4e25515c067
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
# check:os-product 的上游:同实例私有仓,按 SHA 钉版(与本地验收口径一致)。
# 升级流程:先在本地以新 SHA 跑绿 check:os-product(:runtime),再改这里的 OS_SHA。
OS_REPO: luoanwu/digital-employee-os
OS_SHA: fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7
# Digital Employee OS 的 engines 要求 node >=22(本仓自身 >=20,取并集)
NODE_VERSION: v22.16.0
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Checkout Digital Employee OS (check:os-product upstream)
run: |
set -euo pipefail
HOST_PATH="${GITHUB_SERVER_URL#*://}"
OS_DIR="$RUNNER_TEMP/digital-employee-os"
rm -rf "$OS_DIR" && mkdir -p "$OS_DIR" && cd "$OS_DIR"
git init -q .
git remote add origin "https://oauth2:${OS_TOKEN}@${HOST_PATH}/${OS_REPO}.git"
git fetch -q --depth 1 origin "$OS_SHA"
git checkout -q --detach FETCH_HEAD
echo "DIGITAL_EMPLOYEE_OS_ROOT=$OS_DIR" >> "$GITHUB_ENV"
echo "DIGITAL_EMPLOYEE_OS_SHA=$OS_SHA" >> "$GITHUB_ENV"
env:
OS_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Build Digital Employee OS contracts
run: |
set -euo pipefail
cd "$DIGITAL_EMPLOYEE_OS_ROOT"
pnpm install --frozen-lockfile
pnpm --filter @repo/contracts build
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27250
|
1
|
1788055431
|
1788055490
|
1788055430
|
1788055490
|
|
0
|
|
0
|
Edit
Delete
|
|
31207
|
23549
|
91
|
5
|
b3c5c984414aa860f22c4e16c497d4e25515c067
|
0
|
Runtime and UI acceptance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
NODE_VERSION: v22.16.0
# 大陆网络直连 Playwright CDN 会长时间零进度假死(本机实测 8 分钟 0 字节,
# npmmirror 30 秒完成);runner 与本机同网段,直接走镜像。
PLAYWRIGHT_DOWNLOAD_HOST: https://cdn.npmmirror.com/binaries/playwright
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Provision PostgreSQL and Redis
run: |
set -euo pipefail
command -v docker >/dev/null 2>&1 || { echo "::error::runner 宿主缺 docker——runtime 验收需要它启动隔离 PostgreSQL/Redis(或改用支持 services 的容器模式 runner)"; exit 1; }
PG_NAME="qwen38fn-ci-pg-${GITHUB_RUN_ID}"
REDIS_NAME="qwen38fn-ci-redis-${GITHUB_RUN_ID}"
docker rm -f "$PG_NAME" "$REDIS_NAME" >/dev/null 2>&1 || true
docker run -d --name "$PG_NAME" \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=qwen3_8_flash_next_ci \
-p 127.0.0.1::5432 postgres:16 >/dev/null
docker run -d --name "$REDIS_NAME" -p 127.0.0.1::6379 redis:7 >/dev/null
PG_PORT="$(docker port "$PG_NAME" 5432/tcp | head -n1 | awk -F: '{print $NF}')"
REDIS_PORT="$(docker port "$REDIS_NAME" 6379/tcp | head -n1 | awk -F: '{print $NF}')"
for _ in $(seq 1 60); do
docker exec "$PG_NAME" pg_isready -U postgres >/dev/null 2>&1 && break
sleep 1
done
docker exec "$PG_NAME" pg_isready -U postgres -d qwen3_8_flash_next_ci
[ "$(docker exec "$REDIS_NAME" redis-cli ping)" = "PONG" ]
{
echo "PG_NAME=$PG_NAME"
echo "REDIS_NAME=$REDIS_NAME"
echo "DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:${PG_PORT}/qwen3_8_flash_next_ci?schema=public"
echo "REDIS_URL=redis://127.0.0.1:${REDIS_PORT}"
} >> "$GITHUB_ENV"
echo "PostgreSQL 127.0.0.1:${PG_PORT} / Redis 127.0.0.1:${REDIS_PORT} 就绪"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
- if: always()
name: Tear down PostgreSQL and Redis
run: docker rm -f "${PG_NAME:-}" "${REDIS_NAME:-}" >/dev/null 2>&1 || true
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
27251
|
2
|
1788055492
|
1788055528
|
1788055430
|
1788055528
|
|
1
|
|
0
|
Edit
Delete
|
|
31208
|
23550
|
91
|
5
|
284009be92a0f6d8f79682120be0421fa0d80387
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
# check:os-product 的上游:同实例私有仓,按 SHA 钉版(与本地验收口径一致)。
# 升级流程:先在本地以新 SHA 跑绿 check:os-product(:runtime),再改这里的 OS_SHA。
OS_REPO: luoanwu/digital-employee-os
OS_SHA: fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7
# Digital Employee OS 的 engines 要求 node >=22(本仓自身 >=20,取并集)
NODE_VERSION: v22.16.0
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Checkout Digital Employee OS (check:os-product upstream)
run: |
set -euo pipefail
HOST_PATH="${GITHUB_SERVER_URL#*://}"
OS_DIR="$RUNNER_TEMP/digital-employee-os"
rm -rf "$OS_DIR" && mkdir -p "$OS_DIR" && cd "$OS_DIR"
git init -q .
git remote add origin "https://oauth2:${OS_TOKEN}@${HOST_PATH}/${OS_REPO}.git"
git fetch -q --depth 1 origin "$OS_SHA"
git checkout -q --detach FETCH_HEAD
echo "DIGITAL_EMPLOYEE_OS_ROOT=$OS_DIR" >> "$GITHUB_ENV"
echo "DIGITAL_EMPLOYEE_OS_SHA=$OS_SHA" >> "$GITHUB_ENV"
env:
OS_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Build Digital Employee OS contracts
run: |
set -euo pipefail
cd "$DIGITAL_EMPLOYEE_OS_ROOT"
pnpm install --frozen-lockfile
pnpm --filter @repo/contracts build
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27252
|
1
|
1788056210
|
1788056268
|
1788056209
|
1788056268
|
|
0
|
|
0
|
Edit
Delete
|
|
31209
|
23550
|
91
|
5
|
284009be92a0f6d8f79682120be0421fa0d80387
|
0
|
Runtime and UI acceptance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
NODE_VERSION: v22.16.0
# 大陆网络直连 Playwright CDN 会长时间零进度假死(本机实测 8 分钟 0 字节,
# npmmirror 30 秒完成);runner 与本机同网段,直接走镜像。
PLAYWRIGHT_DOWNLOAD_HOST: https://cdn.npmmirror.com/binaries/playwright
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Provision PostgreSQL and Redis
run: |
set -euo pipefail
command -v docker >/dev/null 2>&1 || { echo "::error::runner 宿主缺 docker——runtime 验收需要它启动隔离 PostgreSQL/Redis(或改用支持 services 的容器模式 runner)"; exit 1; }
# runner 宿主直连 Docker Hub 被拒(run #7:pull access denied)——大陆网络
# 常态。解析顺序:本地已有镜像(任一命名)→ daocloud/1ms 镜像站 → hub 兜底;
# 首次拉取成功后镜像常驻宿主,后续 run 不再依赖外网。
resolve_image() {
local image="$1" ref
for ref in "docker.io/library/${image}" "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "${image}"; do
if docker image inspect "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
for ref in "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "docker.io/library/${image}"; do
if docker pull --quiet "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
echo "::error::拉取 ${image} 失败:daocloud/1ms 镜像站与 Docker Hub 均不可达;可在 runner 宿主预拉镜像或给 dockerd 配 registry-mirrors" >&2
return 1
}
PG_IMAGE="$(resolve_image postgres:16)"
REDIS_IMAGE="$(resolve_image redis:7)"
echo "镜像解析:$PG_IMAGE / $REDIS_IMAGE"
PG_NAME="qwen38fn-ci-pg-${GITHUB_RUN_ID}"
REDIS_NAME="qwen38fn-ci-redis-${GITHUB_RUN_ID}"
docker rm -f "$PG_NAME" "$REDIS_NAME" >/dev/null 2>&1 || true
docker run -d --name "$PG_NAME" \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=qwen3_8_flash_next_ci \
-p 127.0.0.1::5432 "$PG_IMAGE" >/dev/null
docker run -d --name "$REDIS_NAME" -p 127.0.0.1::6379 "$REDIS_IMAGE" >/dev/null
PG_PORT="$(docker port "$PG_NAME" 5432/tcp | head -n1 | awk -F: '{print $NF}')"
REDIS_PORT="$(docker port "$REDIS_NAME" 6379/tcp | head -n1 | awk -F: '{print $NF}')"
for _ in $(seq 1 60); do
docker exec "$PG_NAME" pg_isready -U postgres >/dev/null 2>&1 && break
sleep 1
done
docker exec "$PG_NAME" pg_isready -U postgres -d qwen3_8_flash_next_ci
[ "$(docker exec "$REDIS_NAME" redis-cli ping)" = "PONG" ]
{
echo "PG_NAME=$PG_NAME"
echo "REDIS_NAME=$REDIS_NAME"
echo "DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:${PG_PORT}/qwen3_8_flash_next_ci?schema=public"
echo "REDIS_URL=redis://127.0.0.1:${REDIS_PORT}"
} >> "$GITHUB_ENV"
echo "PostgreSQL 127.0.0.1:${PG_PORT} / Redis 127.0.0.1:${REDIS_PORT} 就绪"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
- if: always()
name: Tear down PostgreSQL and Redis
run: docker rm -f "${PG_NAME:-}" "${REDIS_NAME:-}" >/dev/null 2>&1 || true
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
27253
|
2
|
1788056270
|
1788056397
|
1788056209
|
1788056398
|
|
1
|
|
0
|
Edit
Delete
|
|
31210
|
23551
|
91
|
5
|
2235838932d2a3dd2f545bf0f33073983a45ae60
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
# check:os-product 的上游:同实例私有仓,按 SHA 钉版(与本地验收口径一致)。
# 升级流程:先在本地以新 SHA 跑绿 check:os-product(:runtime),再改这里的 OS_SHA。
OS_REPO: luoanwu/digital-employee-os
OS_SHA: fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7
# Digital Employee OS 的 engines 要求 node >=22(本仓自身 >=20,取并集)
NODE_VERSION: v22.16.0
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Checkout Digital Employee OS (check:os-product upstream)
run: |
set -euo pipefail
HOST_PATH="${GITHUB_SERVER_URL#*://}"
OS_DIR="$RUNNER_TEMP/digital-employee-os"
rm -rf "$OS_DIR" && mkdir -p "$OS_DIR" && cd "$OS_DIR"
git init -q .
git remote add origin "https://oauth2:${OS_TOKEN}@${HOST_PATH}/${OS_REPO}.git"
git fetch -q --depth 1 origin "$OS_SHA"
git checkout -q --detach FETCH_HEAD
echo "DIGITAL_EMPLOYEE_OS_ROOT=$OS_DIR" >> "$GITHUB_ENV"
echo "DIGITAL_EMPLOYEE_OS_SHA=$OS_SHA" >> "$GITHUB_ENV"
env:
OS_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Build Digital Employee OS contracts
run: |
set -euo pipefail
cd "$DIGITAL_EMPLOYEE_OS_ROOT"
pnpm install --frozen-lockfile
pnpm --filter @repo/contracts build
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27254
|
1
|
1788057142
|
1788057201
|
1788057141
|
1788057202
|
|
0
|
|
0
|
Edit
Delete
|
|
31211
|
23551
|
91
|
5
|
2235838932d2a3dd2f545bf0f33073983a45ae60
|
0
|
Runtime and UI acceptance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
NODE_VERSION: v22.16.0
# 大陆网络直连 Playwright CDN 会长时间零进度假死(本机实测 8 分钟 0 字节,
# npmmirror 30 秒完成);runner 与本机同网段,直接走镜像。
PLAYWRIGHT_DOWNLOAD_HOST: https://cdn.npmmirror.com/binaries/playwright
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Provision PostgreSQL and Redis
run: |
set -euo pipefail
command -v docker >/dev/null 2>&1 || { echo "::error::runner 宿主缺 docker——runtime 验收需要它启动隔离 PostgreSQL/Redis(或改用支持 services 的容器模式 runner)"; exit 1; }
# runner 宿主直连 Docker Hub 被拒(run #7:pull access denied)——大陆网络
# 常态。解析顺序:本地已有镜像(任一命名)→ daocloud/1ms 镜像站 → hub 兜底;
# 首次拉取成功后镜像常驻宿主,后续 run 不再依赖外网。
resolve_image() {
local image="$1" ref
for ref in "docker.io/library/${image}" "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "${image}"; do
if docker image inspect "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
for ref in "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "docker.io/library/${image}"; do
if docker pull --quiet "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
echo "::error::拉取 ${image} 失败:daocloud/1ms 镜像站与 Docker Hub 均不可达;可在 runner 宿主预拉镜像或给 dockerd 配 registry-mirrors" >&2
return 1
}
PG_IMAGE="$(resolve_image postgres:16)"
REDIS_IMAGE="$(resolve_image redis:7)"
echo "镜像解析:$PG_IMAGE / $REDIS_IMAGE"
PG_NAME="qwen38fn-ci-pg-${GITHUB_RUN_ID}"
REDIS_NAME="qwen38fn-ci-redis-${GITHUB_RUN_ID}"
docker rm -f "$PG_NAME" "$REDIS_NAME" >/dev/null 2>&1 || true
docker run -d --name "$PG_NAME" \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=qwen3_8_flash_next_ci \
-p 127.0.0.1::5432 "$PG_IMAGE" >/dev/null
docker run -d --name "$REDIS_NAME" -p 127.0.0.1::6379 "$REDIS_IMAGE" >/dev/null
PG_PORT="$(docker port "$PG_NAME" 5432/tcp | head -n1 | awk -F: '{print $NF}')"
REDIS_PORT="$(docker port "$REDIS_NAME" 6379/tcp | head -n1 | awk -F: '{print $NF}')"
for _ in $(seq 1 60); do
docker exec "$PG_NAME" pg_isready -U postgres >/dev/null 2>&1 && break
sleep 1
done
docker exec "$PG_NAME" pg_isready -U postgres -d qwen3_8_flash_next_ci
[ "$(docker exec "$REDIS_NAME" redis-cli ping)" = "PONG" ]
{
echo "PG_NAME=$PG_NAME"
echo "REDIS_NAME=$REDIS_NAME"
echo "DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:${PG_PORT}/qwen3_8_flash_next_ci?schema=public"
echo "REDIS_URL=redis://127.0.0.1:${REDIS_PORT}"
} >> "$GITHUB_ENV"
echo "PostgreSQL 127.0.0.1:${PG_PORT} / Redis 127.0.0.1:${REDIS_PORT} 就绪"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
- if: always()
name: Tear down PostgreSQL and Redis
run: docker rm -f "${PG_NAME:-}" "${REDIS_NAME:-}" >/dev/null 2>&1 || true
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
27255
|
1
|
1788057204
|
1788057371
|
1788057141
|
1788057371
|
|
1
|
|
0
|
Edit
Delete
|
|
31212
|
23552
|
91
|
5
|
48c7ef665e210ef004970fc6f1fdc443a03b48a1
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
# check:os-product 的上游:同实例私有仓,按 SHA 钉版(与本地验收口径一致)。
# 升级流程:先在本地以新 SHA 跑绿 check:os-product(:runtime),再改这里的 OS_SHA。
OS_REPO: luoanwu/digital-employee-os
OS_SHA: fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7
# Digital Employee OS 的 engines 要求 node >=22(本仓自身 >=20,取并集)
NODE_VERSION: v22.16.0
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Checkout Digital Employee OS (check:os-product upstream)
run: |
set -euo pipefail
HOST_PATH="${GITHUB_SERVER_URL#*://}"
OS_DIR="$RUNNER_TEMP/digital-employee-os"
rm -rf "$OS_DIR" && mkdir -p "$OS_DIR" && cd "$OS_DIR"
git init -q .
git remote add origin "https://oauth2:${OS_TOKEN}@${HOST_PATH}/${OS_REPO}.git"
git fetch -q --depth 1 origin "$OS_SHA"
git checkout -q --detach FETCH_HEAD
echo "DIGITAL_EMPLOYEE_OS_ROOT=$OS_DIR" >> "$GITHUB_ENV"
echo "DIGITAL_EMPLOYEE_OS_SHA=$OS_SHA" >> "$GITHUB_ENV"
env:
OS_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Build Digital Employee OS contracts
run: |
set -euo pipefail
cd "$DIGITAL_EMPLOYEE_OS_ROOT"
pnpm install --frozen-lockfile
pnpm --filter @repo/contracts build
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27256
|
1
|
1788058397
|
1788058457
|
1788058396
|
1788058457
|
|
0
|
|
0
|
Edit
Delete
|
|
31213
|
23552
|
91
|
5
|
48c7ef665e210ef004970fc6f1fdc443a03b48a1
|
0
|
Runtime and UI acceptance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
NODE_VERSION: v22.16.0
# 大陆网络直连 Playwright CDN 会长时间零进度假死(本机实测 8 分钟 0 字节,
# npmmirror 30 秒完成);runner 与本机同网段,直接走镜像。
PLAYWRIGHT_DOWNLOAD_HOST: https://cdn.npmmirror.com/binaries/playwright
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Provision PostgreSQL and Redis
run: |
set -euo pipefail
command -v docker >/dev/null 2>&1 || { echo "::error::runner 宿主缺 docker——runtime 验收需要它启动隔离 PostgreSQL/Redis(或改用支持 services 的容器模式 runner)"; exit 1; }
# runner 宿主直连 Docker Hub 被拒(run #7:pull access denied)——大陆网络
# 常态。解析顺序:本地已有镜像(任一命名)→ daocloud/1ms 镜像站 → hub 兜底;
# 首次拉取成功后镜像常驻宿主,后续 run 不再依赖外网。
resolve_image() {
local image="$1" ref
for ref in "docker.io/library/${image}" "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "${image}"; do
if docker image inspect "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
for ref in "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "docker.io/library/${image}"; do
if docker pull --quiet "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
echo "::error::拉取 ${image} 失败:daocloud/1ms 镜像站与 Docker Hub 均不可达;可在 runner 宿主预拉镜像或给 dockerd 配 registry-mirrors" >&2
return 1
}
PG_IMAGE="$(resolve_image postgres:16)"
REDIS_IMAGE="$(resolve_image redis:7)"
echo "镜像解析:$PG_IMAGE / $REDIS_IMAGE"
PG_NAME="qwen38fn-ci-pg-${GITHUB_RUN_ID}"
REDIS_NAME="qwen38fn-ci-redis-${GITHUB_RUN_ID}"
docker rm -f "$PG_NAME" "$REDIS_NAME" >/dev/null 2>&1 || true
docker run -d --name "$PG_NAME" \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=qwen3_8_flash_next_ci \
-p 127.0.0.1::5432 "$PG_IMAGE" >/dev/null
docker run -d --name "$REDIS_NAME" -p 127.0.0.1::6379 "$REDIS_IMAGE" >/dev/null
PG_PORT="$(docker port "$PG_NAME" 5432/tcp | head -n1 | awk -F: '{print $NF}')"
REDIS_PORT="$(docker port "$REDIS_NAME" 6379/tcp | head -n1 | awk -F: '{print $NF}')"
for _ in $(seq 1 60); do
docker exec "$PG_NAME" pg_isready -U postgres >/dev/null 2>&1 && break
sleep 1
done
docker exec "$PG_NAME" pg_isready -U postgres -d qwen3_8_flash_next_ci
[ "$(docker exec "$REDIS_NAME" redis-cli ping)" = "PONG" ]
{
echo "PG_NAME=$PG_NAME"
echo "REDIS_NAME=$REDIS_NAME"
echo "DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:${PG_PORT}/qwen3_8_flash_next_ci?schema=public"
echo "REDIS_URL=redis://127.0.0.1:${REDIS_PORT}"
} >> "$GITHUB_ENV"
echo "PostgreSQL 127.0.0.1:${PG_PORT} / Redis 127.0.0.1:${REDIS_PORT} 就绪"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
- if: always()
name: Tear down PostgreSQL and Redis
run: docker rm -f "${PG_NAME:-}" "${REDIS_NAME:-}" >/dev/null 2>&1 || true
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
27257
|
1
|
1788058459
|
1788058564
|
1788058396
|
1788058565
|
|
1
|
|
0
|
Edit
Delete
|
|
31248
|
23557
|
91
|
5
|
c1d59277c1c321407babdaf3ad6fe26c73e7cb55
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
# check:os-product 的上游:同实例私有仓,按 SHA 钉版(与本地验收口径一致)。
# 升级流程:先在本地以新 SHA 跑绿 check:os-product(:runtime),再改这里的 OS_SHA。
OS_REPO: luoanwu/digital-employee-os
OS_SHA: fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7
# Digital Employee OS 的 engines 要求 node >=22(本仓自身 >=20,取并集)
NODE_VERSION: v22.16.0
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Checkout Digital Employee OS (check:os-product upstream)
run: |
set -euo pipefail
HOST_PATH="${GITHUB_SERVER_URL#*://}"
OS_DIR="$RUNNER_TEMP/digital-employee-os"
rm -rf "$OS_DIR" && mkdir -p "$OS_DIR" && cd "$OS_DIR"
git init -q .
git remote add origin "https://oauth2:${OS_TOKEN}@${HOST_PATH}/${OS_REPO}.git"
git fetch -q --depth 1 origin "$OS_SHA"
git checkout -q --detach FETCH_HEAD
echo "DIGITAL_EMPLOYEE_OS_ROOT=$OS_DIR" >> "$GITHUB_ENV"
echo "DIGITAL_EMPLOYEE_OS_SHA=$OS_SHA" >> "$GITHUB_ENV"
env:
OS_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Build Digital Employee OS contracts
run: |
set -euo pipefail
cd "$DIGITAL_EMPLOYEE_OS_ROOT"
pnpm install --frozen-lockfile
pnpm --filter @repo/contracts build
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27262
|
1
|
1788059969
|
1788060027
|
1788059801
|
1788060027
|
|
0
|
|
0
|
Edit
Delete
|
|
31249
|
23557
|
91
|
5
|
c1d59277c1c321407babdaf3ad6fe26c73e7cb55
|
0
|
Runtime and UI acceptance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
NODE_VERSION: v22.16.0
# 大陆网络直连 Playwright CDN 会长时间零进度假死(本机实测 8 分钟 0 字节,
# npmmirror 30 秒完成);runner 与本机同网段,直接走镜像。
PLAYWRIGHT_DOWNLOAD_HOST: https://cdn.npmmirror.com/binaries/playwright
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Provision PostgreSQL and Redis
run: |
set -euo pipefail
command -v docker >/dev/null 2>&1 || { echo "::error::runner 宿主缺 docker——runtime 验收需要它启动隔离 PostgreSQL/Redis(或改用支持 services 的容器模式 runner)"; exit 1; }
# runner 宿主直连 Docker Hub 被拒(run #7:pull access denied)——大陆网络
# 常态。解析顺序:本地已有镜像(任一命名)→ daocloud/1ms 镜像站 → hub 兜底;
# 首次拉取成功后镜像常驻宿主,后续 run 不再依赖外网。
resolve_image() {
local image="$1" ref
for ref in "docker.io/library/${image}" "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "${image}"; do
if docker image inspect "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
for ref in "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "docker.io/library/${image}"; do
if docker pull --quiet "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
echo "::error::拉取 ${image} 失败:daocloud/1ms 镜像站与 Docker Hub 均不可达;可在 runner 宿主预拉镜像或给 dockerd 配 registry-mirrors" >&2
return 1
}
PG_IMAGE="$(resolve_image postgres:16)"
REDIS_IMAGE="$(resolve_image redis:7)"
echo "镜像解析:$PG_IMAGE / $REDIS_IMAGE"
PG_NAME="qwen38fn-ci-pg-${GITHUB_RUN_ID}"
REDIS_NAME="qwen38fn-ci-redis-${GITHUB_RUN_ID}"
docker rm -f "$PG_NAME" "$REDIS_NAME" >/dev/null 2>&1 || true
docker run -d --name "$PG_NAME" \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=qwen3_8_flash_next_ci \
-p 127.0.0.1::5432 "$PG_IMAGE" >/dev/null
docker run -d --name "$REDIS_NAME" -p 127.0.0.1::6379 "$REDIS_IMAGE" >/dev/null
PG_PORT="$(docker port "$PG_NAME" 5432/tcp | head -n1 | awk -F: '{print $NF}')"
REDIS_PORT="$(docker port "$REDIS_NAME" 6379/tcp | head -n1 | awk -F: '{print $NF}')"
for _ in $(seq 1 60); do
docker exec "$PG_NAME" pg_isready -U postgres >/dev/null 2>&1 && break
sleep 1
done
docker exec "$PG_NAME" pg_isready -U postgres -d qwen3_8_flash_next_ci
[ "$(docker exec "$REDIS_NAME" redis-cli ping)" = "PONG" ]
{
echo "PG_NAME=$PG_NAME"
echo "REDIS_NAME=$REDIS_NAME"
echo "DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:${PG_PORT}/qwen3_8_flash_next_ci?schema=public"
echo "REDIS_URL=redis://127.0.0.1:${REDIS_PORT}"
} >> "$GITHUB_ENV"
echo "PostgreSQL 127.0.0.1:${PG_PORT} / Redis 127.0.0.1:${REDIS_PORT} 就绪"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
- if: always()
name: Tear down PostgreSQL and Redis
run: docker rm -f "${PG_NAME:-}" "${REDIS_NAME:-}" >/dev/null 2>&1 || true
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
27277
|
1
|
1788060712
|
1788060811
|
1788059801
|
1788060812
|
|
1
|
|
0
|
Edit
Delete
|
|
31365
|
23570
|
91
|
5
|
a525a82e040047e8158104b3fd1b2800a1943132
|
0
|
Static governance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
static-governance:
name: Static governance
runs-on: ubuntu-latest
env:
# check:os-product 的上游:同实例私有仓,按 SHA 钉版(与本地验收口径一致)。
# 升级流程:先在本地以新 SHA 跑绿 check:os-product(:runtime),再改这里的 OS_SHA。
OS_REPO: luoanwu/digital-employee-os
OS_SHA: fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7
# Digital Employee OS 的 engines 要求 node >=22(本仓自身 >=20,取并集)
NODE_VERSION: v22.16.0
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Checkout Digital Employee OS (check:os-product upstream)
run: |
set -euo pipefail
HOST_PATH="${GITHUB_SERVER_URL#*://}"
OS_DIR="$RUNNER_TEMP/digital-employee-os"
rm -rf "$OS_DIR" && mkdir -p "$OS_DIR" && cd "$OS_DIR"
git init -q .
git remote add origin "https://oauth2:${OS_TOKEN}@${HOST_PATH}/${OS_REPO}.git"
git fetch -q --depth 1 origin "$OS_SHA"
git checkout -q --detach FETCH_HEAD
echo "DIGITAL_EMPLOYEE_OS_ROOT=$OS_DIR" >> "$GITHUB_ENV"
echo "DIGITAL_EMPLOYEE_OS_SHA=$OS_SHA" >> "$GITHUB_ENV"
env:
OS_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Build Digital Employee OS contracts
run: |
set -euo pipefail
cd "$DIGITAL_EMPLOYEE_OS_ROOT"
pnpm install --frozen-lockfile
pnpm --filter @repo/contracts build
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run static governance gate
run: pnpm check
...
|
static-governance
|
null
|
["ubuntu-latest"]
|
27345
|
1
|
1788132202
|
1788132260
|
1788132201
|
1788132261
|
|
0
|
|
0
|
Edit
Delete
|
|
31366
|
23570
|
91
|
5
|
a525a82e040047e8158104b3fd1b2800a1943132
|
0
|
Runtime and UI acceptance
|
1
|
name: Governance
"on":
pull_request:
name: Governance
"on":
pull_request:
push:
branches:
- main
jobs:
runtime-acceptance:
name: Runtime and UI acceptance
runs-on: ubuntu-latest
env:
NODE_VERSION: v22.16.0
# 大陆网络直连 Playwright CDN 会长时间零进度假死(本机实测 8 分钟 0 字节,
# npmmirror 30 秒完成);runner 与本机同网段,直接走镜像。
PLAYWRIGHT_DOWNLOAD_HOST: https://cdn.npmmirror.com/binaries/playwright
steps:
- name: Checkout (shell, full history)
run: |
set -euo pipefail
cd "$GITHUB_WORKSPACE"
HOST_PATH="${GITHUB_SERVER_URL#*://}"
git init -q .
git remote remove origin 2>/dev/null || true
git remote add origin "https://oauth2:${CLONE_TOKEN}@${HOST_PATH}/${GITHUB_REPOSITORY}.git"
git fetch -q origin "$GITHUB_SHA"
git checkout -q -f --detach "$GITHUB_SHA"
git clean -fdxq -e node_modules -e .turbo
git log --oneline -1
env:
CLONE_TOKEN: ${{ secrets.OS_CHECKOUT_TOKEN || github.token }}
- name: Provision Node.js (npmmirror)
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) NODE_ARCH=x64 ;;
aarch64|arm64) NODE_ARCH=arm64 ;;
*) echo "::error::未支持的 runner 架构 $(uname -m)"; exit 1 ;;
esac
NODE_DIR="$RUNNER_TEMP/node-${NODE_VERSION}-${NODE_ARCH}"
if [ ! -x "$NODE_DIR/bin/node" ]; then
mkdir -p "$NODE_DIR"
curl -fsSL "https://cdn.npmmirror.com/binaries/node/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
| tar -xJ -C "$NODE_DIR" --strip-components 1
fi
echo "$NODE_DIR/bin" >> "$GITHUB_PATH"
"$NODE_DIR/bin/node" --version
- name: Enable pnpm
run: |
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm --version
- name: Provision PostgreSQL and Redis
run: |
set -euo pipefail
command -v docker >/dev/null 2>&1 || { echo "::error::runner 宿主缺 docker——runtime 验收需要它启动隔离 PostgreSQL/Redis(或改用支持 services 的容器模式 runner)"; exit 1; }
# runner 宿主直连 Docker Hub 被拒(run #7:pull access denied)——大陆网络
# 常态。解析顺序:本地已有镜像(任一命名)→ daocloud/1ms 镜像站 → hub 兜底;
# 首次拉取成功后镜像常驻宿主,后续 run 不再依赖外网。
resolve_image() {
local image="$1" ref
for ref in "docker.io/library/${image}" "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "${image}"; do
if docker image inspect "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
for ref in "docker.m.daocloud.io/library/${image}" "docker.1ms.run/library/${image}" "docker.io/library/${image}"; do
if docker pull --quiet "$ref" >/dev/null 2>&1; then echo "$ref"; return 0; fi
done
echo "::error::拉取 ${image} 失败:daocloud/1ms 镜像站与 Docker Hub 均不可达;可在 runner 宿主预拉镜像或给 dockerd 配 registry-mirrors" >&2
return 1
}
PG_IMAGE="$(resolve_image postgres:16)"
REDIS_IMAGE="$(resolve_image redis:7)"
echo "镜像解析:$PG_IMAGE / $REDIS_IMAGE"
PG_NAME="qwen38fn-ci-pg-${GITHUB_RUN_ID}"
REDIS_NAME="qwen38fn-ci-redis-${GITHUB_RUN_ID}"
docker rm -f "$PG_NAME" "$REDIS_NAME" >/dev/null 2>&1 || true
docker run -d --name "$PG_NAME" \
-e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=qwen3_8_flash_next_ci \
-p 127.0.0.1::5432 "$PG_IMAGE" >/dev/null
docker run -d --name "$REDIS_NAME" -p 127.0.0.1::6379 "$REDIS_IMAGE" >/dev/null
PG_PORT="$(docker port "$PG_NAME" 5432/tcp | head -n1 | awk -F: '{print $NF}')"
REDIS_PORT="$(docker port "$REDIS_NAME" 6379/tcp | head -n1 | awk -F: '{print $NF}')"
for _ in $(seq 1 60); do
docker exec "$PG_NAME" pg_isready -U postgres >/dev/null 2>&1 && break
sleep 1
done
docker exec "$PG_NAME" pg_isready -U postgres -d qwen3_8_flash_next_ci
[ "$(docker exec "$REDIS_NAME" redis-cli ping)" = "PONG" ]
{
echo "PG_NAME=$PG_NAME"
echo "REDIS_NAME=$REDIS_NAME"
echo "DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:${PG_PORT}/qwen3_8_flash_next_ci?schema=public"
echo "REDIS_URL=redis://127.0.0.1:${REDIS_PORT}"
} >> "$GITHUB_ENV"
echo "PostgreSQL 127.0.0.1:${PG_PORT} / Redis 127.0.0.1:${REDIS_PORT} 就绪"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma clients
run: pnpm prisma:generate
- name: Run real DB and Redis acceptance
run: pnpm check:runtime
- name: Install Playwright browser
run: pnpm --filter web exec playwright install --with-deps chromium
- name: Run UI acceptance
run: pnpm check:ui
- if: always()
name: Tear down PostgreSQL and Redis
run: docker rm -f "${PG_NAME:-}" "${REDIS_NAME:-}" >/dev/null 2>&1 || true
...
|
runtime-acceptance
|
["static-governance"]
|
["ubuntu-latest"]
|
27346
|
1
|
1788132263
|
1788132365
|
1788132201
|
1788132365
|
|
1
|
|
0
|
Edit
Delete
|