fix(app-record-locking): decorate singleton entry form #7945
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This file was automatically generated by github-actions-wac. | |
# DO NOT MODIFY IT BY HAND. Instead, modify the source *.wac.ts file(s) | |
# and run "github-actions-wac build" (or "ghawac build") to regenerate this file. | |
# For more information, run "github-actions-wac --help". | |
name: Pull Requests | |
'on': pull_request | |
concurrency: | |
group: pr-${{ github.event.pull_request.number }} | |
cancel-in-progress: true | |
jobs: | |
validateCommits: | |
name: Validate commit messages | |
if: github.base_ref != 'dev' | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: actions/checkout@v4 | |
- uses: webiny/[email protected] | |
runs-on: ubuntu-latest | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
validateCommitsDev: | |
name: Validate commit messages (dev branch, 'feat' commits not allowed) | |
if: github.base_ref == 'dev' | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: actions/checkout@v4 | |
- uses: webiny/[email protected] | |
with: | |
allowed-commit-types: fix,docs,style,refactor,test,build,perf,ci,chore,revert,merge,wip | |
runs-on: ubuntu-latest | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
constants: | |
name: Create constants | |
outputs: | |
global-cache-key: ${{ steps.global-cache-key.outputs.global-cache-key }} | |
run-cache-key: ${{ steps.run-cache-key.outputs.run-cache-key }} | |
is-fork-pr: ${{ steps.is-fork-pr.outputs.is-fork-pr }} | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Create global cache key | |
id: global-cache-key | |
run: >- | |
echo "global-cache-key=${{ github.base_ref }}-${{ runner.os | |
}}-$(/bin/date -u "+%m%d")-${{ vars.RANDOM_CACHE_KEY_SUFFIX }}" >> | |
$GITHUB_OUTPUT | |
- name: Create workflow run cache key | |
id: run-cache-key | |
run: >- | |
echo "run-cache-key=${{ github.run_id }}-${{ github.run_attempt }}-${{ | |
vars.RANDOM_CACHE_KEY_SUFFIX }}" >> $GITHUB_OUTPUT | |
- name: Is a PR from a fork | |
id: is-fork-pr | |
run: >- | |
echo "is-fork-pr=${{ github.event.pull_request.head.repo.fork }}" >> | |
$GITHUB_OUTPUT | |
runs-on: ubuntu-latest | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
build: | |
name: Build | |
needs: constants | |
runs-on: webiny-build-packages | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: actions/checkout@v4 | |
with: | |
path: ${{ github.base_ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.webiny/cached-packages | |
key: ${{ needs.constants.outputs.global-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
working-directory: ${{ github.base_ref }} | |
- name: Build packages | |
run: yarn build:quick | |
working-directory: ${{ github.base_ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
staticCodeAnalysis: | |
needs: | |
- constants | |
- build | |
name: Static code analysis | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: actions/checkout@v4 | |
with: | |
path: ${{ github.base_ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
working-directory: ${{ github.base_ref }} | |
- name: Check code formatting | |
run: yarn prettier:check | |
working-directory: ${{ github.base_ref }} | |
- name: Check dependencies | |
run: yarn adio | |
working-directory: ${{ github.base_ref }} | |
- name: Check TS configs | |
run: yarn check-ts-configs | |
working-directory: ${{ github.base_ref }} | |
- name: ESLint | |
run: yarn eslint | |
working-directory: ${{ github.base_ref }} | |
runs-on: ubuntu-latest | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
staticCodeAnalysisTs: | |
name: Static code analysis (TypeScript) | |
runs-on: webiny-build-packages | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: actions/checkout@v4 | |
with: | |
path: ${{ github.base_ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --immutable | |
working-directory: ${{ github.base_ref }} | |
- name: Build packages (full) | |
run: yarn build | |
working-directory: ${{ github.base_ref }} | |
- name: Check types for Cypress tests | |
run: yarn cy:ts | |
working-directory: ${{ github.base_ref }} | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
jestTestsNoStorage: | |
needs: | |
- constants | |
- build | |
name: ${{ matrix.package.cmd }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
node: | |
- 20 | |
package: >- | |
${{ | |
fromJson('[{"cmd":"packages/api","id":"api"},{"cmd":"packages/api-admin-settings","id":"api-admin-settings"},{"cmd":"packages/api-authentication","id":"api-authentication"},{"cmd":"packages/api-authentication-cognito","id":"api-authentication-cognito"},{"cmd":"packages/api-headless-cms-ddb","id":"api-headless-cms-ddb"},{"cmd":"packages/api-record-locking","id":"api-record-locking"},{"cmd":"packages/api-wcp","id":"api-wcp"},{"cmd":"packages/api-websockets","id":"api-websockets"},{"cmd":"packages/app-aco","id":"app-aco"},{"cmd":"packages/app-admin","id":"app-admin"},{"cmd":"packages/cwp-template-aws","id":"cwp-template-aws"},{"cmd":"packages/data-migration","id":"data-migration"},{"cmd":"packages/db-dynamodb","id":"db-dynamodb"},{"cmd":"packages/form","id":"form"},{"cmd":"packages/handler","id":"handler"},{"cmd":"packages/handler-aws","id":"handler-aws"},{"cmd":"packages/handler-graphql","id":"handler-graphql"},{"cmd":"packages/handler-logs","id":"handler-logs"},{"cmd":"packages/ioc","id":"ioc"},{"cmd":"packages/lexical-converter","id":"lexical-converter"},{"cmd":"packages/plugins","id":"plugins"},{"cmd":"packages/pubsub","id":"pubsub"},{"cmd":"packages/react-composition","id":"react-composition"},{"cmd":"packages/react-properties","id":"react-properties"},{"cmd":"packages/react-rich-text-lexical-renderer","id":"react-rich-text-lexical-renderer"},{"cmd":"packages/utils","id":"utils"},{"cmd":"packages/validation","id":"validation"}]') | |
}} | |
runs-on: ${{ matrix.os }} | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
AWS_REGION: eu-central-1 | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: actions/checkout@v4 | |
with: | |
path: ${{ github.base_ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
working-directory: ${{ github.base_ref }} | |
- name: Build packages | |
run: yarn build:quick | |
working-directory: ${{ github.base_ref }} | |
- name: Run tests | |
run: yarn test ${{ matrix.package.cmd }} | |
working-directory: ${{ github.base_ref }} | |
jestTestsDdb: | |
needs: | |
- constants | |
- build | |
name: ${{ matrix.package.cmd }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
node: | |
- 20 | |
package: >- | |
${{ fromJson('[{"cmd":"packages/api-aco | |
--storage=ddb","storage":"ddb","id":"api-aco_ddb"},{"cmd":"packages/api-apw | |
--storage=ddb","storage":"ddb","id":"api-apw_ddb"},{"cmd":"packages/api-audit-logs | |
--storage=ddb","storage":"ddb","id":"api-audit-logs_ddb"},{"cmd":"packages/api-file-manager | |
--storage=ddb","storage":"ddb","id":"api-file-manager_ddb"},{"cmd":"packages/api-form-builder | |
--storage=ddb","storage":"ddb","id":"api-form-builder_ddb"},{"cmd":"packages/api-headless-cms | |
--storage=ddb","storage":"ddb","id":"api-headless-cms_ddb"},{"cmd":"packages/api-headless-cms-aco | |
--storage=ddb","storage":"ddb","id":"api-headless-cms-aco_ddb"},{"cmd":"packages/api-headless-cms-bulk-actions | |
--storage=ddb","storage":"ddb","id":"api-headless-cms-bulk-actions_ddb"},{"cmd":"packages/api-headless-cms-import-export | |
--storage=ddb","storage":"ddb","id":"api-headless-cms-import-export_ddb"},{"cmd":"packages/api-i18n | |
--storage=ddb","storage":"ddb","id":"api-i18n_ddb"},{"cmd":"packages/api-mailer | |
--storage=ddb","storage":"ddb","id":"api-mailer_ddb"},{"cmd":"packages/api-page-builder | |
--storage=ddb","storage":"ddb","id":"api-page-builder_ddb"},{"cmd":"packages/api-page-builder-aco | |
--storage=ddb","storage":"ddb","id":"api-page-builder-aco_ddb"},{"cmd":"packages/api-page-builder-import-export | |
--storage=ddb","storage":"ddb","id":"api-page-builder-import-export_ddb"},{"cmd":"packages/api-prerendering-service | |
--storage=ddb","storage":"ddb","id":"api-prerendering-service_ddb"},{"cmd":"packages/api-security | |
--storage=ddb","storage":"ddb","id":"api-security_ddb"},{"cmd":"packages/api-security-cognito | |
--storage=ddb","storage":"ddb","id":"api-security-cognito_ddb"},{"cmd":"packages/api-tenancy | |
--storage=ddb","storage":"ddb","id":"api-tenancy_ddb"},{"cmd":"packages/api-tenant-manager | |
--storage=ddb","storage":"ddb","id":"api-tenant-manager_ddb"},{"cmd":"packages/tasks | |
--storage=ddb","storage":"ddb","id":"tasks_ddb"}]') }} | |
runs-on: ${{ matrix.os }} | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
AWS_REGION: eu-central-1 | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: actions/checkout@v4 | |
with: | |
path: ${{ github.base_ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
working-directory: ${{ github.base_ref }} | |
- name: Build packages | |
run: yarn build:quick | |
working-directory: ${{ github.base_ref }} | |
- name: Run tests | |
run: yarn test ${{ matrix.package.cmd }} | |
working-directory: ${{ github.base_ref }} | |
jestTestsDdbEs: | |
needs: | |
- constants | |
- build | |
name: ${{ matrix.package.cmd }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
node: | |
- 20 | |
package: >- | |
${{ fromJson('[{"cmd":"packages/api-aco | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-aco_ddb-es_ddb"},{"cmd":"packages/api-audit-logs | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-audit-logs_ddb-es_ddb"},{"cmd":"packages/api-dynamodb-to-elasticsearch | |
--storage=ddb-es,ddb","storage":["ddb-es"],"id":"api-dynamodb-to-elasticsearch_ddb-es_ddb"},{"cmd":"packages/api-elasticsearch","storage":["ddb-es","ddb-os"],"id":"api-elasticsearch"},{"cmd":"packages/api-elasticsearch-tasks | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-elasticsearch-tasks_ddb-es_ddb"},{"cmd":"packages/api-file-manager | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-file-manager_ddb-es_ddb"},{"cmd":"packages/api-form-builder | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-form-builder_ddb-es_ddb"},{"cmd":"packages/api-form-builder-so-ddb-es | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-form-builder-so-ddb-es_ddb-es_ddb"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-headless-cms_ddb-es_ddb"},{"cmd":"packages/api-headless-cms-aco | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-headless-cms-aco_ddb-es_ddb"},{"cmd":"packages/api-headless-cms-bulk-actions | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-headless-cms-bulk-actions_ddb-es_ddb"},{"cmd":"packages/api-headless-cms-ddb-es | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-headless-cms-ddb-es_ddb-es_ddb"},{"cmd":"packages/api-headless-cms-es-tasks | |
--storage=ddb-es,ddb","storage":["ddb-es"],"id":"api-headless-cms-es-tasks_ddb-es_ddb"},{"cmd":"packages/api-headless-cms-import-export | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-headless-cms-import-export_ddb-es_ddb"},{"cmd":"packages/api-mailer | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-mailer_ddb-es_ddb"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-page-builder_ddb-es_ddb"},{"cmd":"packages/api-page-builder-aco | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-page-builder-aco_ddb-es_ddb"},{"cmd":"packages/api-page-builder-so-ddb-es | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-page-builder-so-ddb-es_ddb-es_ddb"},{"cmd":"packages/migrations","storage":["ddb-es","ddb-os"],"id":"migrations"},{"cmd":"packages/tasks | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"tasks_ddb-es_ddb"}]') | |
}} | |
runs-on: ${{ matrix.os }} | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
AWS_REGION: eu-central-1 | |
AWS_ELASTIC_SEARCH_DOMAIN_NAME: ${{ secrets.AWS_ELASTIC_SEARCH_DOMAIN_NAME }} | |
ELASTIC_SEARCH_ENDPOINT: ${{ secrets.ELASTIC_SEARCH_ENDPOINT }} | |
ELASTIC_SEARCH_INDEX_PREFIX: ${{ matrix.package.id }} | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::726952677045:role/GitHubActionsWebinyJs | |
aws-region: eu-central-1 | |
- uses: actions/checkout@v4 | |
with: | |
path: ${{ github.base_ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
working-directory: ${{ github.base_ref }} | |
- name: Build packages | |
run: yarn build:quick | |
working-directory: ${{ github.base_ref }} | |
- name: Run tests | |
run: yarn test ${{ matrix.package.cmd }} | |
working-directory: ${{ github.base_ref }} | |
permissions: | |
id-token: write | |
if: needs.constants.outputs.is-fork-pr != 'true' | |
jestTestsDdbOs: | |
needs: | |
- constants | |
- build | |
name: ${{ matrix.package.cmd }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
node: | |
- 20 | |
package: >- | |
${{ fromJson('[{"cmd":"packages/api-aco | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-aco_ddb-os_ddb"},{"cmd":"packages/api-audit-logs | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-audit-logs_ddb-os_ddb"},{"cmd":"packages/api-dynamodb-to-elasticsearch | |
--storage=ddb-os,ddb","storage":["ddb-os"],"id":"api-dynamodb-to-elasticsearch_ddb-os_ddb"},{"cmd":"packages/api-elasticsearch","storage":["ddb-es","ddb-os"],"id":"api-elasticsearch"},{"cmd":"packages/api-elasticsearch-tasks | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-elasticsearch-tasks_ddb-os_ddb"},{"cmd":"packages/api-file-manager | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-file-manager_ddb-os_ddb"},{"cmd":"packages/api-form-builder | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-form-builder_ddb-os_ddb"},{"cmd":"packages/api-form-builder-so-ddb-es | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-form-builder-so-ddb-es_ddb-os_ddb"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-headless-cms_ddb-os_ddb"},{"cmd":"packages/api-headless-cms-aco | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-headless-cms-aco_ddb-os_ddb"},{"cmd":"packages/api-headless-cms-bulk-actions | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-headless-cms-bulk-actions_ddb-os_ddb"},{"cmd":"packages/api-headless-cms-ddb-es | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-headless-cms-ddb-es_ddb-os_ddb"},{"cmd":"packages/api-headless-cms-es-tasks | |
--storage=ddb-os,ddb","storage":["ddb-os"],"id":"api-headless-cms-es-tasks_ddb-os_ddb"},{"cmd":"packages/api-headless-cms-import-export | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-headless-cms-import-export_ddb-os_ddb"},{"cmd":"packages/api-mailer | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-mailer_ddb-os_ddb"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-page-builder_ddb-os_ddb"},{"cmd":"packages/api-page-builder-aco | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-page-builder-aco_ddb-os_ddb"},{"cmd":"packages/api-page-builder-so-ddb-es | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-page-builder-so-ddb-es_ddb-os_ddb"},{"cmd":"packages/migrations","storage":["ddb-es","ddb-os"],"id":"migrations"},{"cmd":"packages/tasks | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"tasks_ddb-os_ddb"}]') | |
}} | |
runs-on: ${{ matrix.os }} | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
AWS_REGION: eu-central-1 | |
AWS_ELASTIC_SEARCH_DOMAIN_NAME: ${{ secrets.AWS_OPEN_SEARCH_DOMAIN_NAME }} | |
ELASTIC_SEARCH_ENDPOINT: ${{ secrets.OPEN_SEARCH_ENDPOINT }} | |
ELASTIC_SEARCH_INDEX_PREFIX: ${{ matrix.package.id }} | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::726952677045:role/GitHubActionsWebinyJs | |
aws-region: eu-central-1 | |
- uses: actions/checkout@v4 | |
with: | |
path: ${{ github.base_ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
working-directory: ${{ github.base_ref }} | |
- name: Build packages | |
run: yarn build:quick | |
working-directory: ${{ github.base_ref }} | |
- name: Run tests | |
run: yarn test ${{ matrix.package.cmd }} | |
working-directory: ${{ github.base_ref }} | |
permissions: | |
id-token: write | |
if: needs.constants.outputs.is-fork-pr != 'true' | |
verdaccioPublish: | |
name: Publish to Verdaccio | |
needs: | |
- constants | |
- build | |
if: needs.constants.outputs.is-fork-pr != 'true' | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.ref }} | |
path: ${{ github.base_ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ github.base_ref }}/.webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
working-directory: ${{ github.base_ref }} | |
- name: Build packages | |
run: yarn build:quick | |
working-directory: ${{ github.base_ref }} | |
- name: Start Verdaccio local server | |
run: npx pm2 start verdaccio -- -c .verdaccio.yaml | |
working-directory: ${{ github.base_ref }} | |
- name: Configure NPM to use local registry | |
run: npm config set registry http://localhost:4873 | |
working-directory: ${{ github.base_ref }} | |
- name: Set git email | |
run: git config --global user.email "[email protected]" | |
working-directory: ${{ github.base_ref }} | |
- name: Set git username | |
run: git config --global user.name "webiny-bot" | |
working-directory: ${{ github.base_ref }} | |
- name: Create ".npmrc" file in the project root, with a dummy auth token | |
run: echo '//localhost:4873/:_authToken="dummy-auth-token"' > .npmrc | |
working-directory: ${{ github.base_ref }} | |
- name: Version and publish to Verdaccio | |
run: yarn release --type=verdaccio | |
working-directory: ${{ github.base_ref }} | |
- name: Upload verdaccio files | |
uses: actions/upload-artifact@v4 | |
with: | |
name: verdaccio-files | |
retention-days: 1 | |
include-hidden-files: true | |
path: |- | |
${{ github.base_ref }}/.verdaccio/ | |
${{ github.base_ref }}/.verdaccio.yaml | |
runs-on: ubuntu-latest | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
testCreateWebinyProject: | |
name: Test "create-webiny-project" | |
needs: verdaccioPublish | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
node: | |
- 20 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: verdaccio-files | |
path: verdaccio-files | |
- name: Start Verdaccio local server | |
working-directory: verdaccio-files | |
run: >- | |
yarn add pm2 verdaccio && npx pm2 start verdaccio -- -c | |
.verdaccio.yaml | |
- name: Configure NPM to use local registry | |
run: npm config set registry http://localhost:4873 | |
- name: Set git email | |
run: git config --global user.email "[email protected]" | |
- name: Set git username | |
run: git config --global user.name "webiny-bot" | |
- name: Disable Webiny telemetry | |
run: > | |
mkdir ~/.webiny && echo '{ "id": "ci", "telemetry": false }' > | |
~/.webiny/config | |
- name: Create a new Webiny project | |
run: > | |
npx create-webiny-project@local-npm test-project --tag local-npm | |
--no-interactive --assign-to-yarnrc | |
'{"npmRegistryServer":"http://localhost:4873","unsafeHttpWhitelist":["localhost"]}' | |
--template-options '{"region":"eu-central-1"}' | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false |