Skip to content

fix: await Promise when seeding #26468

fix: await Promise when seeding

fix: await Promise when seeding #26468

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
env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
jobs:
only-doc-changes:
if: github.repository == 'redwoodjs/redwood'
name: πŸ“– Only doc changes?
runs-on: ubuntu-latest
outputs:
only-doc-changes: ${{ steps.only-doc-changes.outputs.only-doc-changes }}
steps:
- uses: actions/checkout@v3
- name: β¬’ Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: 🐈 Yarn install
working-directory: ./.github/actions/only_doc_changes
run: yarn install --inline-builds
env:
GITHUB_TOKEN: ${{ github.token }}
- name: πŸ“– Only doc changes?
id: only-doc-changes
uses: ./.github/actions/only_doc_changes
rsc-related-changes:
needs: check
if: github.repository == 'redwoodjs/redwood'
name: 🐘 RSC related changes?
runs-on: ubuntu-latest
outputs:
rsc-related-changes: ${{ steps.rsc-related-changes.outputs.rsc-related-changes }}
steps:
- uses: actions/checkout@v3
- name: β¬’ Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: 🐈 Yarn install
working-directory: ./.github/actions/rsc_related_changes
run: yarn install --inline-builds
env:
GITHUB_TOKEN: ${{ github.token }}
- name: 🐘 RSC related changes?
id: rsc-related-changes
uses: ./.github/actions/rsc_related_changes
check:
needs: only-doc-changes
if: needs.only-doc-changes.outputs.only-doc-changes == 'false'
name: βœ… Check constraints, dependencies, and package.json's
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: β¬’ Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- 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-docs:
needs: only-doc-changes
if: needs.only-doc-changes.outputs.only-doc-changes == 'true'
name: βœ… Check constraints, dependencies, and package.json's
runs-on: ubuntu-latest
steps:
- run: echo "Only doc changes"
build-lint-test:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
fail-fast: true
name: πŸ— Build, lint, test / ${{ matrix.os }} / node 18 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@v3
- name: β¬’ Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- 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: Get number of CPU cores
if: always()
id: cpu-cores
uses: SimenB/github-actions-cpu-cores@v1
- name: πŸ§ͺ Test
run: yarn test-ci ${{ steps.cpu-cores.outputs.count }}
build-lint-test-docs:
needs: only-doc-changes
if: needs.only-doc-changes.outputs.only-doc-changes == 'true'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: πŸ— Build, lint, test / ${{ matrix.os }} / node 18 latest
runs-on: ${{ matrix.os }}
steps:
- run: echo "Only doc changes"
tutorial-e2e:
needs: check
strategy:
matrix:
bundler: [vite, webpack]
name: 🌲 Tutorial E2E / ${{ matrix.bundler }} / node 18 latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: β¬’ Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- 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: πŸ“ Create a temporary directory
id: createpath
run: |
project_path=$(mktemp -d -t redwood.XXXXXX)
echo "::set-output name=project_path::$project_path"
framework_path=$(pwd)
echo "::set-output name=framework_path::$framework_path"
- name: 🌲 Create a Redwood App
run: |
./tasks/run-e2e ${{ steps.createpath.outputs.project_path }} \
--no-start \
--bundler ${{ matrix.bundler }}
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: πŸ™ Git init in the Redwood App directory
run: |
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git init --initial-branch main && git add .
git commit -a --message=init
working-directory: ${{ steps.createpath.outputs.project_path }}
- name: Start server in background
run: yarn rw dev --no-generate --fwd="--no-open" &
working-directory: ${{ steps.createpath.outputs.project_path }}
- name: 🌲 Install Cypress
run: yarn run cypress install
- name: 🌲 Run cypress
uses: cypress-io/github-action@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RW_PATH: "${{ steps.createpath.outputs.project_path }}"
with:
# We've already installed dependencies.
install: false
env: true
browser: chrome
record: false
wait-on: 'http://[::1]:8910'
working-directory: ./tasks/e2e
spec: |
cypress/e2e/01-tutorial/*.cy.js
cypress/e2e/04-logger/*.cy.js
tutorial-e2e-docs:
needs: only-doc-changes
if: needs.only-doc-changes.outputs.only-doc-changes == 'true'
strategy:
matrix:
os: [ubuntu-latest]
name: 🌲 Tutorial E2E / ${{ matrix.os }} / node 18 latest
runs-on: ${{ matrix.os }}
steps:
- run: echo "Only doc changes"
smoke-tests:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
bundler: [vite, webpack]
name: πŸ”„ Smoke tests / ${{ matrix.os }} / ${{ matrix.bundler }} / node 18 latest
runs-on: ${{ matrix.os }}
env:
REDWOOD_CI: 1
REDWOOD_VERBOSE_TELEMETRY: 1
steps:
- uses: actions/checkout@v3
- name: β¬’ Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- 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 18 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-docs:
needs: only-doc-changes
if: needs.only-doc-changes.outputs.only-doc-changes == 'true'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: πŸ”„ Smoke test / ${{ matrix.os }} / node 18 latest
runs-on: ${{ matrix.os }}
steps:
- run: echo "Only doc changes"
telemetry-check:
needs: check
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
fail-fast: true
name: πŸ”­ Telemetry check / ${{ matrix.os }} / node 18 latest
runs-on: ${{ matrix.os }}
env:
REDWOOD_REDIRECT_TELEMETRY: "http://127.0.0.1:48619" # Random port
steps:
- uses: actions/checkout@v3
- name: β¬’ Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- 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-docs:
needs: only-doc-changes
if: needs.only-doc-changes.outputs.only-doc-changes == 'true'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: πŸ”­ Telemetry check / ${{ matrix.os }} / node 18 latest
runs-on: ${{ matrix.os }}
steps:
- run: echo "Only doc changes"
rsc-smoke-tests:
needs: rsc-related-changes
if: needs.rsc-related-changes.outputs.rsc-related-changes == '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@v3
- name: β¬’ Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- 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
rsc-smoke-tests-mock:
needs: rsc-related-changes
if: needs.rsc-related-changes.outputs.rsc-related-changes != 'true'
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: πŸ”„πŸ˜ RSC Smoke tests / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- run: echo "RSC smoke tests mock"