Skip to content

TypeSpec Validation - All #5

TypeSpec Validation - All

TypeSpec Validation - All #5

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