Skip to content

fix(deps): update starter-peer-deps #1381

fix(deps): update starter-peer-deps

fix(deps): update starter-peer-deps #1381

name: Starter Smoke Tests
on:
push:
branches:
- main
paths-ignore:
- "docs/**"
- ".notes/**"
- "*.md"
- "src/**/*.test.*"
pull_request:
branches:
- main
paths-ignore:
- "docs/**"
- ".notes/**"
- "*.md"
- "src/**/*.test.*"
workflow_dispatch:
inputs:
starter:
description: "Starter to test (e.g., minimal, standard)"
required: true
type: choice
default: "minimal"
options:
- minimal
- standard
- all
os:
description: "OS to run on (e.g., ubuntu-latest, macos-latest)"
required: true
type: choice
default: "all"
options:
- all
- ubuntu-latest
- macos-latest
package-manager:
description: "Package manager to use (e.g., pnpm, npm)"
required: true
type: choice
default: "all"
options:
- all
- pnpm
- npm
- yarn
- yarn-classic
workflow_call:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
jobs:
setup-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: |
if [ "${{ github.event_name }}" == "pull_request" ] || [ "${{ github.event_name }}" == "push" ]; then
echo 'matrix={"include":[{"starter":"minimal","os":"ubuntu-latest","package-manager":"npm"}]}' >> $GITHUB_OUTPUT
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
STARTER_INPUT=${{ github.event.inputs.starter }}
OS_INPUT=${{ github.event.inputs.os }}
PM_INPUT=${{ github.event.inputs.package-manager }}
[ "$STARTER_INPUT" == "all" ] && STARTER_LIST='minimal standard' || STARTER_LIST=$STARTER_INPUT
[ "$OS_INPUT" == "all" ] && OS_LIST='ubuntu-latest macos-latest' || OS_LIST=$OS_INPUT
[ "$PM_INPUT" == "all" ] && PM_LIST='pnpm npm yarn yarn-classic' || PM_LIST=$PM_INPUT
JSON_ARRAY="[]"
for s in $STARTER_LIST; do
for o in $OS_LIST; do
for p in $PM_LIST; do
JSON_ARRAY=$(echo "$JSON_ARRAY" | jq ". + [{\"starter\":\"$s\",\"os\":\"$o\",\"package-manager\":\"$p\"}]")
done
done
done
echo "matrix={\"include\":${JSON_ARRAY}}" >> $GITHUB_OUTPUT
else # this is for workflow_call
echo 'matrix={"include":[{"starter":"minimal","os":"ubuntu-latest","package-manager":"pnpm"},{"starter":"minimal","os":"ubuntu-latest","package-manager":"npm"},{"starter":"minimal","os":"ubuntu-latest","package-manager":"yarn"},{"starter":"minimal","os":"ubuntu-latest","package-manager":"yarn-classic"},{"starter":"minimal","os":"macos-latest","package-manager":"pnpm"},{"starter":"minimal","os":"macos-latest","package-manager":"npm"},{"starter":"minimal","os":"macos-latest","package-manager":"yarn"},{"starter":"minimal","os":"macos-latest","package-manager":"yarn-classic"},{"starter":"standard","os":"ubuntu-latest","package-manager":"pnpm"},{"starter":"standard","os":"ubuntu-latest","package-manager":"npm"},{"starter":"standard","os":"ubuntu-latest","package-manager":"yarn"},{"starter":"standard","os":"ubuntu-latest","package-manager":"yarn-classic"},{"starter":"standard","os":"macos-latest","package-manager":"pnpm"},{"starter":"standard","os":"macos-latest","package-manager":"npm"},{"starter":"standard","os":"macos-latest","package-manager":"yarn"},{"starter":"standard","os":"macos-latest","package-manager":"yarn-classic"}]}' >> $GITHUB_OUTPUT
fi
smoke-test:
needs: setup-matrix
name: ${{ matrix.starter }} starter - ${{ matrix.os }} - ${{ matrix.package-manager }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }}
timeout-minutes: 60
env:
MAX_RETRIES: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '10' || '3' }}
RWSDK_SETUP_PLAYGROUND_ENV_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '1800000' || '' }} # 30 mins
RWSDK_DEPLOYMENT_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '900000' || '' }} # 15 mins
RWSDK_DEPLOYMENT_MIN_TRIES: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '10' || '' }}
RWSDK_DEPLOYMENT_CHECK_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '600000' || '' }} # 10 mins
RWSDK_PUPPETEER_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '300000' || '' }} # 5 mins
RWSDK_HYDRATION_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '10000' || '' }} # 10s
RWSDK_DEV_SERVER_TIMEOUT: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_call') && '900000' || '' }} # 15 mins
# context(justinvdm, 2025-05-12):
# Only run this job for PRs from the same repository and pushes to main
# For security, GH won't expose secrets for fork PRs
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install dependencies
shell: bash
run: |
corepack enable
pnpm install
- name: Run Smoke Tests
id: smoke-test
shell: bash
run: |
./scripts/retry.sh ./sdk/scripts/ci-smoke-test.sh --starter "${{ matrix.starter }}" --package-manager "${{ matrix.package-manager }}"
env:
CHROME_BIN: ${{ steps.setup-chrome.outputs.chrome-path }}
- name: Upload starter artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: smoke-test-artifacts-${{ matrix.starter }}-${{ matrix.os }}-${{ matrix.package-manager }}
path: smoke-test-artifacts/${{ matrix.starter }}
retention-days: 7