Dummy PR (testing CI) #1
Workflow file for this run
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 (Dev) | |
'on': pull_request | |
jobs: | |
validateWorkflows: | |
name: Validate workflows | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Validate | |
run: npx github-actions-wac validate | |
runs-on: ubuntu-latest | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
validateCommits: | |
name: Validate commit messages | |
if: github.base_ref != 'dev' | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v4 | |
- uses: webiny/action-conventional-commits@v1.3.0 | |
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: 18 | |
- uses: actions/checkout@v4 | |
- uses: webiny/action-conventional-commits@v1.3.0 | |
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 | |
runs-on: ubuntu-latest | |
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: | |
- name: Create global cache key | |
id: global-cache-key | |
run: >- | |
echo "global-cache-key=${{ github.base_ref }}-${{ runner.os | |
}}-$(/bin/date -u "+%m%d")-${{ secrets.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 | |
}}-${{ secrets.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 | |
init: | |
name: Init | |
needs: constants | |
runs-on: webiny-build-packages | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: .webiny/cached-packages | |
key: ${{ needs.constants.outputs.global-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages | |
run: yarn build:quick | |
- uses: actions/cache@v4 | |
with: | |
path: .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: init | |
name: Static code analysis | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: .webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Check code formatting | |
run: yarn prettier:check | |
- name: Check dependencies | |
run: yarn adio | |
- name: Check TS configs | |
run: yarn check-ts-configs | |
- name: ESLint | |
run: yarn eslint | |
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: 18 | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages (full) | |
run: yarn build | |
- name: Check types for Cypress tests | |
run: yarn cy:ts | |
env: | |
NODE_OPTIONS: '--max_old_space_size=4096' | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
jestTestsNoStorage: | |
needs: constants | |
name: ${{ matrix.package.cmd }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
node: | |
- 18 | |
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-dynamodb-to-elasticsearch","id":"api-dynamodb-to-elasticsearch"},{"cmd":"packages/api-headless-cms-ddb","id":"api-headless-cms-ddb"},{"cmd":"packages/api-wcp","id":"api-wcp"},{"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 | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: .webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages | |
run: yarn build:quick | |
- name: Run tests | |
run: yarn test ${{ matrix.package.cmd }} | |
jestTestsDdb: | |
needs: constants | |
name: ${{ matrix.package.cmd }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
node: | |
- 18 | |
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-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 | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: .webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages | |
run: yarn build:quick | |
- name: Run tests | |
run: yarn test ${{ matrix.package.cmd }} | |
jestTestsDdbEs: | |
needs: constants | |
name: ${{ matrix.package.cmd }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
node: | |
- 18 | |
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-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-ddb-es | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"api-headless-cms-ddb-es_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_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: 18 | |
- 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 | |
- uses: actions/cache@v4 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: .webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages | |
run: yarn build:quick | |
- name: Run tests | |
run: yarn test ${{ matrix.package.cmd }} | |
permissions: | |
id-token: write | |
if: needs.constants.outputs.is-fork-pr != 'true' | |
jestTestsDdbOs: | |
needs: constants | |
name: ${{ matrix.package.cmd }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
node: | |
- 18 | |
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-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-ddb-es | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"api-headless-cms-ddb-es_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_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: 18 | |
- 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 | |
- uses: actions/cache@v4 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: .webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages | |
run: yarn build:quick | |
- name: Run tests | |
run: yarn test ${{ matrix.package.cmd }} | |
permissions: | |
id-token: write | |
if: needs.constants.outputs.is-fork-pr != 'true' | |
verdaccioPublish: | |
name: Publish to Verdaccio | |
needs: | |
- init | |
- constants | |
if: needs.constants.outputs.is-fork-pr != 'true' | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.ref }} | |
- uses: actions/cache@v4 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v4 | |
with: | |
path: .webiny/cached-packages | |
key: ${{ needs.constants.outputs.run-cache-key }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages | |
run: yarn build:quick | |
- name: Start Verdaccio local server | |
run: 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 "webiny-bot@webiny.com" | |
- name: Set git username | |
run: git config --global user.name "webiny-bot" | |
- name: Create ".npmrc" file in the project root, with a dummy auth token | |
run: echo '//localhost:4873/:_authToken="dummy-auth-token"' > .npmrc | |
- name: Version and publish to Verdaccio | |
run: yarn release --type=verdaccio | |
- name: Upload verdaccio files | |
uses: actions/upload-artifact@v4 | |
with: | |
name: verdaccio-files | |
retention-days: 1 | |
path: | | |
.verdaccio/ | |
.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: | |
- 18 | |
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 "webiny-bot@webiny.com" | |
- 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 |