fix(fiber): reapply stable math props on updates (#3909) #63
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: Canary Release | |
| on: | |
| push: | |
| branches: [v10] | |
| workflow_dispatch: | |
| permissions: | |
| id-token: write # Required for npm OIDC | |
| contents: read | |
| jobs: | |
| canary: | |
| name: Publish canary | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v5 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| run_install: false | |
| - name: Use Node 24 | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: 24 | |
| cache: 'pnpm' | |
| - name: Install deps | |
| run: pnpm install | |
| - name: Build | |
| run: pnpm build | |
| # Verify before publishing, not after. This job fires on every push to v10 and pushes straight | |
| # to npm, where a version can never be withdrawn -- so it is the last place a bad artifact can | |
| # be stopped. These are the checks that catch the self-import leak, a stub shipped as a build, | |
| # and absolute local paths in declarations; none of them ran here before. | |
| - name: Verify bundles | |
| run: pnpm verify-bundles | |
| - name: Verify types | |
| run: pnpm verify-types | |
| # Every published package gets a canary, not just fiber -- test-renderer has had a real build | |
| # since it gained one, and a canary of fiber alone cannot be integration-tested against it. | |
| # | |
| # The version is derived per package rather than shared. fiber and test-renderer are both on | |
| # the 10.x line, but eslint-plugin is on 1.x: stamping 10.0.0-canary onto it would jump it two | |
| # majors ahead of its own line, and npm versions cannot be withdrawn. Reading the major from | |
| # each package.json keeps that impossible to get wrong by hand. | |
| - name: Set canary versions | |
| run: | | |
| SHA="$(git rev-parse --short HEAD)" | |
| for pkg in fiber test-renderer eslint-plugin; do | |
| MAJOR="$(node -p "require('./packages/$pkg/package.json').version.split('.')[0]")" | |
| VERSION="$MAJOR.0.0-canary.$SHA" | |
| echo "Publishing @react-three/$pkg as $VERSION" | |
| (cd "packages/$pkg" && npm version "$VERSION" --no-git-tag-version) | |
| done | |
| - name: Publish to npm | |
| run: | | |
| pnpm --filter @react-three/fiber publish --tag canary --no-git-checks --provenance | |
| pnpm --filter @react-three/test-renderer publish --tag canary --no-git-checks --provenance | |
| pnpm --filter @react-three/eslint-plugin publish --tag canary --no-git-checks --provenance | |
| env: | |
| NODE_AUTH_TOKEN: '' |