WIP - Fix Pro Rubocop and other CI - will split up #4500
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: JS unit tests for Renderer package | |
| on: | |
| push: | |
| branches: | |
| - 'master' | |
| paths-ignore: | |
| - '**.md' | |
| - 'docs/**' | |
| - 'lib/**' | |
| - 'spec/react_on_rails/**' | |
| - 'react_on_rails_pro/**' | |
| pull_request: | |
| paths-ignore: | |
| - '**.md' | |
| - 'docs/**' | |
| - 'lib/**' | |
| - 'spec/react_on_rails/**' | |
| - 'react_on_rails_pro/**' | |
| workflow_dispatch: | |
| inputs: | |
| force_run: | |
| description: 'Force run all jobs (bypass detect-changes)' | |
| required: false | |
| type: boolean | |
| default: false | |
| jobs: | |
| detect-changes: | |
| runs-on: ubuntu-22.04 | |
| outputs: | |
| docs_only: ${{ steps.detect.outputs.docs_only }} | |
| run_lint: ${{ steps.detect.outputs.run_lint }} | |
| run_js_tests: ${{ steps.detect.outputs.run_js_tests }} | |
| run_ruby_tests: ${{ steps.detect.outputs.run_ruby_tests }} | |
| run_dummy_tests: ${{ steps.detect.outputs.run_dummy_tests }} | |
| run_generators: ${{ steps.detect.outputs.run_generators }} | |
| has_full_ci_label: ${{ steps.check-label.outputs.result }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| # Fetch enough history for change detection (50 commits is usually sufficient for PRs) | |
| fetch-depth: 50 | |
| persist-credentials: false | |
| - name: Check for full-ci label | |
| id: check-label | |
| uses: ./.github/actions/check-full-ci-label | |
| - name: Detect relevant changes | |
| id: detect | |
| run: | | |
| # If force_run is true OR full-ci label is present, run everything | |
| if [ "${{ inputs.force_run }}" = "true" ] || [ "${{ steps.check-label.outputs.result }}" = "true" ]; then | |
| echo "run_lint=true" >> "$GITHUB_OUTPUT" | |
| echo "run_js_tests=true" >> "$GITHUB_OUTPUT" | |
| echo "run_ruby_tests=true" >> "$GITHUB_OUTPUT" | |
| echo "run_dummy_tests=true" >> "$GITHUB_OUTPUT" | |
| echo "run_generators=true" >> "$GITHUB_OUTPUT" | |
| echo "docs_only=false" >> "$GITHUB_OUTPUT" | |
| exit 0 | |
| fi | |
| BASE_REF="${{ github.event.pull_request.base.sha || github.event.before || 'origin/master' }}" | |
| script/ci-changes-detector "$BASE_REF" | |
| shell: bash | |
| package-js-tests: | |
| needs: detect-changes | |
| # Run on master OR when JS tests needed on PR | |
| if: | | |
| (github.ref == 'refs/heads/master' || needs.detect-changes.outputs.run_js_tests == 'true') | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: ${{ (github.ref == 'refs/heads/master' || inputs.force_run == true || needs.detect-changes.outputs.has_full_ci_label == 'true') && '[20]' || '[22, 20]'}} | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| # TODO: Re-enable cache when Node.js 22 V8 bug is fixed | |
| # Disable cache for Node 22 due to V8 bug in 22.21.0 | |
| # Track: https://github.com/nodejs/node/issues/56010 | |
| cache: ${{ matrix.node-version != '22' && 'yarn' || '' }} | |
| cache-dependency-path: '**/yarn.lock' | |
| - name: Print system information | |
| run: | | |
| echo "Linux release: "; cat /etc/issue | |
| echo "Current user: "; whoami | |
| echo "Current directory: "; pwd | |
| echo "Node version: "; node -v | |
| echo "Yarn version: "; yarn --version | |
| - name: run conversion script | |
| if: matrix.node-version == '20' | |
| run: script/convert | |
| - name: Install Node modules with Yarn for renderer package | |
| run: | | |
| yarn install --no-progress --no-emoji ${{ matrix.node-version == '22' && '--frozen-lockfile' || '' }} | |
| sudo yarn global add yalc | |
| - name: Build Renderer package | |
| run: yarn build | |
| - name: Run JS unit tests for Renderer package | |
| run: yarn test |