From 65fa4cd8114cb2e193db4c3e1a1a1afc1f767835 Mon Sep 17 00:00:00 2001 From: Lauren Tan Date: Fri, 21 Jun 2024 14:27:42 -0400 Subject: [PATCH] [ci] Add new yarn test GitHub action Copies the existing circleci workflow for yarn test into GitHub actions. I didn't remove the circleci job for now just to check for parity. Opted to keep the same hardcoded list of params rather than use GitHub's matrix permutations since this was intentional in the circleci config. ghstack-source-id: 4052e9bcd42eeb0eb1950ed7f762c2b153be1d20 Pull Request resolved: https://github.com/facebook/react/pull/30032 --- .github/workflows/runtime_test.yml | 55 ++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/runtime_test.yml diff --git a/.github/workflows/runtime_test.yml b/.github/workflows/runtime_test.yml new file mode 100644 index 0000000000000..1acce045217ee --- /dev/null +++ b/.github/workflows/runtime_test.yml @@ -0,0 +1,55 @@ +name: React Runtime (Test) + +on: + push: + branches: [main] + pull_request: + paths-ignore: + - 'compiler/**' + +jobs: + test: + name: yarn test + runs-on: ubuntu-latest + continue-on-error: true + strategy: + matrix: + # Intentionally passing these as strings instead of creating a + # separate parameter per CLI argument, since it's easier to + # control/see which combinations we want to run. + params: [ + "-r=stable --env=development", + "-r=stable --env=production", + "-r=experimental --env=development", + "-r=experimental --env=production", + "-r=www-classic --env=development --variant=false", + "-r=www-classic --env=production --variant=false", + "-r=www-classic --env=development --variant=true", + "-r=www-classic --env=production --variant=true", + "-r=www-modern --env=development --variant=false", + "-r=www-modern --env=production --variant=false", + "-r=www-modern --env=development --variant=true", + "-r=www-modern --env=production --variant=true", + "-r=xplat --env=development --variant=false", + "-r=xplat --env=development --variant=true", + "-r=xplat --env=production --variant=false", + "-r=xplat --env=production --variant=true", + # TODO: Test more persistent configurations? + "-r=stable --env=development --persistent", + "-r=experimental --env=development --persistent" + ] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: yarn.lock + - name: Restore cached node_modules + uses: actions/cache@v4 + id: node_modules + with: + path: "**/node_modules" + key: ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }} + - run: yarn install --frozen-lockfile + - run: yarn test ${{ matrix.params }} --ci