TypeSpec Validation - All #5
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: | |
name: TypeSpec Validation All | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
# 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] | |
# 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", "typespec-next"]' || '["default"]') }} | |
runs-on: ${{ matrix.os }} | |
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 != 'default' && matrix.ref || '' }} | |
- 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 |