Suggested changes for CI and release automation #32
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: CI | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: npm | |
- name: Install dependencies | |
run: npm ci | |
- name: Run Linter | |
run: npm run _lint:check | |
- name: Run Formatter | |
run: npm run _format:check | |
test: | |
name: Test - ${{ matrix.node-version }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [latest, lts/*, lts/-1] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js (${{ matrix.node-version }}) | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: npm | |
- name: Install dependencies | |
run: npm ci | |
- name: Run tests | |
run: npm test | |
api: | |
name: API & Doc Validation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: npm | |
- name: Install dependencies | |
run: npm ci | |
- name: Build | |
run: npm run build | |
- name: Check API | |
run: npm run _api:check | |
- name: Generate docs | |
# there is a bug in api-documenter that causes it not to respect 'lf' endings | |
# so we need to run prettier via `_docs:fix` as a workaround | |
run: npm run _docs:generate && npm run _docs:fix | |
- name: Validated generated API and doc changes have been committed | |
run: ./validate-generated-files.sh |