Files
workdsh/.github/workflows/ci.yml
T

107 lines
3.3 KiB
YAML

name: CI
on:
pull_request:
push:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
DSH_TELEMETRY_DISABLED: '1'
jobs:
# Full product gate: build, typecheck, unit tests, and every headless smoke.
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
submodules: recursive
- uses: actions/setup-node@v6
with:
node-version: 22.23.2
- run: corepack enable
- name: Resolve Yarn cache folder
id: yarn-cache
run: echo "dir=$(yarn config get cacheFolder)" >> "$GITHUB_OUTPUT"
- uses: actions/cache@v6
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: yarn-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('yarn.lock', '.yarnrc.yml') }}
- run: yarn install --immutable
- run: yarn check
# Windows-only logic and an unsigned NSIS build on a real Windows runner:
# updates, window options, pwsh sandbox, volume diagnostics, and packaging.
desktop-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
submodules: recursive
- uses: actions/setup-node@v6
with:
node-version: 22.23.2
- run: corepack enable
- name: Resolve Yarn cache folder
id: yarn-cache
run: echo "dir=$(yarn config get cacheFolder)" >> "$env:GITHUB_OUTPUT"
- uses: actions/cache@v6
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: yarn-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('yarn.lock', '.yarnrc.yml') }}
- run: yarn install --immutable
- run: yarn check
- run: yarn dist:win
# macOS-only universal packaging smoke on a real macOS runner: the signed
# release is built manually on a credentialed machine, so an unsigned DMG
# here catches Intel and Apple Silicon packaging regressions before a manual
# release. No signing secrets ever reach this job.
desktop-macos:
runs-on: macos-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
submodules: recursive
- uses: actions/setup-node@v6
with:
node-version: 22.23.2
- run: corepack enable
- name: Resolve Yarn cache folder
id: yarn-cache
run: echo "dir=$(yarn config get cacheFolder)" >> "$GITHUB_OUTPUT"
- uses: actions/cache@v6
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: yarn-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('yarn.lock', '.yarnrc.yml') }}
- run: yarn install --immutable
- run: yarn workspace dsh-community-market check
- run: yarn dist:mac-smoke
# Upstream toolchain smoke: the portable-shell scripts must resolve the
# pinned submodule's own Yarn/pnpm release on Windows.
upstream-command-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
submodules: recursive
- uses: actions/setup-node@v6
with:
node-version: 22.23.2
- run: corepack enable
- run: yarn check:layout
- run: yarn upstream:version