feat: 🎸 add locking for FSA writable handles #1080
Workflow file for this run
This file contains hidden or 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 | |
| permissions: | |
| contents: read # for checkout | |
| 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: [22.x, 24.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 | |
| permissions: | |
| contents: write # to be able to publish a GitHub release | |
| issues: write # to be able to comment on released issues | |
| pull-requests: write # to be able to comment on released pull requests | |
| id-token: write # to enable use of OIDC for trusted publishing and npm provenance | |
| 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 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: npx semantic-release |