CI: Further Parallelize Execution Of Jest Tests #7950
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: 18 | |
- 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: 18 | |
- 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: 18 | |
- 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: 18 | |
- 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: 18 | |
- 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: 18 | |
- 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: | |
- 18 | |
package: >- | |
${{ | |
fromJson('[{"cmd":"packages/api","id":"806497aaa729e8d39f59792bcfb12b26"},{"cmd":"packages/api-admin-settings","id":"31140e7ea9283c9db32ec5f905ce2a1e"},{"cmd":"packages/api-authentication","id":"0eaf9f853f122e4ab215bf49d39f3edc"},{"cmd":"packages/api-authentication-cognito","id":"dfb5e1fcea213538a9730314cb5e7d06"},{"cmd":"packages/api-headless-cms-ddb","id":"5333e1fe6c2b8f5bbcb101a446419c3e"},{"cmd":"packages/api-record-locking","id":"9340c019a5369ea1aa55f7ed28b09f48"},{"cmd":"packages/api-wcp","id":"77ff8a0a075e8d9f7e25001ea64c6c9e"},{"cmd":"packages/api-websockets","id":"fd704b97c31f78a886b342babd344d33"},{"cmd":"packages/app-aco","id":"dddb66beffe2e54804d5bdedd2b423cb"},{"cmd":"packages/app-admin","id":"53bbef747a26e831904585bcfdd845f7"},{"cmd":"packages/cwp-template-aws","id":"846572f41c9427974a577bb95257d019"},{"cmd":"packages/data-migration","id":"294257fffed0174f169b2c812e16258e"},{"cmd":"packages/db-dynamodb","id":"5cb733de265d7bbda981fce60f2a8962"},{"cmd":"packages/form","id":"5707e699d8a4d3b8ee1954c070a50617"},{"cmd":"packages/handler","id":"1dad17bbf61657b4308250e8293cb5dd"},{"cmd":"packages/handler-aws","id":"2a5bd44c5f2a4290c43f9021bbc705a5"},{"cmd":"packages/handler-graphql","id":"74884166fb2bf383da482fb78b18b704"},{"cmd":"packages/handler-logs","id":"ca9a7e2ed32de50aff66c839f0003352"},{"cmd":"packages/ioc","id":"af22b6d7d245321d64d4b714d03ef3e1"},{"cmd":"packages/lexical-converter","id":"52e3bb3ea633bd27d5bab8be976cd16f"},{"cmd":"packages/plugins","id":"c91537eaa40845d816d0d9f39e66018b"},{"cmd":"packages/pubsub","id":"fc14c28c51c537a7d9edd33d73ae29e2"},{"cmd":"packages/react-composition","id":"428b8a3187fe275cb76da6bad0ba3918"},{"cmd":"packages/react-properties","id":"7578e63dcaa1ac66fed4a8dd936a9285"},{"cmd":"packages/react-rich-text-lexical-renderer","id":"452451b34eb7e0134e99b0706e5eb076"},{"cmd":"packages/utils","id":"696ceb17e38e4a274d4a149d24513b78"},{"cmd":"packages/validation","id":"9c68da33792a1214ae45e040a2830cd7"}]') | |
}} | |
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 | |
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: | |
- 18 | |
package: >- | |
${{ fromJson('[{"cmd":"packages/api-aco | |
--storage=ddb","storage":"ddb","id":"5595b4f3460fb2a019066177bd6489f3"},{"cmd":"packages/api-apw | |
--storage=ddb","storage":"ddb","id":"04462239e1f3509b08f511de460971ec"},{"cmd":"packages/api-audit-logs | |
--storage=ddb","storage":"ddb","id":"47680aa68a1a3951f1117c736e150e45"},{"cmd":"packages/api-file-manager | |
--storage=ddb","storage":"ddb","id":"9b6eee1ff7cbf9a3d367818705cc4189"},{"cmd":"packages/api-form-builder | |
--storage=ddb","storage":"ddb","id":"980a9aebb5ec0cab057422364a60493b"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=1/10","storage":"ddb","id":"9efec206fae3cf8e70b1812d1f2fc5fd"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=2/10","storage":"ddb","id":"eb10ef3535ef5b09fb10cf8003b1cb92"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=3/10","storage":"ddb","id":"9d90381e54abdfabba3ed39327b11e91"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=4/10","storage":"ddb","id":"93b7449f86cf72fb874329524c43c19c"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=5/10","storage":"ddb","id":"9172f790d53790a00920062c77c8cf73"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=6/10","storage":"ddb","id":"d5b2c7729dc62eed44d94483ed626941"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=7/10","storage":"ddb","id":"16833e55f7747218af85904921b857d2"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=8/10","storage":"ddb","id":"5379ab8c5ed802f577d7a8b1f044e020"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=9/10","storage":"ddb","id":"34f87bcb3053d9675fe1e80c801895db"},{"cmd":"packages/api-headless-cms | |
--storage=ddb | |
--shard=10/10","storage":"ddb","id":"56a97453b55d770ac3f713f37cde05c8"},{"cmd":"packages/api-headless-cms-aco | |
--storage=ddb","storage":"ddb","id":"718c110b004c59ed7d13cbcc875a6b64"},{"cmd":"packages/api-headless-cms-tasks | |
--storage=ddb","storage":"ddb","id":"d2c31fa2375669d0c176d70c946a6108"},{"cmd":"packages/api-i18n | |
--storage=ddb","storage":"ddb","id":"943e15fe21c847b164f9413f8baf97b7"},{"cmd":"packages/api-mailer | |
--storage=ddb","storage":"ddb","id":"2cc1dc707a39e72f4e5d9a140677ca39"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=1/10","storage":"ddb","id":"1931e579350f473d4926df8837aa5935"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=2/10","storage":"ddb","id":"028af9c7894382f20cba6b7e6aed1fe4"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=3/10","storage":"ddb","id":"7f6649b3ba90ab0b4eef9f3d1ce36f6c"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=4/10","storage":"ddb","id":"bff6a32572661dbb18f2021c50851822"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=5/10","storage":"ddb","id":"edc153e67a6bf6c4463c12b6f4cc6bd5"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=6/10","storage":"ddb","id":"d201f415df247b05aeba9b83f5bc52da"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=7/10","storage":"ddb","id":"139ee6b2ff4f4a127a5e271a245e1280"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=8/10","storage":"ddb","id":"74d2e9216b883f7bcc01bba2f3f6e0d4"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=9/10","storage":"ddb","id":"483e74e828f22b5c83b2e8cde7c629c4"},{"cmd":"packages/api-page-builder | |
--storage=ddb | |
--shard=10/10","storage":"ddb","id":"67be11dc2c65991cf1694599c32e7b8d"},{"cmd":"packages/api-page-builder-aco | |
--storage=ddb","storage":"ddb","id":"48281621c024ae9bbd0f79da5f6f4867"},{"cmd":"packages/api-page-builder-import-export | |
--storage=ddb","storage":"ddb","id":"8540085b59af85d1fd82b37b9e890704"},{"cmd":"packages/api-prerendering-service | |
--storage=ddb","storage":"ddb","id":"a2831c88465244dc03f188f4a40e4d63"},{"cmd":"packages/api-security | |
--storage=ddb","storage":"ddb","id":"0a065366763b713fb016c43ce21e77b9"},{"cmd":"packages/api-security-cognito | |
--storage=ddb","storage":"ddb","id":"0787967fe56689618106e6c64e784bff"},{"cmd":"packages/api-tenancy | |
--storage=ddb","storage":"ddb","id":"0c81e56d64e97e6b563965250f04ed34"},{"cmd":"packages/api-tenant-manager | |
--storage=ddb","storage":"ddb","id":"4b93a028b8055553c3443a45b38079e9"},{"cmd":"packages/tasks | |
--storage=ddb","storage":"ddb","id":"925ba761b5995e8a8b980c0789034b3c"}]') | |
}} | |
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 | |
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: | |
- 18 | |
package: >- | |
${{ fromJson('[{"cmd":"packages/api-aco | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"8f23ec33f547aa62236f5c71115688d6"},{"cmd":"packages/api-audit-logs | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"a292444cd9100f78d8fc196274393ea8"},{"cmd":"packages/api-dynamodb-to-elasticsearch | |
--storage=ddb-es,ddb","storage":["ddb-es"],"id":"e2c325f0940ba5fb5a891a8cf74fca61"},{"cmd":"packages/api-elasticsearch","storage":["ddb-es","ddb-os"],"id":"430874606aeb8e8041b325955f9330e3"},{"cmd":"packages/api-elasticsearch-tasks | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"d81ad1d024a8746cc440e2e548770f8f"},{"cmd":"packages/api-file-manager | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"d6f293add4a252b96cbd770ab6e80557"},{"cmd":"packages/api-form-builder | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"3753bde0144d808eb15c755b7176386c"},{"cmd":"packages/api-form-builder-so-ddb-es | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"be1748722ce53a7383696bdc9aecb36e"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=1/10","storage":"ddb-es","id":"2f615d972415f9b88da165797fb38c46"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=2/10","storage":"ddb-es","id":"7ac00c6494a22cb37e0b2cc8563d383c"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=3/10","storage":"ddb-es","id":"110ea0f3085d685aec7c0748df185551"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=4/10","storage":"ddb-es","id":"b61ec2272eb9affb701aac2ce2592558"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=5/10","storage":"ddb-es","id":"c76f440b5b49a14eecb133b2952ed64c"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=6/10","storage":"ddb-es","id":"92c0cb0c1e3e89482ef9da51ac2e24b7"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=7/10","storage":"ddb-es","id":"9458c116f687080f68305ecdd78ff20a"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=8/10","storage":"ddb-es","id":"4ce097ec7631113bef48b3f0bf4d99a5"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=9/10","storage":"ddb-es","id":"b702439e98afcec5cf9a7393fe8c13f2"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-es,ddb | |
--shard=10/10","storage":"ddb-es","id":"9c1e0d8933b25cecd45c85b64b7e5c4b"},{"cmd":"packages/api-headless-cms-aco | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"873cd623b92712713e58e7dc6ddbe5d9"},{"cmd":"packages/api-headless-cms-ddb-es | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"f64e01fd77d4d1c22803e1523560b07c"},{"cmd":"packages/api-headless-cms-es-tasks | |
--storage=ddb-es,ddb","storage":["ddb-es"],"id":"f857b5e4a7381a7f10eadef6ec83d9e0"},{"cmd":"packages/api-headless-cms-tasks | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"6a7091c172aaf229fbfae3c7d1756e8c"},{"cmd":"packages/api-mailer | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"ccc077215f734fbec817d90fdb04d423"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=1/10","storage":"ddb-es","id":"b62c2b68fa1d8f46c61da87c0f2a546c"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=2/10","storage":"ddb-es","id":"ee33d43c5e289e2cb067948257937cd3"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=3/10","storage":"ddb-es","id":"f153a1a52ce25cb1fb3b0309db99d343"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=4/10","storage":"ddb-es","id":"d00ff89ac164b2911b594df642ef37a1"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=5/10","storage":"ddb-es","id":"fc645860e5f114fa0474f3ccd1c4f380"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=6/10","storage":"ddb-es","id":"5ae98b4d0f6ebb65d5ec723201009e2a"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=7/10","storage":"ddb-es","id":"de1be6bf9b140165a0060ad38e2131a6"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=8/10","storage":"ddb-es","id":"bbbb68ab6eec4f47494e59ab08b32850"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=9/10","storage":"ddb-es","id":"54a2c4af419affecfc6377ef4e879718"},{"cmd":"packages/api-page-builder | |
--storage=ddb-es,ddb | |
--shard=10/10","storage":"ddb-es","id":"552ef1386758c600283a711fa5a526f6"},{"cmd":"packages/api-page-builder-aco | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"d12985ec4dcdb80af419125d236a73d8"},{"cmd":"packages/api-page-builder-so-ddb-es | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"911289d4016adf351238298ce5b41ac8"},{"cmd":"packages/migrations","storage":["ddb-es","ddb-os"],"id":"bd6345274042973682dcf9af2706627d"},{"cmd":"packages/tasks | |
--storage=ddb-es,ddb","storage":"ddb-es","id":"0c5cd8395d241e54e3488ffcc1c81c26"}]') | |
}} | |
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 | |
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: | |
- 18 | |
package: >- | |
${{ fromJson('[{"cmd":"packages/api-aco | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"e4b1b5ebc172f2657485e41c35ad1cd7"},{"cmd":"packages/api-audit-logs | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"b36aac5f0e34dc4583e5422ae589f1ed"},{"cmd":"packages/api-dynamodb-to-elasticsearch | |
--storage=ddb-os,ddb","storage":["ddb-os"],"id":"6e0b282c3d135703e52b2c55822d4fb0"},{"cmd":"packages/api-elasticsearch","storage":["ddb-es","ddb-os"],"id":"430874606aeb8e8041b325955f9330e3"},{"cmd":"packages/api-elasticsearch-tasks | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"580a9577fdbd4a241034a42e1a47dee5"},{"cmd":"packages/api-file-manager | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"346430a79981d3e214c87254a08e31b2"},{"cmd":"packages/api-form-builder | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"d386cddfd3c366ad9955193dcfe74363"},{"cmd":"packages/api-form-builder-so-ddb-es | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"6086ced9d7b4412cc438b9e1aefbb976"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=1/10","storage":"ddb-os","id":"4d0fabd2f49acd02e40b213405099d7d"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=2/10","storage":"ddb-os","id":"8ed59cba000dc1d740d1b739eeae76e5"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=3/10","storage":"ddb-os","id":"8b278a40816a34ede5b1aaef2a0a6be5"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=4/10","storage":"ddb-os","id":"d82c0ca8a324f6bedbcf01d00ff7e979"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=5/10","storage":"ddb-os","id":"ac070889596c8cfbde0c88f82780a5f9"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=6/10","storage":"ddb-os","id":"8b86587d95faad7f7e0fab06286e4bf9"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=7/10","storage":"ddb-os","id":"2036f6012231f2ee13d7e805540e3eb6"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=8/10","storage":"ddb-os","id":"ba2d0c95b7426b30c41dfe75f485744e"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=9/10","storage":"ddb-os","id":"fbdffdd6c90e16b2ce1677bb091769d6"},{"cmd":"packages/api-headless-cms | |
--storage=ddb-os,ddb | |
--shard=10/10","storage":"ddb-os","id":"ddabae60cb35edcebc3e0d91cd0eb7c3"},{"cmd":"packages/api-headless-cms-aco | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"aa2c8429c2564549a680db23fe963347"},{"cmd":"packages/api-headless-cms-ddb-es | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"23bea783bb40390ae069dfa4985f97d2"},{"cmd":"packages/api-headless-cms-es-tasks | |
--storage=ddb-os,ddb","storage":["ddb-os"],"id":"ee446fd78ad6294bbfb3c0689ff2602e"},{"cmd":"packages/api-headless-cms-tasks | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"5326eafa76e67756c7f6e4e980cbf1da"},{"cmd":"packages/api-mailer | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"0ede859b604febdfa78018cdd1067a77"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=1/10","storage":"ddb-os","id":"099633a8a255bd0cfeee7fa8a508ec43"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=2/10","storage":"ddb-os","id":"a7a6988e4d90b501fbec6e9ede7f51c8"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=3/10","storage":"ddb-os","id":"20afac1d12b77f074f58345b3c400227"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=4/10","storage":"ddb-os","id":"3fc975a9a676ae1e963c4010e27a422f"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=5/10","storage":"ddb-os","id":"db6a4b85fe56efb3fbb6808327a57459"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=6/10","storage":"ddb-os","id":"65b1f94fb2ebeab472cb03794a805a83"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=7/10","storage":"ddb-os","id":"fd4958778983f961c34be9fabf93faa5"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=8/10","storage":"ddb-os","id":"7b49f49d9ccf4421df6bcf210bfc1f74"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=9/10","storage":"ddb-os","id":"a18a16d02798f5dd27c4e908b60a4be9"},{"cmd":"packages/api-page-builder | |
--storage=ddb-os,ddb | |
--shard=10/10","storage":"ddb-os","id":"aba1f17f3cc4081b5ba98c5433cc838e"},{"cmd":"packages/api-page-builder-aco | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"a1a7c90d43da1678f254bd4331cf4d55"},{"cmd":"packages/api-page-builder-so-ddb-es | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"e0236755edb31fc1a6005eb161941bf8"},{"cmd":"packages/migrations","storage":["ddb-es","ddb-os"],"id":"bd6345274042973682dcf9af2706627d"},{"cmd":"packages/tasks | |
--storage=ddb-os,ddb","storage":"ddb-os","id":"5eadfa5cc14ec4e8ba87ac3dfb112580"}]') | |
}} | |
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 | |
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: 18 | |
- 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: | |
- 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 "[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 |