Skip to content

Feat: repo cleanup + test suite restructuring + extending docs #220

Feat: repo cleanup + test suite restructuring + extending docs

Feat: repo cleanup + test suite restructuring + extending docs #220

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
permissions:
contents: read
jobs:
lint-and-unit:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install pnpm
run: corepack enable
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --ignore-scripts
- name: Run lint
run: pnpm lint
- name: Build project
run: pnpm build
- name: Run unit tests
run: pnpm test:unit:coverage
- name: Code Coverage Comments
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
uses: kcjpop/coverage-comments@v2.2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
coverage-file: './coverage/lcov.info'
- name: Dry run the release
if: github.event_name == 'pull_request'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release --dry-run
integration:
runs-on: ubuntu-latest
needs: lint-and-unit
strategy:
matrix:
next-test-app:
- next-app-15-4-7
- next-app-16-0-3
- next-app-16-2-3
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install pnpm
run: corepack enable
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --ignore-scripts
- name: Build project
run: pnpm build
- name: Start Redis
uses: supercharge/redis-github-action@1.8.0
with:
redis-version: '7'
redis-port: 6379
- name: Install redis-cli
run: sudo apt-get update && sudo apt-get install -y redis-tools
- name: Configure Redis Keyspace Notifications
run: redis-cli config set notify-keyspace-events Exe
- name: Install test project
run: cd test/nextjs-test-projects/${{ matrix.next-test-app }} && pnpm install
- name: Build test project
run: cd test/nextjs-test-projects/${{ matrix.next-test-app }} && pnpm build
- name: Run integration tests
run: pnpm test:integration
env:
SKIP_BUILD: true
NEXT_TEST_APP: ${{ matrix.next-test-app }}
integration-build-id-prefix:
runs-on: ubuntu-latest
needs: lint-and-unit
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install pnpm
run: corepack enable
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --ignore-scripts
- name: Build project
run: pnpm build
- name: Start Redis
uses: supercharge/redis-github-action@1.8.0
with:
redis-version: '7'
redis-port: 6379
- name: Install redis-cli
run: sudo apt-get update && sudo apt-get install -y redis-tools
- name: Configure Redis Keyspace Notifications
run: redis-cli config set notify-keyspace-events Exe
- name: Install test project
run: cd test/nextjs-test-projects/next-app-15-4-7 && pnpm install
- name: Build test project
run: cd test/nextjs-test-projects/next-app-15-4-7 && pnpm build
- name: Run BUILD_ID prefix integration test
run: pnpm test:integration:build-id-prefix
integration-cache-components:
runs-on: ubuntu-latest
needs: lint-and-unit
strategy:
matrix:
cache-components-app:
- next-app-16-0-3-cache-components
- next-app-16-2-3-cache-components
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install pnpm
run: corepack enable
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --ignore-scripts
- name: Build project
run: pnpm build
- name: Start Redis
uses: supercharge/redis-github-action@1.8.0
with:
redis-version: '7'
redis-port: 6379
- name: Install redis-cli
run: sudo apt-get update && sudo apt-get install -y redis-tools
- name: Configure Redis Keyspace Notifications
run: redis-cli config set notify-keyspace-events Exe
- name: Install test project
run: cd test/nextjs-test-projects/${{ matrix.cache-components-app }} && pnpm install
- name: Build test project
run: cd test/nextjs-test-projects/${{ matrix.cache-components-app }} && pnpm build
- name: Run cache-components integration tests
run: pnpm test:integration:cache-components
env:
CACHE_COMPONENTS_APP: ${{ matrix.cache-components-app }}
e2e:
runs-on: ubuntu-latest
needs: lint-and-unit
strategy:
matrix:
cache-components-app:
- next-app-16-0-3-cache-components
- next-app-16-2-3-cache-components
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install pnpm
run: corepack enable
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --ignore-scripts
- name: Build project
run: pnpm build
- name: Start Redis
uses: supercharge/redis-github-action@1.8.0
with:
redis-version: '7'
redis-port: 6379
- name: Install redis-cli
run: sudo apt-get update && sudo apt-get install -y redis-tools
- name: Configure Redis Keyspace Notifications
run: redis-cli config set notify-keyspace-events Exe
- name: Install test project
run: cd test/nextjs-test-projects/${{ matrix.cache-components-app }} && pnpm install
- name: Build test project
run: cd test/nextjs-test-projects/${{ matrix.cache-components-app }} && pnpm build
- name: Install Playwright browsers
run: pnpm exec playwright install --with-deps
- name: Run Playwright E2E tests
run: pnpm test:e2e
env:
PLAYWRIGHT_TEST_APP: ${{ matrix.cache-components-app }}