Skip to content

fix(fiber): reapply stable math props on updates (#3909) #63

fix(fiber): reapply stable math props on updates (#3909)

fix(fiber): reapply stable math props on updates (#3909) #63

Workflow file for this run

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: ''