Bumps the github_actions group with 2 updates: [pnpm/action-setup](https://github.com/pnpm/action-setup) and [supercharge/mongodb-github-action](https://github.com/supercharge/mongodb-github-action). Updates `pnpm/action-setup` from 3 to 4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pnpm/action-setup/releases">pnpm/action-setup's releases</a>.</em></p> <blockquote> <h2>v4.0.0</h2> <p>An error is thrown if one version of pnpm is specified in the <code>packageManager</code> field of <code>package.json</code> and a different version is specified in the action's settings <a href="https://redirect.github.com/pnpm/action-setup/pull/122">#122</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="fe02b34f77"><code>fe02b34</code></a> docs: bump action-setup version in README</li> <li><a href="bee1f099e5"><code>bee1f09</code></a> feat: throw error when multiple versions specified (<a href="https://redirect.github.com/pnpm/action-setup/issues/122">#122</a>)</li> <li><a href="ce859e384f"><code>ce859e3</code></a> refactor: replace <code>fs-extra</code> with Node.js built-in fs methods (<a href="https://redirect.github.com/pnpm/action-setup/issues/120">#120</a>)</li> <li><a href="2ab6dce4f5"><code>2ab6dce</code></a> docs(README): fix link to LICENSE</li> <li><a href="e280758d01"><code>e280758</code></a> docs(README): update dependency versions (<a href="https://redirect.github.com/pnpm/action-setup/issues/117">#117</a>)</li> <li><a href="129abb77bf"><code>129abb7</code></a> Bump undici from 5.28.2 to 5.28.3 (<a href="https://redirect.github.com/pnpm/action-setup/issues/115">#115</a>)</li> <li>See full diff in <a href="https://github.com/pnpm/action-setup/compare/v3...v4">compare view</a></li> </ul> </details> <br /> Updates `supercharge/mongodb-github-action` from 1.10.0 to 1.11.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/supercharge/mongodb-github-action/releases">supercharge/mongodb-github-action's releases</a>.</em></p> <blockquote> <p>Release 1.11.0</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/supercharge/mongodb-github-action/blob/main/CHANGELOG.md">supercharge/mongodb-github-action's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/superchargejs/mongodb-github-action/compare/v1.10.0...v1.11.0">1.11.0</a> - 2024-05-22</h2> <h3>Added</h3> <ul> <li>added <code>mongodb-container-name</code> input: this option allows you to define the Docker container name</li> </ul> <h3>Fixed</h3> <ul> <li>use the <code>mongo</code> command to interact with MongoDB versions 4.x or lower. Previously, we only checked for MongoDB 4 and would use <code>mongosh</code> for MongoDB 3 (and lower). <a href="https://redirect.github.com/supercharge/mongodb-github-action/pull/61">Thanks to Aravind!</a></li> </ul> <h3>Updated</h3> <ul> <li>bump dependencies</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="5a87bd81f8"><code>5a87bd8</code></a> prepare changelog for 1.11.0</li> <li><a href="7c12fc679c"><code>7c12fc6</code></a> update readme</li> <li><a href="ad73029553"><code>ad73029</code></a> bump mongoose dependency</li> <li><a href="268fb2c93c"><code>268fb2c</code></a> Merge pull request <a href="https://redirect.github.com/supercharge/mongodb-github-action/issues/61">#61</a> from aravindnc/main</li> <li><a href="12b898a9c8"><code>12b898a</code></a> Fix to use mongo client if MongoDB verison is less than or equal to 4.</li> <li><a href="b8277548e0"><code>b827754</code></a> wait 20 seconds</li> <li><a href="5f37c5fb42"><code>5f37c5f</code></a> revert ESLint to 8.x</li> <li><a href="fcc7443a6b"><code>fcc7443</code></a> bump verions</li> <li><a href="fde299bc70"><code>fde299b</code></a> bump deps</li> <li><a href="9ceda80ede"><code>9ceda80</code></a> bump versions of GitHub Actions</li> <li>Additional commits viewable in <a href="https://github.com/supercharge/mongodb-github-action/compare/1.10.0...1.11.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
565 lines
16 KiB
YAML
565 lines
16 KiB
YAML
name: build
|
|
|
|
on:
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- reopened
|
|
- synchronize
|
|
push:
|
|
branches:
|
|
- main
|
|
- beta
|
|
|
|
concurrency:
|
|
# <workflow_name>-<branch_name>-<true || commit_sha if branch is protected>
|
|
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref_protected && github.sha || ''}}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
NODE_VERSION: 18.20.2
|
|
PNPM_VERSION: 9.7.0
|
|
DO_NOT_TRACK: 1 # Disable Turbopack telemetry
|
|
NEXT_TELEMETRY_DISABLED: 1 # Disable Next telemetry
|
|
|
|
jobs:
|
|
changes:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
pull-requests: read
|
|
outputs:
|
|
needs_build: ${{ steps.filter.outputs.needs_build }}
|
|
templates: ${{ steps.filter.outputs.templates }}
|
|
steps:
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 25
|
|
- uses: dorny/paths-filter@v3
|
|
id: filter
|
|
with:
|
|
filters: |
|
|
needs_build:
|
|
- '.github/workflows/**'
|
|
- 'packages/**'
|
|
- 'test/**'
|
|
- 'pnpm-lock.yaml'
|
|
- 'package.json'
|
|
templates:
|
|
- 'templates/**'
|
|
- name: Log all filter results
|
|
run: |
|
|
echo "needs_build: ${{ steps.filter.outputs.needs_build }}"
|
|
echo "templates: ${{ steps.filter.outputs.templates }}"
|
|
|
|
lint:
|
|
if: >
|
|
github.event_name == 'pull_request' && !contains(github.event.pull_request.title, 'no-lint') && !contains(github.event.pull_request.title, 'skip-lint')
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Setup Node@${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: ${{ env.PNPM_VERSION }}
|
|
run_install: false
|
|
|
|
- name: Get pnpm store directory
|
|
shell: bash
|
|
run: |
|
|
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
|
|
|
|
- name: Setup pnpm cache
|
|
uses: actions/cache@v4
|
|
timeout-minutes: 720
|
|
with:
|
|
path: ${{ env.STORE_PATH }}
|
|
key: pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
pnpm-store-
|
|
pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
|
|
- run: pnpm install
|
|
- name: Lint staged
|
|
run: |
|
|
git diff --name-only --diff-filter=d origin/${GITHUB_BASE_REF}...${GITHUB_SHA}
|
|
npx lint-staged --diff="origin/${GITHUB_BASE_REF}...${GITHUB_SHA}"
|
|
|
|
build:
|
|
needs: changes
|
|
if: ${{ needs.changes.outputs.needs_build == 'true' }}
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 25
|
|
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Setup Node@${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: ${{ env.PNPM_VERSION }}
|
|
run_install: false
|
|
|
|
- name: Get pnpm store directory
|
|
shell: bash
|
|
run: |
|
|
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
|
|
|
|
- name: Setup pnpm cache
|
|
uses: actions/cache@v4
|
|
timeout-minutes: 720
|
|
with:
|
|
path: ${{ env.STORE_PATH }}
|
|
key: pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
pnpm-store-
|
|
pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
|
|
- run: pnpm install
|
|
- run: pnpm run build:all
|
|
env:
|
|
DO_NOT_TRACK: 1 # Disable Turbopack telemetry
|
|
|
|
- name: Cache build
|
|
uses: actions/cache@v4
|
|
timeout-minutes: 10
|
|
with:
|
|
path: ./*
|
|
key: ${{ github.sha }}-${{ github.run_number }}
|
|
|
|
tests-unit:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
|
|
steps:
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Setup Node@${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: ${{ env.PNPM_VERSION }}
|
|
run_install: false
|
|
|
|
- name: Restore build
|
|
uses: actions/cache@v4
|
|
timeout-minutes: 10
|
|
with:
|
|
path: ./*
|
|
key: ${{ github.sha }}-${{ github.run_number }}
|
|
|
|
- name: Unit Tests
|
|
run: pnpm test:unit
|
|
env:
|
|
NODE_OPTIONS: --max-old-space-size=8096
|
|
|
|
tests-int:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
database:
|
|
- mongodb
|
|
- postgres
|
|
- postgres-custom-schema
|
|
- postgres-uuid
|
|
- supabase
|
|
- sqlite
|
|
env:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: payloadtests
|
|
AWS_ENDPOINT_URL: http://127.0.0.1:4566
|
|
AWS_ACCESS_KEY_ID: localstack
|
|
AWS_SECRET_ACCESS_KEY: localstack
|
|
AWS_REGION: us-east-1
|
|
|
|
steps:
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Setup Node@${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: ${{ env.PNPM_VERSION }}
|
|
run_install: false
|
|
|
|
- name: Restore build
|
|
uses: actions/cache@v4
|
|
timeout-minutes: 10
|
|
with:
|
|
path: ./*
|
|
key: ${{ github.sha }}-${{ github.run_number }}
|
|
|
|
- name: Start LocalStack
|
|
run: pnpm docker:start
|
|
|
|
- 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: startsWith(matrix.database, 'postgres')
|
|
|
|
- name: Install Supabase CLI
|
|
uses: supabase/setup-cli@v1
|
|
with:
|
|
version: latest
|
|
if: matrix.database == 'supabase'
|
|
|
|
- name: Initialize Supabase
|
|
run: |
|
|
supabase init
|
|
supabase start
|
|
if: matrix.database == 'supabase'
|
|
|
|
- name: Wait for PostgreSQL
|
|
run: sleep 30
|
|
if: startsWith(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: startsWith(matrix.database, 'postgres')
|
|
|
|
- name: Configure PostgreSQL with custom schema
|
|
run: |
|
|
psql "postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@localhost:5432/$POSTGRES_DB" -c "CREATE SCHEMA custom;"
|
|
if: matrix.database == 'postgres-custom-schema'
|
|
|
|
- name: Configure Supabase
|
|
run: |
|
|
echo "POSTGRES_URL=postgresql://postgres:postgres@127.0.0.1:54322/postgres" >> $GITHUB_ENV
|
|
if: matrix.database == 'supabase'
|
|
|
|
- name: Integration Tests
|
|
run: pnpm test:int
|
|
env:
|
|
NODE_OPTIONS: --max-old-space-size=8096
|
|
PAYLOAD_DATABASE: ${{ matrix.database }}
|
|
POSTGRES_URL: ${{ env.POSTGRES_URL }}
|
|
|
|
tests-e2e:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
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__1
|
|
- admin__e2e__2
|
|
- admin-root
|
|
- auth
|
|
- field-error-states
|
|
- fields-relationship
|
|
- fields
|
|
- fields__collections__Blocks
|
|
- fields__collections__Array
|
|
- fields__collections__Relationship
|
|
- fields__collections__RichText
|
|
- fields__collections__Lexical__e2e__main
|
|
- fields__collections__Lexical__e2e__blocks
|
|
- fields__collections__Date
|
|
- fields__collections__Number
|
|
- fields__collections__Point
|
|
- fields__collections__Tabs
|
|
- fields__collections__Text
|
|
- fields__collections__Upload
|
|
- live-preview
|
|
- localization
|
|
- i18n
|
|
- plugin-cloud-storage
|
|
- plugin-form-builder
|
|
- plugin-nested-docs
|
|
- plugin-seo
|
|
- versions
|
|
- uploads
|
|
env:
|
|
SUITE_NAME: ${{ matrix.suite }}
|
|
steps:
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Setup Node@${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: ${{ env.PNPM_VERSION }}
|
|
run_install: false
|
|
|
|
- name: Restore build
|
|
uses: actions/cache@v4
|
|
timeout-minutes: 10
|
|
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
|
|
run: PLAYWRIGHT_JSON_OUTPUT_NAME=results_${{ matrix.suite }}.json pnpm test:e2e ${{ matrix.suite }}
|
|
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
|
|
|
|
app-build-with-packed:
|
|
if: false # Disable until package resolution in tgzs can be figured out
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
|
|
steps:
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Setup Node@${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: ${{ env.PNPM_VERSION }}
|
|
run_install: false
|
|
|
|
- name: Restore build
|
|
uses: actions/cache@v4
|
|
timeout-minutes: 10
|
|
with:
|
|
path: ./*
|
|
key: ${{ github.sha }}-${{ github.run_number }}
|
|
|
|
- name: Start MongoDB
|
|
uses: supercharge/mongodb-github-action@1.11.0
|
|
with:
|
|
mongodb-version: 6.0
|
|
|
|
- name: Pack and build app
|
|
run: |
|
|
set -ex
|
|
pnpm run script:pack --dest templates/blank
|
|
cd templates/blank
|
|
cp .env.example .env
|
|
ls -la
|
|
pnpm add ./*.tgz --ignore-workspace
|
|
pnpm install --ignore-workspace --no-frozen-lockfile
|
|
cat package.json
|
|
pnpm run build
|
|
|
|
tests-type-generation:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
|
|
steps:
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Setup Node@${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: ${{ env.PNPM_VERSION }}
|
|
run_install: false
|
|
|
|
- name: Restore build
|
|
uses: actions/cache@v4
|
|
timeout-minutes: 10
|
|
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
|
|
|
|
templates:
|
|
needs: changes
|
|
if: false # Disable until templates are updated for 3.0
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
template: [blank, website, ecommerce]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 25
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Setup Node@${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Start MongoDB
|
|
uses: supercharge/mongodb-github-action@1.11.0
|
|
with:
|
|
mongodb-version: 6.0
|
|
|
|
- name: Build Template
|
|
run: |
|
|
cd templates/${{ matrix.template }}
|
|
cp .env.example .env
|
|
yarn install
|
|
yarn build
|
|
yarn generate:types
|
|
|
|
generated-templates:
|
|
needs: build
|
|
if: false # Needs to pull in tgz files from build
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
# https://github.com/actions/virtual-environments/issues/1187
|
|
- name: tune linux network
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Setup Node@${{ env.NODE_VERSION }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: ${{ env.PNPM_VERSION }}
|
|
run_install: false
|
|
|
|
- name: Restore build
|
|
uses: actions/cache@v4
|
|
timeout-minutes: 10
|
|
with:
|
|
path: ./*
|
|
key: ${{ github.sha }}-${{ github.run_number }}
|
|
|
|
- name: Build all generated templates
|
|
run: pnpm tsx ./scripts/build-generated-templates.ts
|
|
|
|
all-green:
|
|
name: All Green
|
|
if: always()
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- lint
|
|
- build
|
|
- tests-unit
|
|
- tests-int
|
|
- tests-e2e
|
|
|
|
steps:
|
|
- if: ${{ always() && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) }}
|
|
run: exit 1
|
|
|
|
publish-canary:
|
|
name: Publish Canary
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- all-green
|
|
|
|
steps:
|
|
# debug github.ref output
|
|
- run: |
|
|
echo github.ref: ${{ github.ref }}
|
|
echo isBeta: ${{ github.ref == 'refs/heads/beta' }}
|
|
echo isMain: ${{ github.ref == 'refs/heads/main' }}
|