Update studio.md #29134
This file contains 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: βοΈ 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 | |
env: | |
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} | |
jobs: | |
detect-changes: | |
if: github.repository == 'redwoodjs/redwood' | |
name: π Detect changes | |
runs-on: ubuntu-latest | |
outputs: | |
onlydocs: ${{ steps.detect-changes.outputs.onlydocs }} | |
rsc: ${{ steps.detect-changes.outputs.rsc }} | |
ssr: ${{ steps.detect-changes.outputs.ssr }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: π Yarn install | |
working-directory: ./.github/actions/detect-changes | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: π Detect changes | |
id: detect-changes | |
uses: ./.github/actions/detect-changes | |
check: | |
needs: detect-changes | |
if: needs.detect-changes.outputs.onlydocs == 'false' | |
name: β Check constraints, dependencies, and package.json's | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: π Yarn install | |
working-directory: ./tasks/check | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: β Check constraints, dependencies, and package.json's | |
uses: ./tasks/check | |
check-skip: | |
needs: detect-changes | |
if: needs.detect-changes.outputs.onlydocs == 'true' | |
name: β Check constraints, dependencies, and package.json's | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "Skipped" | |
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@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: π Set up yarn cache | |
uses: ./.github/actions/set-up-yarn-cache | |
- name: π Yarn install | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: π¨ Build | |
run: yarn build | |
- name: π Lint | |
run: yarn lint | |
- name: π‘ Test Types | |
run: yarn test:types | |
- name: Get number of CPU cores | |
if: always() | |
id: cpu-cores | |
uses: SimenB/github-actions-cpu-cores@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.onlydocs == 'true' | |
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 | |
strategy: | |
matrix: | |
bundler: [vite, webpack] | |
name: π² Tutorial E2E / ${{ matrix.bundler }} / node 20 latest | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: π Set up yarn cache | |
uses: ./.github/actions/set-up-yarn-cache | |
- name: π Yarn install | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: π¨ Build | |
run: yarn build | |
- 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" \ | |
--bundler ${{ matrix.bundler }} \ | |
--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@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 | |
cypress/e2e/04-logger/*.cy.js | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: ${{ matrix.bundler }}-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.onlydocs == 'true' | |
strategy: | |
matrix: | |
bundler: [vite, webpack] | |
name: π² Tutorial E2E / ${{ matrix.bundler }} / node 20 latest | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "Skipped" | |
smoke-tests: | |
needs: check | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
bundler: [vite, webpack] | |
name: π Smoke tests / ${{ matrix.os }} / ${{ matrix.bundler }} / node 20 latest | |
runs-on: ${{ matrix.os }} | |
env: | |
REDWOOD_CI: 1 | |
REDWOOD_VERBOSE_TELEMETRY: 1 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: π Set up yarn cache | |
uses: ./.github/actions/set-up-yarn-cache | |
- name: π Yarn install | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: π¨ Build | |
run: yarn build | |
- name: π² Set up test project | |
id: set-up-test-project | |
uses: ./.github/actions/set-up-test-project | |
with: | |
bundler: ${{ matrix.bundler }} | |
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 | |
- 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 dataMigrate 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 | |
# We've disabled Replay for now but may add it back. When we do, | |
# we need to add this to all the smoke tests steps' env: | |
# | |
# ``` | |
# env: | |
# RECORD_REPLAY_METADATA_TEST_RUN_TITLE: π Smoke tests / ${{ matrix.os }} / node 20 latest | |
# RECORD_REPLAY_TEST_METRICS: 1 | |
# ``` | |
# | |
# - name: Upload Replays | |
# if: always() | |
# uses: replayio/action-upload@v0.5.0 | |
# with: | |
# api-key: rwk_cZn4WLe8106j6tC5ygNQxDpxAwCLpFo5oLQftiRN7OP | |
smoke-tests-skip: | |
needs: detect-changes | |
if: needs.detect-changes.outputs.onlydocs == 'true' | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
bundler: [vite, webpack] | |
name: π Smoke tests / ${{ matrix.os }} / ${{ matrix.bundler }} / 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@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: π Set up yarn cache | |
uses: ./.github/actions/set-up-yarn-cache | |
- name: π Yarn install | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: π¨ Build | |
run: yarn build | |
- 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.onlydocs == 'true' | |
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@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: π Set up yarn cache | |
uses: ./.github/actions/set-up-yarn-cache | |
- name: π Yarn install | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: π¨ Build | |
run: yarn build | |
- 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 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 | |
- 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 external packages and Cells smoke test | |
id: set-up-rsc-external-packages-and-cells-project | |
uses: ./.github/actions/set-up-rsc-external-packages-and-cells-project | |
env: | |
REDWOOD_DISABLE_TELEMETRY: 1 | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
- name: π Run RSC external packages and cells smoke tests | |
working-directory: tasks/smoke-tests/rsc-external-packages-and-cells | |
run: npx playwright test | |
env: | |
REDWOOD_TEST_PROJECT_PATH: ${{ steps.set-up-rsc-external-packages-and-cells-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@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: π Set up yarn cache | |
uses: ./.github/actions/set-up-yarn-cache | |
- name: π Yarn install | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: π¨ Build | |
run: yarn build | |
- name: π² Set up test project | |
id: set-up-test-project | |
uses: ./.github/actions/set-up-test-project | |
with: | |
bundler: vite | |
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 | |
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@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: π Set up yarn cache | |
uses: ./.github/actions/set-up-yarn-cache | |
- name: π Yarn install | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: π¨ Build | |
run: yarn build | |
- name: π² Set up test project | |
id: set-up-test-project | |
uses: ./.github/actions/set-up-test-project | |
with: | |
bundler: vite | |
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@v4 | |
- name: β¬’ Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: π Set up yarn cache | |
uses: ./.github/actions/set-up-yarn-cache | |
- name: π Yarn install | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: ποΈ Build | |
run: yarn build | |
- 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@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@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.onlydocs == 'true' | |
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@v4 | |
- name: Enable Corepack | |
run: corepack enable | |
- name: β¬’ Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: π Set up yarn cache | |
uses: ./.github/actions/set-up-yarn-cache | |
- name: π Yarn install | |
run: yarn install --inline-builds | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: π¨ Build | |
run: yarn build | |
- run: yarn vitest run | |
working-directory: ./tasks/server-tests | |
server-tests-skip: | |
needs: detect-changes | |
if: needs.detect-changes.outputs.onlydocs == 'true' | |
name: Server tests | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "Skipped" |