diff --git a/.github/workflows/scheduled-test-canary.yml b/.github/workflows/scheduled-test-canary.yml index 639878253b..42d5442d94 100644 --- a/.github/workflows/scheduled-test-canary.yml +++ b/.github/workflows/scheduled-test-canary.yml @@ -1,25 +1,38 @@ # a GitHub Action that once a day runs all tests from `main` and `release-*` branches # with the latest `canary` and `experimental` release of `react` and `react-dom` - +name: Scheduled React Canary Test on: schedule: - cron: "0 0 * * *" workflow_dispatch: + inputs: + branches: + description: "Branches to test" + required: true + default: '["main", "release-3.13", "release-4.0"]' + tags: + description: "React and React-DOM versions" + required: true + default: '["canary", "experimental"]' jobs: test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: - tag: - - canary - - experimental + tag: ${{ fromJson(github.event_name == 'workflow_dispatch' && inputs.tags || '["canary", "experimental"]') }} + branch: ${{ fromJson(github.event_name == 'workflow_dispatch' && inputs.branches || '["main", "release-3.13", "release-4.0"]') }} steps: - uses: actions/checkout@v4 + with: + ref: ${{ matrix.branch }} - uses: actions/setup-node@v4 with: node-version: 22.x - uses: bahmutov/npm-install@v1 - - run: npm install react@${{ matrix.tag }} react-dom@${{ matrix.tag }} + - run: | + npm install react@${{ matrix.tag }} react-dom@${{ matrix.tag }} # tests can be flaky, this runs only once a day and we want to minimize false negatives - retry up to three times - - run: "parallel --line-buffer -j 1 --retries 3 'npm run test:ci -- --selectProjects ' ::: 'ReactDOM 19'" + - run: | + node -e 'console.log("\n\nReact %s, React-DOM %s\n\n", require("react").version, require("react-dom").version)' + parallel --line-buffer -j 1 --retries 3 'npm test -- --logHeapUsage --selectProjects ' ::: 'ReactDOM 19'