Compare commits
1 Commits
templates/
...
test-ignor
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7060c32fd |
246
.github/workflows/main.yml
vendored
246
.github/workflows/main.yml
vendored
@@ -266,258 +266,12 @@ jobs:
|
|||||||
command: pnpm test:int
|
command: pnpm test:int
|
||||||
on_retry_command: pnpm clean:build && pnpm install --no-frozen-lockfile
|
on_retry_command: pnpm clean:build && pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
tests-e2e:
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
needs: [changes, build]
|
|
||||||
if: ${{ needs.changes.outputs.needs_tests == 'true' }}
|
|
||||||
name: e2e-${{ matrix.suite }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
# find test -type f -name 'e2e.spec.ts' | sort | xargs dirname | xargs -I {} basename {}
|
|
||||||
suite:
|
|
||||||
- _community
|
|
||||||
- access-control
|
|
||||||
- admin__e2e__general
|
|
||||||
- admin__e2e__list-view
|
|
||||||
- admin__e2e__document-view
|
|
||||||
- admin-root
|
|
||||||
- auth
|
|
||||||
- auth-basic
|
|
||||||
- joins
|
|
||||||
- field-error-states
|
|
||||||
- fields-relationship
|
|
||||||
- fields__collections__Array
|
|
||||||
- fields__collections__Blocks
|
|
||||||
- fields__collections__Checkbox
|
|
||||||
- fields__collections__Collapsible
|
|
||||||
- fields__collections__ConditionalLogic
|
|
||||||
- fields__collections__CustomID
|
|
||||||
- fields__collections__Date
|
|
||||||
- fields__collections__Email
|
|
||||||
- fields__collections__Indexed
|
|
||||||
- fields__collections__JSON
|
|
||||||
- fields__collections__Lexical__e2e__main
|
|
||||||
- fields__collections__Lexical__e2e__blocks
|
|
||||||
- fields__collections__Number
|
|
||||||
- fields__collections__Point
|
|
||||||
- fields__collections__Radio
|
|
||||||
- fields__collections__Relationship
|
|
||||||
- fields__collections__RichText
|
|
||||||
- fields__collections__Row
|
|
||||||
- fields__collections__Select
|
|
||||||
- fields__collections__Tabs
|
|
||||||
- fields__collections__Tabs2
|
|
||||||
- fields__collections__Text
|
|
||||||
- fields__collections__UI
|
|
||||||
- fields__collections__Upload
|
|
||||||
- live-preview
|
|
||||||
- localization
|
|
||||||
- locked-documents
|
|
||||||
- i18n
|
|
||||||
- plugin-cloud-storage
|
|
||||||
- plugin-form-builder
|
|
||||||
- plugin-nested-docs
|
|
||||||
- plugin-seo
|
|
||||||
- versions
|
|
||||||
- uploads
|
|
||||||
env:
|
|
||||||
SUITE_NAME: ${{ matrix.suite }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Node setup
|
|
||||||
uses: ./.github/actions/setup
|
|
||||||
with:
|
|
||||||
node-version: ${{ env.NODE_VERSION }}
|
|
||||||
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
||||||
pnpm-run-install: false
|
|
||||||
pnpm-restore-cache: false # Full build is restored below
|
|
||||||
pnpm-install-cache-key: pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
||||||
|
|
||||||
- name: Restore build
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ./*
|
|
||||||
key: ${{ github.sha }}-${{ github.run_number }}
|
|
||||||
|
|
||||||
- name: Start LocalStack
|
|
||||||
run: pnpm docker:start
|
|
||||||
if: ${{ matrix.suite == 'plugin-cloud-storage' }}
|
|
||||||
|
|
||||||
- name: Store Playwright's Version
|
|
||||||
run: |
|
|
||||||
# Extract the version number using a more targeted regex pattern with awk
|
|
||||||
PLAYWRIGHT_VERSION=$(pnpm ls @playwright/test --depth=0 | awk '/@playwright\/test/ {print $2}')
|
|
||||||
echo "Playwright's Version: $PLAYWRIGHT_VERSION"
|
|
||||||
echo "PLAYWRIGHT_VERSION=$PLAYWRIGHT_VERSION" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Cache Playwright Browsers for Playwright's Version
|
|
||||||
id: cache-playwright-browsers
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.cache/ms-playwright
|
|
||||||
key: playwright-browsers-${{ env.PLAYWRIGHT_VERSION }}
|
|
||||||
|
|
||||||
- name: Setup Playwright - Browsers and Dependencies
|
|
||||||
if: steps.cache-playwright-browsers.outputs.cache-hit != 'true'
|
|
||||||
run: pnpm exec playwright install --with-deps chromium
|
|
||||||
|
|
||||||
- name: Setup Playwright - Dependencies-only
|
|
||||||
if: steps.cache-playwright-browsers.outputs.cache-hit == 'true'
|
|
||||||
run: pnpm exec playwright install-deps chromium
|
|
||||||
|
|
||||||
- name: E2E Tests
|
|
||||||
uses: nick-fields/retry@v3
|
|
||||||
with:
|
|
||||||
retry_on: any
|
|
||||||
max_attempts: 5
|
|
||||||
timeout_minutes: 20
|
|
||||||
command: PLAYWRIGHT_JSON_OUTPUT_NAME=results_${{ matrix.suite }}.json pnpm test:e2e:prod:ci ${{ matrix.suite }}
|
|
||||||
on_retry_command: pnpm clean:build && pnpm install --no-frozen-lockfile && pnpm build:all
|
|
||||||
env:
|
|
||||||
PLAYWRIGHT_JSON_OUTPUT_NAME: results_${{ matrix.suite }}.json
|
|
||||||
NEXT_TELEMETRY_DISABLED: 1
|
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
if: always()
|
|
||||||
with:
|
|
||||||
name: test-results-${{ matrix.suite }}
|
|
||||||
path: test/test-results/
|
|
||||||
if-no-files-found: ignore
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
# Disabled until this is fixed: https://github.com/daun/playwright-report-summary/issues/156
|
|
||||||
# - uses: daun/playwright-report-summary@v3
|
|
||||||
# with:
|
|
||||||
# report-file: results_${{ matrix.suite }}.json
|
|
||||||
# report-tag: ${{ matrix.suite }}
|
|
||||||
# job-summary: true
|
|
||||||
|
|
||||||
# Build listed templates with packed local packages
|
|
||||||
build-templates:
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
needs: build
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- template: blank
|
|
||||||
database: mongodb
|
|
||||||
- template: website
|
|
||||||
database: mongodb
|
|
||||||
- template: with-payload-cloud
|
|
||||||
database: mongodb
|
|
||||||
- template: with-vercel-mongodb
|
|
||||||
database: mongodb
|
|
||||||
# Postgres
|
|
||||||
- template: with-postgres
|
|
||||||
database: postgres
|
|
||||||
- template: with-vercel-postgres
|
|
||||||
database: postgres
|
|
||||||
|
|
||||||
- template: plugin
|
|
||||||
|
|
||||||
# Re-enable once PG conncection is figured out
|
|
||||||
# - template: with-vercel-website
|
|
||||||
# database: postgres
|
|
||||||
|
|
||||||
name: ${{ matrix.template }}-${{ matrix.database }}
|
|
||||||
|
|
||||||
env:
|
|
||||||
POSTGRES_USER: postgres
|
|
||||||
POSTGRES_PASSWORD: postgres
|
|
||||||
POSTGRES_DB: payloadtests
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Node setup
|
|
||||||
uses: ./.github/actions/setup
|
|
||||||
with:
|
|
||||||
node-version: ${{ env.NODE_VERSION }}
|
|
||||||
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
||||||
pnpm-run-install: false
|
|
||||||
pnpm-restore-cache: false # Full build is restored below
|
|
||||||
pnpm-install-cache-key: pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
||||||
|
|
||||||
- name: Restore build
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ./*
|
|
||||||
key: ${{ github.sha }}-${{ github.run_number }}
|
|
||||||
|
|
||||||
- name: Start PostgreSQL
|
|
||||||
uses: CasperWA/postgresql-action@v1.2
|
|
||||||
with:
|
|
||||||
postgresql version: '14' # See https://hub.docker.com/_/postgres for available versions
|
|
||||||
postgresql db: ${{ env.POSTGRES_DB }}
|
|
||||||
postgresql user: ${{ env.POSTGRES_USER }}
|
|
||||||
postgresql password: ${{ env.POSTGRES_PASSWORD }}
|
|
||||||
if: matrix.database == 'postgres'
|
|
||||||
|
|
||||||
- name: Wait for PostgreSQL
|
|
||||||
run: sleep 30
|
|
||||||
if: matrix.database == 'postgres'
|
|
||||||
|
|
||||||
- name: Configure PostgreSQL
|
|
||||||
run: |
|
|
||||||
psql "postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@localhost:5432/$POSTGRES_DB" -c "CREATE ROLE runner SUPERUSER LOGIN;"
|
|
||||||
psql "postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@localhost:5432/$POSTGRES_DB" -c "SELECT version();"
|
|
||||||
echo "POSTGRES_URL=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@localhost:5432/$POSTGRES_DB" >> $GITHUB_ENV
|
|
||||||
if: matrix.database == 'postgres'
|
|
||||||
|
|
||||||
- name: Start MongoDB
|
|
||||||
uses: supercharge/mongodb-github-action@1.11.0
|
|
||||||
with:
|
|
||||||
mongodb-version: 6.0
|
|
||||||
if: matrix.database == 'mongodb'
|
|
||||||
|
|
||||||
- name: Build Template
|
|
||||||
run: |
|
|
||||||
pnpm run script:pack --dest templates/${{ matrix.template }}
|
|
||||||
pnpm runts scripts/build-template-with-local-pkgs.ts ${{ matrix.template }} $POSTGRES_URL
|
|
||||||
|
|
||||||
tests-type-generation:
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
needs: [changes, build]
|
|
||||||
if: ${{ needs.changes.outputs.needs_tests == 'true' }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Node setup
|
|
||||||
uses: ./.github/actions/setup
|
|
||||||
with:
|
|
||||||
node-version: ${{ env.NODE_VERSION }}
|
|
||||||
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
||||||
pnpm-run-install: false
|
|
||||||
pnpm-restore-cache: false # Full build is restored below
|
|
||||||
pnpm-install-cache-key: pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
||||||
|
|
||||||
- name: Restore build
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ./*
|
|
||||||
key: ${{ github.sha }}-${{ github.run_number }}
|
|
||||||
|
|
||||||
- name: Generate Payload Types
|
|
||||||
run: pnpm dev:generate-types fields
|
|
||||||
|
|
||||||
- name: Generate GraphQL schema file
|
|
||||||
run: pnpm dev:generate-graphql-schema graphql-schema-gen
|
|
||||||
|
|
||||||
all-green:
|
all-green:
|
||||||
name: All Green
|
name: All Green
|
||||||
if: always()
|
if: always()
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-24.04
|
||||||
needs:
|
needs:
|
||||||
- lint
|
- lint
|
||||||
- build
|
|
||||||
- build-templates
|
|
||||||
- tests-unit
|
|
||||||
- tests-int
|
|
||||||
- tests-e2e
|
|
||||||
- tests-types
|
|
||||||
- tests-type-generation
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- if: ${{ always() && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) }}
|
- if: ${{ always() && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) }}
|
||||||
|
|||||||
Reference in New Issue
Block a user