feat: improve permissions support #561
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: Checks | |
on: | |
push: | |
branches: | |
- master | |
- next | |
pull_request: | |
branches: | |
- master | |
- next | |
jobs: | |
prepare-yarn-cache: | |
name: Prepare yarn cache | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: Validate cache | |
env: | |
# Use PnP and disable postinstall scripts as this just needs to | |
# populate the cache for the other jobs | |
YARN_NODE_LINKER: pnp | |
YARN_ENABLE_SCRIPTS: false | |
run: yarn --immutable | |
typecheck: | |
needs: prepare-yarn-cache | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: install | |
run: yarn | |
- name: run typecheck | |
run: yarn typecheck | |
- name: run Prettier | |
run: yarn prettier:check | |
test-node: | |
name: Test on Node.js v${{ matrix.node-version }} | |
needs: prepare-yarn-cache | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: yarn | |
- name: install | |
run: yarn install | |
- name: run tests | |
run: yarn test | |
env: | |
CI: true | |
test-os: | |
name: Test on ${{ matrix.os }} using Node.js LTS | |
needs: prepare-yarn-cache | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macOS-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: install | |
run: yarn install | |
- name: run tests | |
run: yarn test | |
env: | |
CI: true | |
release: | |
if: ${{ github.event_name == 'push' && (github.event.ref == 'refs/heads/master' || github.event.ref == 'refs/heads/next') }} | |
name: Release new version | |
needs: [typecheck, test-node, test-os] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: Install | |
run: yarn | |
- name: Test | |
run: yarn test | |
- name: Build | |
run: yarn build | |
- name: Release | |
run: npx semantic-release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |