report_type: test_results
test-build-start-base-edge-entry:
needs: changed
if: contains(needs.changed.outputs.all_changed_files, 'packages/react-server') || contains(needs.changed.outputs.all_changed_files, 'packages/rsc') || contains(needs.changed.outputs.all_changed_files, 'test/') || contains(needs.changed.outputs.all_changed_files, '.github/workflows/ci.yml')
timeout-minutes: 30
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node_version: [20, 22, 24]
include:
- os: macos-latest
node_version: 24
- os: windows-latest
node_version: 24
fail-fast: false
name: "Test prod base (edge entry) 🧪 node.js v${{ matrix.node_version }} on ${{ matrix.os }}"
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: ./.github/workflows/actions/common-setup
with:
node_version: ${{ matrix.node_version }}
- uses: ./.github/workflows/actions/common-playwright
with:
os: ${{ runner.os }}
- name: Test build and production mode (edge entry)
working-directory: ./test
run: pnpm test-build-start --exclude "**/__test__/apps"
env:
EDGE_ENTRY: "1"
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-prod-base-edge-entry-${{ matrix.os }}-node${{ matrix.node_version }}
path: test/test-results/junit.xml
if-no-files-found: ignore
retention-days: 7
- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: test/test-results/junit.xml
flags: prod-base-edge-entry-${{ matrix.os }}-node${{ matrix.node_version }}
report_type: test_results
test-dev-apps:
needs: changed
if: contains(needs.changed.outputs.all_changed_files, 'packages/react-server') || contains(needs.changed.outputs.all_changed_files, 'packages/rsc') || contains(needs.changed.outputs.all_changed_files, 'test/') || contains(needs.changed.outputs.all_changed_files, '.github/workflows/ci.yml')
timeout-minutes: 30
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node_version: [20, 22, 24]
include:
- os: macos-latest
node_version: 24
- os: windows-latest
node_version: 24
fail-fast: false
name: "Test dev apps 🧪 node.js v${{ matrix.node_version }} on ${{ matrix.os }}"
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: ./.github/workflows/actions/common-setup
with:
node_version: ${{ matrix.node_version }}
- uses: ./.github/workflows/actions/common-playwright
with:
os: ${{ runner.os }}
- name: Test development apps
working-directory: ./test
run: pnpm test-dev --exclude "**/__test__/*.spec.mjs"
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-dev-apps-${{ matrix.os }}-node${{ matrix.node_version }}
path: test/test-results/junit.xml
if-no-files-found: ignore
retention-days: 7
- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: test/test-results/junit.xml
flags: dev-apps-${{ matrix.os }}-node${{ matrix.node_version }}
report_type: test_results
test-build-start-apps:
needs: changed
if: contains(needs.changed.outputs.all_changed_files, 'packages/react-server') || contains(needs.changed.outputs.all_changed_files, 'packages/rsc') || contains(needs.changed.outputs.all_changed_files, 'test/') || contains(needs.changed.outputs.all_changed_files, '.github/workflows/ci.yml')
timeout-minutes: 30
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node_version: [20, 22, 24]
include:
- os: macos-latest
node_version: 24
- os: windows-latest
node_version: 24
fail-fast: false
name: "Test prod apps 🧪 node.js v${{ matrix.node_version }} on ${{ matrix.os }}"
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: ./.github/workflows/actions/common-setup
with:
node_version: ${{ matrix.node_version }}
- uses: ./.github/workflows/actions/common-playwright
with:
os: ${{ runner.os }}
- name: Test build and production mode apps
working-directory: ./test
run: pnpm test-build-start --exclude "**/__test__/*.spec.mjs"
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-prod-apps-${{ matrix.os }}-node${{ matrix.node_version }}
path: test/test-results/junit.xml
if-no-files-found: ignore
retention-days: 7
- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: test/test-results/junit.xml
flags: prod-apps-${{ matrix.os }}-node${{ matrix.node_version }}
report_type: test_results
test-build-start-apps-edge:
needs: changed
if: contains(needs.changed.outputs.all_changed_files, 'packages/react-server') || contains(needs.changed.outputs.all_changed_files, 'packages/rsc') || contains(needs.changed.outputs.all_changed_files, 'test/') || contains(needs.changed.outputs.all_changed_files, '.github/workflows/ci.yml')
timeout-minutes: 30
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node_version: [20, 22, 24]
include:
- os: macos-latest
node_version: 24
- os: windows-latest
node_version: 24
fail-fast: false
name: "Test prod apps (edge+node) 🧪 node.js v${{ matrix.node_version }} on ${{ matrix.os }}"
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: ./.github/workflows/actions/common-setup
with:
node_version: ${{ matrix.node_version }}
- uses: ./.github/workflows/actions/common-playwright
with:
os: ${{ runner.os }}
- name: Test build and production mode apps (edge build, node entry)
working-directory: ./test
run: pnpm test-build-start --exclude "**/__test__/*.spec.mjs"
env:
EDGE: "1"
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-prod-apps-edge-${{ matrix.os }}-node${{ matrix.node_version }}
path: test/test-results/junit.xml
if-no-files-found: ignore
retention-days: 7
- name: Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v5