Skip to content

Fix 404 URLs on path-based i18n projects #4006

Fix 404 URLs on path-based i18n projects

Fix 404 URLs on path-based i18n projects #4006

Workflow file for this run

name: 🚀 CI
on: [pull_request]
jobs:
lint:
name: ⬣ ESLint
runs-on: ubuntu-latest
timeout-minutes: 15
concurrency:
group: ci-lint-${{ github.ref }}
cancel-in-progress: true
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: ⎔ Setup node
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: 📥 Install dependencies
run: npm ci
- name: 🔬 Lint
run: npm run lint
format:
name: ⬣ Prettier
runs-on: ubuntu-latest
timeout-minutes: 15
concurrency:
group: ci-format-${{ github.ref }}
cancel-in-progress: true
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: ⎔ Setup node
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: 📥 Install dependencies
run: npm ci
- name: 🔬 Check Formatting
run: npm run format:check
typecheck:
name: Typescript
runs-on: ubuntu-latest
timeout-minutes: 15
concurrency:
group: ci-typecheck-${{ github.ref }}
cancel-in-progress: true
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: ⎔ Setup node
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: 📥 Install dependencies
run: npm ci
# Enabling the turbo cache causes deployments to fail intermittently.
# The build step fails with dependency issues. More investigation needed.
# - name: 💾 Turbo cache
# id: turbo-cache
# uses: actions/cache@v3
# with:
# path: |
# node_modules/.cache/turbo
# **/.turbo
# key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }}
# restore-keys: |
# turbo-${{ github.job }}-${{ github.ref_name }}-
- name: 📦 Build packages, templates, and examples
run: SHOPIFY_HYDROGEN_FLAG_LOCKFILE_CHECK=false npm run build:all
- name: ✅ Typecheck
run: npm run typecheck
- name: 🧑‍💻 CLI manifest check
run: 'test -z "$(git status --porcelain "packages/cli/oclif.manifest.json" )" || { echo -e "Run npm generate:manifest in packages/cli before pushing new commands or flags. Diff here:\n\n$(git diff)" ; exit 1; }'
test:
name: ⬣ Unit tests
runs-on: ubuntu-latest
timeout-minutes: 15
concurrency:
group: ci-test-${{ github.ref }}
cancel-in-progress: true
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: ⎔ Setup node
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: 📥 Install dependencies
run: npm ci
- name: 📦 Build packages, templates, and examples
run: SHOPIFY_HYDROGEN_FLAG_LOCKFILE_CHECK=false npm run build:all
- name: 🔬 Test
run: npm run test
e2e:
name: ⚫️ Playwright tests
runs-on: ubuntu-latest
timeout-minutes: 15
concurrency:
group: ci-e2e-${{ github.ref }}
cancel-in-progress: true
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: ⎔ Setup node
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: 📥 Install dependencies
run: npm ci
- name: 📋 Copy package-lock
run: cp package-lock.json templates/demo-store
- name: 📦 Build packages
run: npm run build:pkg && (cd templates/demo-store && npm run build)
- name: 💾 Turbo cache
id: turbo-cache
uses: actions/cache@v3
with:
path: |
node_modules/.cache/turbo
**/.turbo
key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }}
restore-keys: |
turbo-${{ github.job }}-${{ github.ref_name }}-
- name: 📄 Get installed Playwright version
run: echo "PLAYWRIGHT_VERSION=$(npm ls @playwright/test | grep @playwright -m 1 | sed 's/.*@//')" >> $GITHUB_ENV
- name: 💾 Cache Playwright binaries
uses: actions/cache@v3
id: playwright-cache
with:
path: |
~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}
- name: 💽 Install Playwright Browsers (all)
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: npx playwright install --with-deps
working-directory: ./templates/demo-store
- name: 💽 Install Playwright (only system deps)
if: steps.playwright-cache.outputs.cache-hit == 'true'
run: npx playwright install-deps
working-directory: ./templates/demo-store
- name: 🍄 Run Playwright tests
run: npx playwright test
working-directory: ./templates/demo-store
- name: 🗒 Report
uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: ./templates/demo-store/playwright-report/
retention-days: 30