Skip to content

feat: upgrade to react 19 #9777

feat: upgrade to react 19

feat: upgrade to react 19 #9777

Workflow file for this run

# 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: 22
- 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: 22
- 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 }}
changed-packages: ${{ steps.detect-changed-packages.outputs.changed-packages }}
latest-webiny-version: ${{ steps.latest-webiny-version.outputs.latest-webiny-version }}
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/checkout@v4
- 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
- name: Detect changed files
id: detect-changed-files
uses: dorny/paths-filter@v3
with:
filters: |
changed:
- 'packages/**/*'
list-files: json
- name: Detect changed packages
id: detect-changed-packages
run: >-
echo "changed-packages=$(node
.github/workflows/wac/utils/runNodeScripts/listChangedPackages.js '${{
steps.detect-changed-files.outputs.changed_files }}')" >>
$GITHUB_OUTPUT
- name: Get latest Webiny version on NPM
id: latest-webiny-version
run: >-
echo "latest-webiny-version=$(npm view @webiny/cli version)" >>
$GITHUB_OUTPUT
runs-on: ubuntu-latest
env:
NODE_OPTIONS: '--max_old_space_size=4096'
YARN_ENABLE_IMMUTABLE_INSTALLS: false
assignMilestone:
name: Assign milestone
needs: constants
if: >-
needs.constants.outputs.is-fork-pr != 'true' &&
github.event.pull_request.milestone == null
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/checkout@v4
- name: Print latest Webiny version
run: echo ${{ needs.constants.outputs.latest-webiny-version }}
- id: get-milestone-to-assign
name: Get milestone to assign
run: >-
echo "milestone=$(node
.github/workflows/wac/utils/runNodeScripts/getMilestoneToAssign.js
'{"latestWebinyVersion":"${{
needs.constants.outputs.latest-webiny-version }}","baseBranch":"${{
github.base_ref }}"}')" >> $GITHUB_OUTPUT
- uses: zoispag/action-assign-milestone@v1
if: steps.get-milestone-to-assign.outputs.milestone
with:
repo-token: ${{ secrets.GH_TOKEN }}
milestone: ${{ steps.get-milestone-to-assign.outputs.milestone }}
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: 22
- 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
name: Static code analysis
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- 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 }}
- name: Sync Dependencies Verification
run: yarn verify-dependencies
working-directory: ${{ github.base_ref }}
- name: Check Package Node Modules
run: yarn check-package-dependencies
working-directory: ${{ github.base_ref }}
runs-on: ubuntu-latest
env:
NODE_OPTIONS: '--max_old_space_size=4096'
YARN_ENABLE_IMMUTABLE_INSTALLS: false
staticCodeAnalysisVerifyDependencies:
needs:
- constants
- build
name: Static code analysis (verify dependencies)
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- 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: Sync Dependencies Verification
run: yarn verify-dependencies
working-directory: ${{ github.base_ref }}
- name: Check Package Node Modules
run: yarn check-package-dependencies
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: 22
- 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: 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
jestTestsNoStorageConstants:
needs:
- constants
- build
name: Create Jest tests constants
runs-on: ubuntu-latest
outputs:
packages-to-jest-test: ${{ steps.list-packages-to-jest-test.outputs.packages-to-jest-test }}
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/checkout@v4
- name: List packages to test with Jest
id: list-packages-to-jest-test
run: >-
echo "packages-to-jest-test=$(node
.github/workflows/wac/utils/runNodeScripts/listPackagesToJestTest.js
'[[{"cmd":"packages/api","packageName":"api","id":"806497aaa729e8d39f59792bcfb12b26"},{"cmd":"packages/api-admin-settings","packageName":"api-admin-settings","id":"31140e7ea9283c9db32ec5f905ce2a1e"},{"cmd":"packages/api-authentication","packageName":"api-authentication","id":"0eaf9f853f122e4ab215bf49d39f3edc"},{"cmd":"packages/api-authentication-cognito","packageName":"api-authentication-cognito","id":"dfb5e1fcea213538a9730314cb5e7d06"},{"cmd":"packages/api-headless-cms-ddb","packageName":"api-headless-cms-ddb","id":"5333e1fe6c2b8f5bbcb101a446419c3e"},{"cmd":"packages/api-headless-cms-scheduler","packageName":"api-headless-cms-scheduler","id":"67c8a941b9f00309ab9e4d158d3c54a9"},{"cmd":"packages/api-headless-cms-tasks","packageName":"api-headless-cms-tasks","id":"96289ad460c721cf2801c08e8b58c3d3"},{"cmd":"packages/api-record-locking","packageName":"api-record-locking","id":"9340c019a5369ea1aa55f7ed28b09f48"},{"cmd":"packages/api-sync-system","packageName":"api-sync-system","id":"a79a4c6bc887265912d56ea0a40088e7"},{"cmd":"packages/api-wcp","packageName":"api-wcp","id":"77ff8a0a075e8d9f7e25001ea64c6c9e"},{"cmd":"packages/api-websockets","packageName":"api-websockets","id":"fd704b97c31f78a886b342babd344d33"},{"cmd":"packages/app-aco","packageName":"app-aco","id":"dddb66beffe2e54804d5bdedd2b423cb"},{"cmd":"packages/app-admin","packageName":"app-admin","id":"53bbef747a26e831904585bcfdd845f7"},{"cmd":"packages/data-migration","packageName":"data-migration","id":"294257fffed0174f169b2c812e16258e"},{"cmd":"packages/db-dynamodb","packageName":"db-dynamodb","id":"5cb733de265d7bbda981fce60f2a8962"},{"cmd":"packages/di-container","packageName":"di-container","id":"70e0a6393c0bf39362cfbc54c5bd72f6"},{"cmd":"packages/form","packageName":"form","id":"5707e699d8a4d3b8ee1954c070a50617"},{"cmd":"packages/handler","packageName":"handler","id":"1dad17bbf61657b4308250e8293cb5dd"},{"cmd":"packages/handler-aws","packageName":"handler-aws","id":"2a5bd44c5f2a4290c43f9021bbc705a5"},{"cmd":"packages/handler-graphql","packageName":"handler-graphql","id":"74884166fb2bf383da482fb78b18b704"},{"cmd":"packages/ioc","packageName":"ioc","id":"af22b6d7d245321d64d4b714d03ef3e1"},{"cmd":"packages/lexical-converter","packageName":"lexical-converter","id":"52e3bb3ea633bd27d5bab8be976cd16f"},{"cmd":"packages/plugins","packageName":"plugins","id":"c91537eaa40845d816d0d9f39e66018b"},{"cmd":"packages/pubsub","packageName":"pubsub","id":"fc14c28c51c537a7d9edd33d73ae29e2"},{"cmd":"packages/react-composition","packageName":"react-composition","id":"428b8a3187fe275cb76da6bad0ba3918"},{"cmd":"packages/react-properties","packageName":"react-properties","id":"7578e63dcaa1ac66fed4a8dd936a9285"},{"cmd":"packages/react-rich-text-lexical-renderer","packageName":"react-rich-text-lexical-renderer","id":"452451b34eb7e0134e99b0706e5eb076"},{"cmd":"packages/utils","packageName":"utils","id":"696ceb17e38e4a274d4a149d24513b78"},{"cmd":"packages/validation","packageName":"validation","id":"9c68da33792a1214ae45e040a2830cd7"}],
${{ needs.constants.outputs.changed-packages }}]')" >> $GITHUB_OUTPUT
- name: Packages to test with Jest
id: list-packages
run: >-
echo '${{
steps.list-packages-to-jest-test.outputs.packages-to-jest-test }}'
env:
NODE_OPTIONS: '--max_old_space_size=4096'
YARN_ENABLE_IMMUTABLE_INSTALLS: false
jestTestsNoStorageRun:
needs:
- constants
- build
- jestTestsNoStorageConstants
name: ${{ matrix.package.cmd }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
node:
- 22
package: >-
${{
fromJson(needs.jestTestsNoStorageConstants.outputs.packages-to-jest-test)
}}
runs-on: ${{ matrix.os }}
env:
NODE_OPTIONS: '--max_old_space_size=4096'
YARN_ENABLE_IMMUTABLE_INSTALLS: false
AWS_REGION: eu-central-1
if: needs.jestTestsNoStorageConstants.outputs.packages-to-jest-test != '[]'
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- 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 }}
jestTestsddbConstants:
needs:
- constants
- build
name: Create Jest tests constants
runs-on: ubuntu-latest
outputs:
packages-to-jest-test: ${{ steps.list-packages-to-jest-test.outputs.packages-to-jest-test }}
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/checkout@v4
- name: List packages to test with Jest
id: list-packages-to-jest-test
run: >-
echo "packages-to-jest-test=$(node
.github/workflows/wac/utils/runNodeScripts/listPackagesToJestTest.js
'[[{"cmd":"packages/api-aco --
--storage=ddb","storage":"ddb","packageName":"api-aco","id":"15acbd212927499d42e3576530647d25"},{"cmd":"packages/api-audit-logs
--
--storage=ddb","storage":"ddb","packageName":"api-audit-logs","id":"4ba29016a131579d08fb3b6a3d65b27e"},{"cmd":"packages/api-file-manager
--
--storage=ddb","storage":"ddb","packageName":"api-file-manager","id":"bbf6b73eb55caef9355321f3619881da"},{"cmd":"packages/api-file-manager-aco
--
--storage=ddb","storage":"ddb","packageName":"api-file-manager-aco","id":"2ba56b54568ab8b420b217c2641a9e3b"},{"cmd":"packages/api-headless-cms
-- --storage=ddb
--shard=1/6","storage":"ddb","packageName":"api-headless-cms","id":"b51da4451d67feba87815c45c8a77f07"},{"cmd":"packages/api-headless-cms
-- --storage=ddb
--shard=2/6","storage":"ddb","packageName":"api-headless-cms","id":"7b80a3da2817c7364ad3946bb6431e33"},{"cmd":"packages/api-headless-cms
-- --storage=ddb
--shard=3/6","storage":"ddb","packageName":"api-headless-cms","id":"4cc3707f924141a9ebdf6a01b061dbbb"},{"cmd":"packages/api-headless-cms
-- --storage=ddb
--shard=4/6","storage":"ddb","packageName":"api-headless-cms","id":"fba5ea3ffe14c76c508ea377f08dce29"},{"cmd":"packages/api-headless-cms
-- --storage=ddb
--shard=5/6","storage":"ddb","packageName":"api-headless-cms","id":"3f9c06342fa86881c8baade96a6309e0"},{"cmd":"packages/api-headless-cms
-- --storage=ddb
--shard=6/6","storage":"ddb","packageName":"api-headless-cms","id":"cb6f53e134791a5d486eac02fc9658c8"},{"cmd":"packages/api-headless-cms-aco
--
--storage=ddb","storage":"ddb","packageName":"api-headless-cms-aco","id":"0768bd795eaac4f59d7d6f478e33b06d"},{"cmd":"packages/api-headless-cms-bulk-actions
--
--storage=ddb","storage":"ddb","packageName":"api-headless-cms-bulk-actions","id":"71d318bd9d71d6f277c8a61313aacc6b"},{"cmd":"packages/api-headless-cms-import-export
--
--storage=ddb","storage":"ddb","packageName":"api-headless-cms-import-export","id":"08bdac6562518d9962dec595862a756b"},{"cmd":"packages/api-i18n
--
--storage=ddb","storage":"ddb","packageName":"api-i18n","id":"972061169b3dcc8bef4ba9862dd0c9c6"},{"cmd":"packages/api-log
--
--storage=ddb","storage":"ddb","packageName":"api-log","id":"2216ac84ec24535d6a4a30ce43dc3c9b"},{"cmd":"packages/api-mailer
--
--storage=ddb","storage":"ddb","packageName":"api-mailer","id":"133a7e627680acd2cddf04d2c1a7764f"},{"cmd":"packages/api-security
--
--storage=ddb","storage":"ddb","packageName":"api-security","id":"f25e2f92fec90ec06f962d8600f714a2"},{"cmd":"packages/api-security-cognito
--
--storage=ddb","storage":"ddb","packageName":"api-security-cognito","id":"f8a12c47111e0d53885d3ba9cff206f4"},{"cmd":"packages/api-tenancy
--
--storage=ddb","storage":"ddb","packageName":"api-tenancy","id":"70ea37c792cd64bac2b4b1bcfe7735b6"},{"cmd":"packages/api-tenant-manager
--
--storage=ddb","storage":"ddb","packageName":"api-tenant-manager","id":"7e0921c9b13d21197004eba7f31a69e3"},{"cmd":"packages/tasks
--
--storage=ddb","storage":"ddb","packageName":"tasks","id":"9b42b8eb53b8a5047f49f2cf60c254b1"}],
${{ needs.constants.outputs.changed-packages }}]')" >> $GITHUB_OUTPUT
- name: Packages to test with Jest
id: list-packages
run: >-
echo '${{
steps.list-packages-to-jest-test.outputs.packages-to-jest-test }}'
env:
NODE_OPTIONS: '--max_old_space_size=4096'
YARN_ENABLE_IMMUTABLE_INSTALLS: false
jestTestsddbRun:
needs:
- constants
- build
- jestTestsddbConstants
name: ${{ matrix.package.cmd }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
node:
- 22
package: >-
${{
fromJson(needs.jestTestsddbConstants.outputs.packages-to-jest-test) }}
runs-on: ${{ matrix.os }}
env:
NODE_OPTIONS: '--max_old_space_size=4096'
YARN_ENABLE_IMMUTABLE_INSTALLS: false
AWS_REGION: eu-central-1
if: needs.jestTestsddbConstants.outputs.packages-to-jest-test != '[]'
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- 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-esConstants:
needs:
- constants
- build
name: Create Jest tests constants
runs-on: ubuntu-latest
outputs:
packages-to-jest-test: ${{ steps.list-packages-to-jest-test.outputs.packages-to-jest-test }}
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/checkout@v4
- name: List packages to test with Jest
id: list-packages-to-jest-test
run: >-
echo "packages-to-jest-test=$(node
.github/workflows/wac/utils/runNodeScripts/listPackagesToJestTest.js
'[[{"cmd":"packages/api-aco --
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-aco","id":"53fa4e6eb3dab4f159f64e03087acb6b"},{"cmd":"packages/api-audit-logs
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-audit-logs","id":"ed346ed6e35906d1fd501a4f85064f5d"},{"cmd":"packages/api-dynamodb-to-elasticsearch
--
--storage=ddb-es,ddb","storage":["ddb-es"],"packageName":"api-dynamodb-to-elasticsearch","id":"11b13185c9f3722c9fa9bbe8984e286e"},{"cmd":"packages/api-elasticsearch
--
--storage=ddb-es,ddb","storage":["ddb-es"],"packageName":"api-elasticsearch","id":"e029ed84c79961b5e5e7a165f58e00b8"},{"cmd":"packages/api-elasticsearch-tasks
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-elasticsearch-tasks","id":"226edfac4a8d450ab9419c4cffec647c"},{"cmd":"packages/api-file-manager
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-file-manager","id":"750df55ba0192af3ca3f4f0c4a54ec32"},{"cmd":"packages/api-file-manager-aco
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-file-manager-aco","id":"b86971bcba34cde9f206489f8d72d89b"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-es,ddb
--shard=1/6","storage":"ddb-es","packageName":"api-headless-cms","id":"2acbb1056120e64841e5dcb63990535d"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-es,ddb
--shard=2/6","storage":"ddb-es","packageName":"api-headless-cms","id":"61e38837cd3bb9cd36dddb3fc3097672"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-es,ddb
--shard=3/6","storage":"ddb-es","packageName":"api-headless-cms","id":"30a640c0349217cf9a541f7d040cb380"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-es,ddb
--shard=4/6","storage":"ddb-es","packageName":"api-headless-cms","id":"b97f1b5d0292c1c2cd0dbbe88ddceabb"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-es,ddb
--shard=5/6","storage":"ddb-es","packageName":"api-headless-cms","id":"97184c5de7c2b68a0c7ba1aa1b2dfb34"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-es,ddb
--shard=6/6","storage":"ddb-es","packageName":"api-headless-cms","id":"b216bb102dc1d8dadb411b9ba4d1e912"},{"cmd":"packages/api-headless-cms-aco
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-headless-cms-aco","id":"9ad511ab0f4f3d7aabaf1db876523dfa"},{"cmd":"packages/api-headless-cms-bulk-actions
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-headless-cms-bulk-actions","id":"ecfc9a6faf806997f7084869078a33ed"},{"cmd":"packages/api-headless-cms-ddb-es
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-headless-cms-ddb-es","id":"81212708ed737d51e6a1030488c5777a"},{"cmd":"packages/api-headless-cms-es-tasks
--
--storage=ddb-es,ddb","storage":["ddb-es"],"packageName":"api-headless-cms-es-tasks","id":"a8ac0d0976c543792fc9c3da3c9d1229"},{"cmd":"packages/api-headless-cms-import-export
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-headless-cms-import-export","id":"0fc711b37683ed01e6f68cd48b1909e9"},{"cmd":"packages/api-mailer
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"api-mailer","id":"e48dc65a85483c6b0becf94e498361d9"},{"cmd":"packages/migrations
--
--storage=ddb-es,ddb","storage":["ddb-es"],"packageName":"migrations","id":"a7a76e11a8105561280512dd36df80bb"},{"cmd":"packages/tasks
--
--storage=ddb-es,ddb","storage":"ddb-es","packageName":"tasks","id":"b455565ee70d5cae3766ed1931475c3a"}],
${{ needs.constants.outputs.changed-packages }}]')" >> $GITHUB_OUTPUT
- name: Packages to test with Jest
id: list-packages
run: >-
echo '${{
steps.list-packages-to-jest-test.outputs.packages-to-jest-test }}'
env:
NODE_OPTIONS: '--max_old_space_size=4096'
YARN_ENABLE_IMMUTABLE_INSTALLS: false
jestTestsddb-esRun:
needs:
- constants
- build
- jestTestsddb-esConstants
name: ${{ matrix.package.cmd }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
node:
- 22
package: >-
${{
fromJson(needs.jestTestsddb-esConstants.outputs.packages-to-jest-test)
}}
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 }}
if: >-
needs.jestTestsddb-esConstants.outputs.packages-to-jest-test != '[]' &&
needs.constants.outputs.is-fork-pr != 'true'
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- 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
jestTestsddb-osConstants:
needs:
- constants
- build
name: Create Jest tests constants
runs-on: ubuntu-latest
outputs:
packages-to-jest-test: ${{ steps.list-packages-to-jest-test.outputs.packages-to-jest-test }}
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/checkout@v4
- name: List packages to test with Jest
id: list-packages-to-jest-test
run: >-
echo "packages-to-jest-test=$(node
.github/workflows/wac/utils/runNodeScripts/listPackagesToJestTest.js
'[[{"cmd":"packages/api-aco --
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-aco","id":"f5d285c11b53429d4e6fc77b0d42d46a"},{"cmd":"packages/api-audit-logs
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-audit-logs","id":"be20347ee834032743b3cf9441813084"},{"cmd":"packages/api-dynamodb-to-elasticsearch
--
--storage=ddb-os,ddb","storage":["ddb-os"],"packageName":"api-dynamodb-to-elasticsearch","id":"b388d48d3ade3ab8f95ce15d7137b5cc"},{"cmd":"packages/api-elasticsearch
--
--storage=ddb-os,ddb","storage":["ddb-os"],"packageName":"api-elasticsearch","id":"2be6c8b611bbd27ddfe9347d1ac536a0"},{"cmd":"packages/api-elasticsearch-tasks
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-elasticsearch-tasks","id":"9027390d29d297c74cb07fa99961a24f"},{"cmd":"packages/api-file-manager
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-file-manager","id":"a026a4bb9a6b4ad0ed84e2d455faad68"},{"cmd":"packages/api-file-manager-aco
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-file-manager-aco","id":"048590a8f0afe7312292283793c5d17a"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-os,ddb
--shard=1/6","storage":"ddb-os","packageName":"api-headless-cms","id":"6627333313d66ffd313b1f7881938199"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-os,ddb
--shard=2/6","storage":"ddb-os","packageName":"api-headless-cms","id":"384885f6c5370d7b0b23bf9510d4db40"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-os,ddb
--shard=3/6","storage":"ddb-os","packageName":"api-headless-cms","id":"39697c67ee7a3ef42c20597da811359d"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-os,ddb
--shard=4/6","storage":"ddb-os","packageName":"api-headless-cms","id":"86d368902efa65c0e34ae7c7565a3bee"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-os,ddb
--shard=5/6","storage":"ddb-os","packageName":"api-headless-cms","id":"03c38f8fa3d6e20ecf70ea9655f5a6c9"},{"cmd":"packages/api-headless-cms
-- --storage=ddb-os,ddb
--shard=6/6","storage":"ddb-os","packageName":"api-headless-cms","id":"e8f06621063827bfd306862ad2115807"},{"cmd":"packages/api-headless-cms-aco
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-headless-cms-aco","id":"1cbff8e9cc5ed1d69c81b3b21eaed141"},{"cmd":"packages/api-headless-cms-bulk-actions
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-headless-cms-bulk-actions","id":"346534319ee9cc5fb887251059dc07e2"},{"cmd":"packages/api-headless-cms-ddb-es
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-headless-cms-ddb-es","id":"20771930de039aaae3169a9ba41f9772"},{"cmd":"packages/api-headless-cms-es-tasks
--
--storage=ddb-os,ddb","storage":["ddb-os"],"packageName":"api-headless-cms-es-tasks","id":"2d9c313b3e9c3905b00a54b932acba22"},{"cmd":"packages/api-headless-cms-import-export
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-headless-cms-import-export","id":"25050f9d3afa03574c9de02bdd1a8131"},{"cmd":"packages/api-mailer
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-mailer","id":"6008a9f67393eb80384140117d9fc754"},{"cmd":"packages/migrations
--
--storage=ddb-os,ddb","storage":["ddb-os"],"packageName":"migrations","id":"060e3da0e5d744dc684f0938dad2aff0"},{"cmd":"packages/tasks
--
--storage=ddb-os,ddb","storage":"ddb-os","packageName":"tasks","id":"11c1f969312541887f6480e5e8d59198"}],
${{ needs.constants.outputs.changed-packages }}]')" >> $GITHUB_OUTPUT
- name: Packages to test with Jest
id: list-packages
run: >-
echo '${{
steps.list-packages-to-jest-test.outputs.packages-to-jest-test }}'
env:
NODE_OPTIONS: '--max_old_space_size=4096'
YARN_ENABLE_IMMUTABLE_INSTALLS: false
jestTestsddb-osRun:
needs:
- constants
- build
- jestTestsddb-osConstants
name: ${{ matrix.package.cmd }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
node:
- 22
package: >-
${{
fromJson(needs.jestTestsddb-osConstants.outputs.packages-to-jest-test)
}}
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 }}
if: >-
needs.jestTestsddb-osConstants.outputs.packages-to-jest-test != '[]' &&
needs.constants.outputs.is-fork-pr != 'true'
steps:
- uses: actions/setup-node@v4
with:
node-version: 22
- 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