TypeSpec Validation - All #106
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: TypeSpec Validation - All | |
on: | |
push: | |
branches: | |
- main | |
- RPSaaSMaster | |
- typespec-next | |
pull_request: | |
branches: | |
- main | |
- RPSaaSMaster | |
- typespec-next | |
paths: | |
- .gitattributes | |
- .prettierrc.json | |
- package-lock.json | |
- package.json | |
- tsconfig.json | |
- eng/** | |
- specification/suppressions.yaml | |
- specification/common-types/** | |
# Workflow and workflow dependencies | |
- .github/workflows/typespec-validation-all.yaml | |
- .github/actions/setup-node-npm-ci/** | |
schedule: | |
# Run 4x/day | |
- cron: '0 0,6,12,18 * * *' | |
workflow_dispatch: | |
jobs: | |
typespec-validation-all: | |
# Use short name to maximize space for parameters in UI | |
name: TSV | |
strategy: | |
# Validate all specs, even if one job fails early | |
fail-fast: false | |
# Sort matrix elements from "most important" to "least important" for the best grouping and UI | |
# Keep matrix values short, to maximize number of parameters shown in UI | |
matrix: | |
# When triggered by schedule, validate both the default branch and typespec-next | |
# Use the placeholder string "default" instead of passing "" directly, since the latter gets ignored by | |
# the GitHub Jobs UI. | |
ref: ${{ fromJSON(github.event_name == 'schedule' && '["default", "next"]' || '["default"]') }} | |
os: [ubuntu, windows] | |
# shards must start at 0 and increment by 1 | |
shard: [0, 1, 2] | |
# total-shards must be an accurate count of the number of shards | |
total-shards: [3] | |
runs-on: ${{ matrix.os }}-latest | |
steps: | |
- name: Enable git long paths | |
if: runner.os == 'Windows' | |
run: git config --global core.longpaths true | |
- uses: actions/checkout@v4 | |
with: | |
# Convert placeholder string 'default' to '', which tells the action to checkout the default ref. | |
ref: ${{ matrix.ref == 'next' && 'typespec-next' || '' }} | |
- name: Setup Node 20 and run `npm ci` | |
uses: ./.github/actions/setup-node-npm-ci | |
- name: Validate All Specs | |
run: | | |
# Keep processing when errors are written. Nonzero exit will mark the | |
# step as failed. | |
$ErrorActionPreference = 'Continue' | |
./eng/scripts/TypeSpec-Validation.ps1 ` | |
-Shard ${{ matrix.shard }} ` | |
-TotalShards ${{ matrix.total-shards }} ` | |
-CheckAll ` | |
-GitClean ` | |
-Verbose | |
shell: pwsh |