Skip to content

chore(rsc): Refactor: Extract rscFetch and rsaFetch #33660

chore(rsc): Refactor: Extract rscFetch and rsaFetch

chore(rsc): Refactor: Extract rscFetch and rsaFetch #33660

Workflow file for this run

name: ⚙️ CI
on:
pull_request:
push:
branches: ['next', 'release/**']
# Cancel in-progress runs of this workflow.
# See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
YARN_ENABLE_HARDENED_MODE: 0
jobs:
detect-changes:
if: github.repository == 'redwoodjs/redwood'
name: 🔍 Detect changes
runs-on: ubuntu-latest
outputs:
code: ${{ steps.detect-changes.outputs.code }}
rsc: ${{ steps.detect-changes.outputs.rsc }}
ssr: ${{ steps.detect-changes.outputs.ssr }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
with:
set-up-yarn-cache: false
yarn-install-directory: ./.github/actions/detect-changes
build: false
- name: 🔍 Detect changes
id: detect-changes
uses: ./.github/actions/detect-changes
check:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'true'
name: ✅ Check constraints, dependencies, and package.json's
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
with:
set-up-yarn-cache: false
yarn-install-directory: .
build: false
- name: ✅ Check constraints, dependencies, and package.json's
run: yarn check
check-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
name: ✅ Check constraints, dependencies, and package.json's
runs-on: ubuntu-latest
steps:
- run: echo "Skipped"
formatting-check:
name: 📝 Check formatting (prettier)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
with:
set-up-yarn-cache: false
yarn-install-directory: .
build: false
- name: 📝 Check formatting (prettier)
run: yarn format:check
build-lint-test:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🏗 Build, lint, test / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
steps:
- name: Remove the tsc problem matcher if not ubuntu-latest
if: matrix.os != 'ubuntu-latest'
run: echo "echo "::remove-matcher owner=tsc::""
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: 🔎 Lint
run: yarn lint
# TODO(jgmw): Re-enable when it doesn't hang
# - name: 🥡 Check packaging and attw
# run: yarn check:package
- name: 🌡 Test Types
run: yarn test:types
- name: Get number of CPU cores
if: always()
id: cpu-cores
uses: SimenB/github-actions-cpu-cores@97ba232459a8e02ff6121db9362b09661c875ab8 # v2
- name: 🧪 Test
run: yarn test-ci --minWorkers=1 --maxWorkers=${{ steps.cpu-cores.outputs.count }}
build-lint-test-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🏗 Build, lint, test / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
steps:
- run: echo "Skipped"
tutorial-e2e:
needs: check
name: 🌲 Tutorial E2E / node 20 latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: 🌲 Install Cypress
run: yarn cypress install
- name: 🌲 Create a Redwood App
id: crwa
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
run: |
project_path=$(mktemp -d -t redwood.XXXXXX)
echo "project-path=$project_path" >> $GITHUB_OUTPUT
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
./tasks/run-e2e "$project_path" \
--no-build-framework \
--no-start
- name: Start the dev server in the background
run: |
yarn rw dev --no-generate --fwd="--no-open" 2>&1 | tee dev_server.log &
working-directory: ${{ steps.crwa.outputs.project-path }}
- name: 🌲 Run Cypress
uses: cypress-io/github-action@df7484c5ba85def7eef30db301afa688187bc378 # v6
env:
CYPRESS_RW_PATH: ${{ steps.crwa.outputs.project-path }}
with:
browser: chrome
env: true
install: false
wait-on: 'http://[::1]:8910'
working-directory: ./tasks/e2e
spec: |
cypress/e2e/01-tutorial/*.cy.js
- uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4
if: always()
with:
name: logs
path: |
${{ steps.crwa.outputs.project-path }}/dev_server.log
${{ steps.crwa.outputs.project-path }}/e2e.log
tutorial-e2e-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
name: 🌲 Tutorial E2E / node 20 latest
runs-on: ubuntu-latest
steps:
- run: echo "Skipped"
smoke-tests:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔄 Smoke tests / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
env:
REDWOOD_CI: 1
REDWOOD_VERBOSE_TELEMETRY: 1
steps:
- name: Checkout the framework code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: 🌲 Set up test project
id: set-up-test-project
uses: ./.github/actions/set-up-test-project
env:
REDWOOD_DISABLE_TELEMETRY: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: 🎭 Install playwright dependencies
run: npx playwright install --with-deps chromium
- name: 🧑‍💻 Run dev smoke tests
working-directory: ./tasks/smoke-tests/dev
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: '${{ steps.set-up-test-project.outputs.test-project-path }}'
REDWOOD_DISABLE_TELEMETRY: 1
- name: 🔐 Run auth smoke tests
working-directory: ./tasks/smoke-tests/auth
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-test-project.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
- name: Run `rw build --no-prerender`
run: |
yarn rw build --no-prerender
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run `rw prerender`
run: |
yarn rw prerender --verbose
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: 🖥️ Run serve smoke tests
working-directory: tasks/smoke-tests/serve
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-test-project.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
- name: 📄 Run prerender smoke tests
working-directory: tasks/smoke-tests/prerender
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-test-project.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
- name: 📕 Run Storybook smoke tests
working-directory: tasks/smoke-tests/storybook
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-test-project.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
smoke-tests-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔄 Smoke tests / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
steps:
- run: echo "Skipped"
smoke-tests-react-18:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔄 Smoke tests React 18 / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
env:
REDWOOD_CI: 1
REDWOOD_VERBOSE_TELEMETRY: 1
steps:
- name: Checkout the framework code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
with:
build: false
- name: Downgrade to React 18
run: |
yarn tsx ./tasks/downgradeToReact18.mts
# One of our dependencies is on GitHub instead of NPM and without authentication
# we'll get rate limited and this step becomes flaky.
- name: 🐈 Yarn install
shell: bash
env:
GITHUB_TOKEN: ${{ github.token }}
YARN_ENABLE_IMMUTABLE_INSTALLS: false
run: yarn install --inline-builds
- name: 🏗️ Build
shell: bash
run: yarn build
- name: 🌲 Set up test project for React 18
id: set-up-test-project-react-18
uses: ./.github/actions/set-up-test-project
env:
REDWOOD_DISABLE_TELEMETRY: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: 🎭 Install playwright dependencies
run: npx playwright install --with-deps chromium
- name: 🧑‍💻 Run dev smoke tests
working-directory: ./tasks/smoke-tests/dev
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: '${{ steps.set-up-test-project-react-18.outputs.test-project-path }}'
REDWOOD_DISABLE_TELEMETRY: 1
- name: 🔐 Run auth smoke tests
working-directory: ./tasks/smoke-tests/auth
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-test-project-react-18.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
- name: Run `rw build --no-prerender`
run: |
yarn rw build --no-prerender
working-directory: ${{ steps.set-up-test-project-react-18.outputs.test-project-path }}
- name: Run `rw prerender`
run: |
yarn rw prerender --verbose
working-directory: ${{ steps.set-up-test-project-react-18.outputs.test-project-path }}
- name: 🖥️ Run serve smoke tests
working-directory: tasks/smoke-tests/serve
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-test-project-react-18.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
- name: 📄 Run prerender smoke tests
working-directory: tasks/smoke-tests/prerender
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-test-project-react-18.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
- name: 📕 Run Storybook smoke tests
working-directory: tasks/smoke-tests/storybook
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-test-project-react-18.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
smoke-tests-react-18-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔄 Smoke tests React 18 / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
steps:
- run: echo "Skipped"
cli-smoke-tests:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔄 CLI smoke tests / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
env:
REDWOOD_CI: 1
REDWOOD_VERBOSE_TELEMETRY: 1
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: 🌲 Set up test project
id: set-up-test-project
uses: ./.github/actions/set-up-test-project
env:
REDWOOD_DISABLE_TELEMETRY: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: Run `rw info`
run: yarn rw info
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run `rw lint`
run: yarn rw lint ./api/src --fix
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "rw test api"
run: yarn rw test api --no-watch
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "rw test web"
run: yarn rw test web --no-watch
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "rw check"
run: yarn rw check
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "rw storybook"
run: yarn rw sb --smoke-test
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "rw exec"
run: yarn rw g script testScript && yarn rw exec testScript
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "prisma generate"
run: yarn rw prisma generate
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "rw data-migrate"
run: yarn rw data-migrate up
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "data-migrate install"
run: yarn rw data-migrate install
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "prisma migrate"
run: yarn rw prisma migrate dev --name ci-test
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run `rw deploy --help`
run: yarn rw setup deploy --help && yarn rw deploy --help
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run `rw setup ui --help`
run: yarn rw setup --help && yarn rw setup ui --help
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "g page"
run: yarn rw g page ciTest
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "g sdl"
run: yarn rw g sdl userExample
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Run "rw type-check"
run: yarn rw type-check
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
- name: Throw Error | Run `rw g sdl <model>`
run: yarn rw g sdl DoesNotExist
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
continue-on-error: true
cli-smoke-tests-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔄 CLI smoke tests / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
steps:
- run: echo "Skipped"
telemetry-check:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔭 Telemetry check / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
env:
REDWOOD_REDIRECT_TELEMETRY: 'http://127.0.0.1:48619' # Random port
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: 📢 Listen for telemetry (CRWA)
run: node ./.github/actions/telemetry_check/check.mjs --mode crwa
- name: 📢 Listen for telemetry (CLI)
run: node ./.github/actions/telemetry_check/check.mjs --mode cli
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
telemetry-check-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔭 Telemetry check / ${{ matrix.os }} / node 20 latest
runs-on: ${{ matrix.os }}
steps:
- run: echo "Skipped"
rsc-smoke-tests:
needs: [check, detect-changes]
if: needs.detect-changes.outputs.rsc == 'true'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔄🐘 RSC Smoke tests / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
env:
REDWOOD_CI: 1
REDWOOD_VERBOSE_TELEMETRY: 1
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: 🌲 Set up RSC project
id: set-up-rsc-project
uses: ./.github/actions/set-up-rsc-project
env:
REDWOOD_DISABLE_TELEMETRY: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: 🎭 Install playwright dependencies
run: npx playwright install --with-deps chromium
- name: 🐘 Run RSC serve smoke tests
working-directory: tasks/smoke-tests/rsc
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-rsc-project.outputs.rsc-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
# TODO (RSC): This workflow times out on Windows. It looks as if the dev
# server starts up ok, but it doesn't seem like the browser is rendering
# what it should be. And now it's also started failing on Ubuntu. So I've
# disabled it for now. The error on Ubuntu is:
# Failed to read a RSC payload created by a development version of
# React on the server while using a production version on the client.
# Always use matching versions on the server and the client.
- name: 🐘 Run RSC dev smoke tests
if: matrix.os == 'false__ubuntu-latest'
working-directory: tasks/smoke-tests/rsc-dev
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-rsc-project.outputs.rsc-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
- name: 🌲 Set up RSA smoke test
id: set-up-rsa-project
uses: ./.github/actions/set-up-rsa-project
env:
REDWOOD_DISABLE_TELEMETRY: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: 🐘 Run RSA smoke tests
working-directory: tasks/smoke-tests/rsa
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-rsa-project.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
- name: 🌲 Set up RSC Kitchen Sink smoke test
id: set-up-rsc-kitchen-sink-project
uses: ./.github/actions/set-up-rsc-kitchen-sink-project
env:
REDWOOD_DISABLE_TELEMETRY: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: 🐘 Run RSC Kitchen Sink smoke tests
working-directory: tasks/smoke-tests/rsc-kitchen-sink
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-rsc-kitchen-sink-project.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
rsc-smoke-tests-skip:
needs: detect-changes
if: needs.detect-changes.outputs.rsc == 'false'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 🔄🐘 RSC Smoke tests / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- run: echo "Skipped"
ssr-smoke-tests:
needs: [check, detect-changes]
if: needs.detect-changes.outputs.ssr == 'true'
strategy:
matrix:
# TODO: add `windows-latest`.
os: [ubuntu-latest]
name: 🔁 SSR Smoke tests / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
env:
REDWOOD_CI: 1
REDWOOD_VERBOSE_TELEMETRY: 1
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: 🌲 Set up test project
id: set-up-test-project
uses: ./.github/actions/set-up-test-project
with:
canary: true
env:
REDWOOD_DISABLE_TELEMETRY: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: Run SSR codemods on test project
run: ./tasks/test-project/convert-to-ssr-fixture ${{ steps.set-up-test-project.outputs.test-project-path }}
env:
REDWOOD_DISABLE_TELEMETRY: 1
- name: 🎭 Install playwright dependencies
run: npx playwright install --with-deps chromium
- name: Run SSR [DEV] smoke tests
working-directory: ./tasks/smoke-tests/streaming-ssr-dev
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: '${{ steps.set-up-test-project.outputs.test-project-path }}'
REDWOOD_DISABLE_TELEMETRY: 1
- name: Build for production
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
run: yarn rw build --no-prerender --verbose
env:
REDWOOD_DISABLE_TELEMETRY: 1
- name: Run SSR [PROD] smoke tests
working-directory: ./tasks/smoke-tests/streaming-ssr-prod
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: '${{ steps.set-up-test-project.outputs.test-project-path }}'
REDWOOD_DISABLE_TELEMETRY: 1
ssr-smoke-tests-skip:
needs: detect-changes
if: needs.detect-changes.outputs.ssr == 'false'
strategy:
matrix:
# TODO: add `windows-latest`.
os: [ubuntu-latest]
name: 🔁 SSR Smoke tests / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- run: echo "Skipped"
fragments-smoke-tests:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 📄 Fragments Smoke tests / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
env:
REDWOOD_CI: 1
REDWOOD_VERBOSE_TELEMETRY: 1
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: 🌲 Set up test project
id: set-up-test-project
uses: ./.github/actions/set-up-test-project
with:
canary: true
env:
REDWOOD_DISABLE_TELEMETRY: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: Run Fragments codemods on test project
run: npx -y tsx ./tasks/test-project/add-gql-fragments ${{ steps.set-up-test-project.outputs.test-project-path }}
env:
REDWOOD_DISABLE_TELEMETRY: 1
- name: 🎭 Install playwright dependencies
run: npx playwright install --with-deps chromium
- name: Run Fragments dev smoke tests
working-directory: ./tasks/smoke-tests/fragments-dev
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: '${{ steps.set-up-test-project.outputs.test-project-path }}'
REDWOOD_DISABLE_TELEMETRY: 1
- name: Build for production
working-directory: ${{ steps.set-up-test-project.outputs.test-project-path }}
run: yarn rw build
env:
REDWOOD_DISABLE_TELEMETRY: 1
- name: Run Fragments serve smoke tests
working-directory: ./tasks/smoke-tests/fragments-serve
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: '${{ steps.set-up-test-project.outputs.test-project-path }}'
REDWOOD_DISABLE_TELEMETRY: 1
- name: Enable trusted-documents in Fragments test project
run: npx -y tsx ./tasks/test-project/set-up-trusted-documents ${{ steps.set-up-test-project.outputs.test-project-path }}
env:
REDWOOD_DISABLE_TELEMETRY: 1
- name: 📄 Run prerender smoke tests against Fragments test project (with trusted-documents enabled)
working-directory: tasks/smoke-tests/prerender
run: npx playwright test
env:
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-test-project.outputs.test-project-path }}
REDWOOD_DISABLE_TELEMETRY: 1
fragments-smoke-tests-skip:
needs: detect-changes
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: 📄 Fragments Smoke tests / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- run: echo "Skipped"
crwa:
needs: check
name: 🌲 Create Redwood App
runs-on: ubuntu-latest
env:
REDWOOD_CI: 1
REDWOOD_DISABLE_TELEMETRY: 1
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: Set up test project
run: |
yarn build:pack
PROJECT_PATH=$(yarn set-up-test-project)
echo "PROJECT_PATH=$PROJECT_PATH" >> $GITHUB_ENV
working-directory: ./packages/create-redwood-app
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: Set up git
run: |
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
- name: e2e test
run: yarn test:e2e
working-directory: ./packages/create-redwood-app
env:
PROJECT_PATH: ${{ env.PROJECT_PATH }}
- name: Install expect
run: |
sudo apt-get update
sudo apt-get install expect
- name: Prompt tests
run: |
./tests/e2e_prompts.sh
./tests/e2e_prompts_git.sh
./tests/e2e_prompts_m.sh
./tests/e2e_prompts_ts.sh
./tests/e2e_prompts_overwrite.sh
working-directory: ./packages/create-redwood-app
env:
PROJECT_PATH: ${{ env.PROJECT_PATH }}
- name: ⬢ Set up Node.js
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
with:
node-version: 18
- name: Prompt tests
run: ./tests/e2e_prompts_node_less.sh
working-directory: ./packages/create-redwood-app
env:
PROJECT_PATH: ${{ env.PROJECT_PATH }}
- name: ⬢ Set up Node.js
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
with:
node-version: 21
- name: Prompt tests
run: ./tests/e2e_prompts_node_greater.sh
working-directory: ./packages/create-redwood-app
env:
PROJECT_PATH: ${{ env.PROJECT_PATH }}
crwa-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
name: 🌲 Create Redwood App
runs-on: ubuntu-latest
steps:
- run: echo "Skipped"
server-tests:
needs: check
name: Server tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- run: yarn vitest run
working-directory: ./tasks/server-tests
server-tests-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
name: Server tests
runs-on: ubuntu-latest
steps:
- run: echo "Skipped"
background-jobs-e2e:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: Background jobs E2E test / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
env:
REDWOOD_CI: 1
REDWOOD_VERBOSE_TELEMETRY: 1
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- name: Set up job
uses: ./.github/actions/set-up-job
- name: 🌲 Set up test project
id: set-up-test-project
uses: ./.github/actions/set-up-test-project
with:
canary: true
env:
REDWOOD_DISABLE_TELEMETRY: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: Run E2E test script
run: yarn e2e:background-jobs ${{ steps.set-up-test-project.outputs.test-project-path }}
env:
REDWOOD_VERBOSE_TELEMETRY: ''
background-jobs-e2e-skip:
needs: detect-changes
if: needs.detect-changes.outputs.code == 'false'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: Background jobs E2E test / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- run: echo "Skipped"