fix(handler): ensure set-cookie header is not set twice #4
This file contains hidden or 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: (v5) Push | |
| 'on': | |
| push: | |
| branches: | |
| - v5-next | |
| - v5-dev | |
| jobs: | |
| 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 }} | |
| 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=v5-${{ 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 | |
| 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: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.global-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Build packages | |
| run: yarn build:quick | |
| working-directory: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| env: | |
| NODE_OPTIONS: '--max_old_space_size=4096' | |
| YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
| codeAnalysis: | |
| name: Static code analysis | |
| needs: | |
| - constants | |
| - build | |
| steps: | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Check code formatting | |
| run: yarn prettier:check | |
| working-directory: v5 | |
| - name: Check dependencies | |
| run: yarn adio | |
| working-directory: v5 | |
| - name: Check TS configs | |
| run: yarn check-ts-configs | |
| working-directory: v5 | |
| - name: ESLint | |
| run: yarn eslint | |
| working-directory: v5 | |
| 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: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Build packages | |
| run: yarn build:quick | |
| working-directory: v5 | |
| - name: Sync Dependencies Verification | |
| run: yarn webiny verify-dependencies | |
| working-directory: v5 | |
| 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: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Check types for Cypress tests | |
| run: yarn cy:ts | |
| working-directory: v5 | |
| 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: | |
| - 22 | |
| package: >- | |
| ${{ | |
| fromJson('[{"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-tasks","packageName":"api-headless-cms-tasks","id":"96289ad460c721cf2801c08e8b58c3d3"},{"cmd":"packages/api-record-locking","packageName":"api-record-locking","id":"9340c019a5369ea1aa55f7ed28b09f48"},{"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/cwp-template-aws","packageName":"cwp-template-aws","id":"846572f41c9427974a577bb95257d019"},{"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"}]') | |
| }} | |
| 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: 22 | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Build packages | |
| run: yarn build:quick | |
| working-directory: v5 | |
| - name: Run tests | |
| run: yarn test ${{ matrix.package.cmd }} | |
| working-directory: v5 | |
| jestTestsDdb: | |
| needs: | |
| - constants | |
| - build | |
| name: ${{ matrix.package.cmd }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| node: | |
| - 22 | |
| package: >- | |
| ${{ fromJson('[{"cmd":"packages/api-aco | |
| --storage=ddb","storage":"ddb","packageName":"api-aco","id":"5595b4f3460fb2a019066177bd6489f3"},{"cmd":"packages/api-apw | |
| --storage=ddb","storage":"ddb","packageName":"api-apw","id":"04462239e1f3509b08f511de460971ec"},{"cmd":"packages/api-audit-logs | |
| --storage=ddb","storage":"ddb","packageName":"api-audit-logs","id":"47680aa68a1a3951f1117c736e150e45"},{"cmd":"packages/api-file-manager | |
| --storage=ddb","storage":"ddb","packageName":"api-file-manager","id":"9b6eee1ff7cbf9a3d367818705cc4189"},{"cmd":"packages/api-file-manager-aco | |
| --storage=ddb","storage":"ddb","packageName":"api-file-manager-aco","id":"2798f617996100a5494909a394335e98"},{"cmd":"packages/api-form-builder | |
| --storage=ddb","storage":"ddb","packageName":"api-form-builder","id":"980a9aebb5ec0cab057422364a60493b"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb | |
| --shard=1/6","storage":"ddb","packageName":"api-headless-cms","id":"70476469f4407a455237133406a37a4b"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb | |
| --shard=2/6","storage":"ddb","packageName":"api-headless-cms","id":"0eba11dcf36fd00e737a630f40567e85"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb | |
| --shard=3/6","storage":"ddb","packageName":"api-headless-cms","id":"8c15e662d10ad6272ac557515e39d4cd"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb | |
| --shard=4/6","storage":"ddb","packageName":"api-headless-cms","id":"3b14c43cd5971ad2945b1f0e87970e20"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb | |
| --shard=5/6","storage":"ddb","packageName":"api-headless-cms","id":"a71716169299cfee9996f4344c84616f"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb | |
| --shard=6/6","storage":"ddb","packageName":"api-headless-cms","id":"26f0b825b771340ca981858d86bd1f42"},{"cmd":"packages/api-headless-cms-aco | |
| --storage=ddb","storage":"ddb","packageName":"api-headless-cms-aco","id":"718c110b004c59ed7d13cbcc875a6b64"},{"cmd":"packages/api-headless-cms-bulk-actions | |
| --storage=ddb","storage":"ddb","packageName":"api-headless-cms-bulk-actions","id":"00c0a57737502f28c304015d2d1ba442"},{"cmd":"packages/api-headless-cms-import-export | |
| --storage=ddb","storage":"ddb","packageName":"api-headless-cms-import-export","id":"e9052e7c40171aeb43ce089fdfbbe3c8"},{"cmd":"packages/api-i18n | |
| --storage=ddb","storage":"ddb","packageName":"api-i18n","id":"943e15fe21c847b164f9413f8baf97b7"},{"cmd":"packages/api-log | |
| --storage=ddb","storage":"ddb","packageName":"api-log","id":"9baae1f165e409fea40713e0cf2d300f"},{"cmd":"packages/api-mailer | |
| --storage=ddb","storage":"ddb","packageName":"api-mailer","id":"2cc1dc707a39e72f4e5d9a140677ca39"},{"cmd":"packages/api-page-builder | |
| --storage=ddb | |
| --shard=1/6","storage":"ddb","packageName":"api-page-builder","id":"b2a30dfaf230076ce7120c55eb581d32"},{"cmd":"packages/api-page-builder | |
| --storage=ddb | |
| --shard=2/6","storage":"ddb","packageName":"api-page-builder","id":"c58e2f120653e8bd68475c16de4434c5"},{"cmd":"packages/api-page-builder | |
| --storage=ddb | |
| --shard=3/6","storage":"ddb","packageName":"api-page-builder","id":"808cb2da8e70bf84a24de2ab7ed27c24"},{"cmd":"packages/api-page-builder | |
| --storage=ddb | |
| --shard=4/6","storage":"ddb","packageName":"api-page-builder","id":"6f95134a56bea87da59d4c7d56846d72"},{"cmd":"packages/api-page-builder | |
| --storage=ddb | |
| --shard=5/6","storage":"ddb","packageName":"api-page-builder","id":"918eb8cb9d4046da9d38962b12e8ace6"},{"cmd":"packages/api-page-builder | |
| --storage=ddb | |
| --shard=6/6","storage":"ddb","packageName":"api-page-builder","id":"45bc3d824b38bd2770f1d4ba357387f9"},{"cmd":"packages/api-page-builder-aco | |
| --storage=ddb","storage":"ddb","packageName":"api-page-builder-aco","id":"48281621c024ae9bbd0f79da5f6f4867"},{"cmd":"packages/api-page-builder-import-export | |
| --storage=ddb","storage":"ddb","packageName":"api-page-builder-import-export","id":"8540085b59af85d1fd82b37b9e890704"},{"cmd":"packages/api-prerendering-service | |
| --storage=ddb","storage":"ddb","packageName":"api-prerendering-service","id":"a2831c88465244dc03f188f4a40e4d63"},{"cmd":"packages/api-security | |
| --storage=ddb","storage":"ddb","packageName":"api-security","id":"0a065366763b713fb016c43ce21e77b9"},{"cmd":"packages/api-security-cognito | |
| --storage=ddb","storage":"ddb","packageName":"api-security-cognito","id":"0787967fe56689618106e6c64e784bff"},{"cmd":"packages/api-serverless-cms | |
| --storage=ddb","storage":"ddb","packageName":"api-serverless-cms","id":"b660572a629aa6e9191829fe7bfd33cc"},{"cmd":"packages/api-tenancy | |
| --storage=ddb","storage":"ddb","packageName":"api-tenancy","id":"0c81e56d64e97e6b563965250f04ed34"},{"cmd":"packages/api-tenant-manager | |
| --storage=ddb","storage":"ddb","packageName":"api-tenant-manager","id":"4b93a028b8055553c3443a45b38079e9"},{"cmd":"packages/tasks | |
| --storage=ddb","storage":"ddb","packageName":"tasks","id":"925ba761b5995e8a8b980c0789034b3c"}]') | |
| }} | |
| 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: 22 | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Build packages | |
| run: yarn build:quick | |
| working-directory: v5 | |
| - name: Run tests | |
| run: yarn test ${{ matrix.package.cmd }} | |
| working-directory: v5 | |
| jestTestsDdbOs: | |
| needs: | |
| - constants | |
| - build | |
| name: ${{ matrix.package.cmd }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| node: | |
| - 22 | |
| package: >- | |
| ${{ fromJson('[{"cmd":"packages/api-aco | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-aco","id":"e4b1b5ebc172f2657485e41c35ad1cd7"},{"cmd":"packages/api-audit-logs | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-audit-logs","id":"b36aac5f0e34dc4583e5422ae589f1ed"},{"cmd":"packages/api-dynamodb-to-elasticsearch | |
| --storage=ddb-os,ddb","storage":["ddb-os"],"packageName":"api-dynamodb-to-elasticsearch","id":"6e0b282c3d135703e52b2c55822d4fb0"},{"cmd":"packages/api-elasticsearch | |
| --storage=ddb-os,ddb","storage":["ddb-os"],"packageName":"api-elasticsearch","id":"b0f477d6b209f654714809b318be888e"},{"cmd":"packages/api-elasticsearch-tasks | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-elasticsearch-tasks","id":"580a9577fdbd4a241034a42e1a47dee5"},{"cmd":"packages/api-file-manager | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-file-manager","id":"346430a79981d3e214c87254a08e31b2"},{"cmd":"packages/api-file-manager-aco | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-file-manager-aco","id":"7f0fc2925264603db145f99b41162da1"},{"cmd":"packages/api-form-builder | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-form-builder","id":"d386cddfd3c366ad9955193dcfe74363"},{"cmd":"packages/api-form-builder-so-ddb-es | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-form-builder-so-ddb-es","id":"6086ced9d7b4412cc438b9e1aefbb976"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb-os,ddb | |
| --shard=1/6","storage":"ddb-os","packageName":"api-headless-cms","id":"f0851fe3b18a5f4130ae919506f9d68f"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb-os,ddb | |
| --shard=2/6","storage":"ddb-os","packageName":"api-headless-cms","id":"627bf598869494740bdb3ee340398ed5"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb-os,ddb | |
| --shard=3/6","storage":"ddb-os","packageName":"api-headless-cms","id":"49c59082ed1d7a79b742944965adff82"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb-os,ddb | |
| --shard=4/6","storage":"ddb-os","packageName":"api-headless-cms","id":"37865d8ba2366687e25fa61967fe4db9"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb-os,ddb | |
| --shard=5/6","storage":"ddb-os","packageName":"api-headless-cms","id":"19d0191a992c0a5145674dc0b37d96b6"},{"cmd":"packages/api-headless-cms | |
| --storage=ddb-os,ddb | |
| --shard=6/6","storage":"ddb-os","packageName":"api-headless-cms","id":"2aade1f8261eacc7d93cc25fa3457fac"},{"cmd":"packages/api-headless-cms-aco | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-headless-cms-aco","id":"aa2c8429c2564549a680db23fe963347"},{"cmd":"packages/api-headless-cms-bulk-actions | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-headless-cms-bulk-actions","id":"a798b4705a7eb9858a51d80b386cf30a"},{"cmd":"packages/api-headless-cms-ddb-es | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-headless-cms-ddb-es","id":"23bea783bb40390ae069dfa4985f97d2"},{"cmd":"packages/api-headless-cms-es-tasks | |
| --storage=ddb-os,ddb","storage":["ddb-os"],"packageName":"api-headless-cms-es-tasks","id":"ee446fd78ad6294bbfb3c0689ff2602e"},{"cmd":"packages/api-headless-cms-import-export | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-headless-cms-import-export","id":"6059cf3e78f93525c8ed72ad83b7de1a"},{"cmd":"packages/api-mailer | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-mailer","id":"0ede859b604febdfa78018cdd1067a77"},{"cmd":"packages/api-page-builder | |
| --storage=ddb-os,ddb | |
| --shard=1/6","storage":"ddb-os","packageName":"api-page-builder","id":"691427cc9c5cb297c68cb2f90d7fcb89"},{"cmd":"packages/api-page-builder | |
| --storage=ddb-os,ddb | |
| --shard=2/6","storage":"ddb-os","packageName":"api-page-builder","id":"66b65733ec32b2010df792151240cca1"},{"cmd":"packages/api-page-builder | |
| --storage=ddb-os,ddb | |
| --shard=3/6","storage":"ddb-os","packageName":"api-page-builder","id":"8cdd1f181701f25f8cf9c3fe45b661bd"},{"cmd":"packages/api-page-builder | |
| --storage=ddb-os,ddb | |
| --shard=4/6","storage":"ddb-os","packageName":"api-page-builder","id":"0956377c7a7550c745e9402b51bdca85"},{"cmd":"packages/api-page-builder | |
| --storage=ddb-os,ddb | |
| --shard=5/6","storage":"ddb-os","packageName":"api-page-builder","id":"cc194759ab43627005bc21ee7c833a01"},{"cmd":"packages/api-page-builder | |
| --storage=ddb-os,ddb | |
| --shard=6/6","storage":"ddb-os","packageName":"api-page-builder","id":"b979f8aa837353847942b60e8f4bc057"},{"cmd":"packages/api-page-builder-aco | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-page-builder-aco","id":"a1a7c90d43da1678f254bd4331cf4d55"},{"cmd":"packages/api-page-builder-so-ddb-es | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-page-builder-so-ddb-es","id":"e0236755edb31fc1a6005eb161941bf8"},{"cmd":"packages/api-serverless-cms | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"api-serverless-cms","id":"28f2386bb4be699710cb574f3401d76b"},{"cmd":"packages/migrations | |
| --storage=ddb-os,ddb","storage":["ddb-os"],"packageName":"migrations","id":"3f8965830bbe44499a4bc97baf27e090"},{"cmd":"packages/tasks | |
| --storage=ddb-os,ddb","storage":"ddb-os","packageName":"tasks","id":"5eadfa5cc14ec4e8ba87ac3dfb112580"}]') | |
| }} | |
| 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: 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: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Build packages | |
| run: yarn build:quick | |
| working-directory: v5 | |
| - name: Run tests | |
| run: yarn test ${{ matrix.package.cmd }} | |
| working-directory: v5 | |
| permissions: | |
| id-token: write | |
| e2eTestsDdb-constants: | |
| name: Constants - DDB | |
| needs: | |
| - build | |
| outputs: | |
| cypress-folders: ${{ steps.list-cypress-folders.outputs.cypress-folders }} | |
| pulumi-backend-url: ${{ steps.pulumi-backend-url.outputs.pulumi-backend-url }} | |
| steps: | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - uses: actions/checkout@v4 | |
| - name: List Cypress tests folders | |
| id: list-cypress-folders | |
| run: >- | |
| echo "cypress-folders=$(node scripts/listCypressTestsFolders.js)" >> | |
| $GITHUB_OUTPUT | |
| - name: Get Pulumi backend URL | |
| id: get-pulumi-backend-url | |
| run: >- | |
| echo "pulumi-backend-url=${{ secrets.WEBINY_PULUMI_BACKEND }}${{ | |
| github.run_id }}_ddb" >> $GITHUB_OUTPUT | |
| runs-on: ubuntu-latest | |
| env: | |
| NODE_OPTIONS: '--max_old_space_size=4096' | |
| YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
| e2eTestsDdb-setup: | |
| needs: | |
| - constants | |
| - build | |
| - e2eTestsDdb-constants | |
| name: E2E (DDB) - Project setup | |
| outputs: | |
| cypress-config: ${{ steps.save-cypress-config.outputs.cypress-config }} | |
| environment: next | |
| env: | |
| NODE_OPTIONS: '--max_old_space_size=4096' | |
| YARN_ENABLE_IMMUTABLE_INSTALLS: 'false' | |
| CYPRESS_MAILOSAUR_API_KEY: ${{ secrets.CYPRESS_MAILOSAUR_API_KEY }} | |
| PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }} | |
| PULUMI_SECRETS_PROVIDER: ${{ secrets.PULUMI_SECRETS_PROVIDER }} | |
| WEBINY_PULUMI_BACKEND: ${{ needs.e2eTestsDdb-constants.outputs.pulumi-backend-url }} | |
| 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: | |
| fetch-depth: 0 | |
| path: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Build packages | |
| run: yarn build:quick | |
| working-directory: v5 | |
| - name: Start Verdaccio local server | |
| working-directory: v5 | |
| 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: Create ".npmrc" file in the project root, with a dummy auth token | |
| run: echo '//localhost:4873/:_authToken="dummy-auth-token"' > .npmrc | |
| working-directory: v5 | |
| - name: Version and publish to Verdaccio | |
| run: yarn release --type=verdaccio | |
| working-directory: v5 | |
| - name: Create verdaccio-files artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: verdaccio-files-ddb | |
| retention-days: 1 | |
| include-hidden-files: true | |
| path: |- | |
| v5/.verdaccio/ | |
| v5/.verdaccio.yaml | |
| - 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 new-webiny-project --tag local-npm | |
| --no-interactive --assign-to-yarnrc | |
| '{"npmRegistryServer":"http://localhost:4873","unsafeHttpWhitelist":["localhost"]}' | |
| --template-options | |
| '{"region":"eu-central-1","storageOperations":"ddb"}' | |
| - name: Print CLI version | |
| working-directory: new-webiny-project | |
| run: yarn webiny --version | |
| - name: Create project-files artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: project-files-ddb | |
| retention-days: 1 | |
| include-hidden-files: true | |
| path: |- | |
| new-webiny-project/ | |
| !new-webiny-project/node_modules/**/* | |
| !new-webiny-project/**/node_modules/**/* | |
| !new-webiny-project/.yarn/cache/**/* | |
| - name: Deploy Core | |
| working-directory: new-webiny-project | |
| run: yarn webiny deploy apps/core --env dev | |
| - name: Deploy API | |
| working-directory: new-webiny-project | |
| run: yarn webiny deploy apps/api --env dev | |
| - name: Deploy Admin Area | |
| working-directory: new-webiny-project | |
| run: yarn webiny deploy apps/admin --env dev | |
| - name: Deploy Website | |
| working-directory: new-webiny-project | |
| run: yarn webiny deploy apps/website --env dev | |
| - name: Deployment Summary | |
| run: >- | |
| node | |
| .github/workflows/wac/utils/runNodeScripts/printDeploymentSummary.js | |
| '../new-webiny-project' >> $GITHUB_STEP_SUMMARY | |
| working-directory: v5 | |
| - name: Create Cypress config | |
| run: yarn setup-cypress --projectFolder ../new-webiny-project | |
| working-directory: v5 | |
| - name: Save Cypress config | |
| id: save-cypress-config | |
| run: >- | |
| echo "cypress-config=$(cat cypress-tests/cypress.config.ts | tr -d | |
| '\t\n\r')" >> $GITHUB_OUTPUT | |
| working-directory: v5 | |
| - name: Cypress - run installation wizard test | |
| run: >- | |
| yarn cy:run --browser chrome --spec | |
| "cypress/e2e/adminInstallation/**/*.cy.js" | |
| working-directory: v5 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| id-token: write | |
| e2eTestsDdb-cypress: | |
| name: >- | |
| ${{ matrix.cypress-folder }} (ddb, ${{ matrix.os }}, Node v${{ matrix.node | |
| }}) | |
| needs: | |
| - constants | |
| - e2eTestsDdb-constants | |
| - e2eTestsDdb-setup | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| node: | |
| - 22 | |
| cypress-folder: ${{ fromJson(needs.e2eTestsDdb-constants.outputs.cypress-folders) }} | |
| environment: next | |
| env: | |
| NODE_OPTIONS: '--max_old_space_size=4096' | |
| YARN_ENABLE_IMMUTABLE_INSTALLS: 'false' | |
| CYPRESS_MAILOSAUR_API_KEY: ${{ secrets.CYPRESS_MAILOSAUR_API_KEY }} | |
| PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }} | |
| PULUMI_SECRETS_PROVIDER: ${{ secrets.PULUMI_SECRETS_PROVIDER }} | |
| WEBINY_PULUMI_BACKEND: ${{ needs.e2eTestsDdb-constants.outputs.pulumi-backend-url }} | |
| steps: | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Build packages | |
| run: yarn build:quick | |
| working-directory: v5 | |
| - name: Set up Cypress config | |
| run: >- | |
| echo '${{ needs.e2eTestsDdb-setup.outputs.cypress-config }}' > | |
| cypress-tests/cypress.config.ts | |
| working-directory: v5 | |
| - name: Cypress - run "${{ matrix.cypress-folder }}" tests | |
| timeout-minutes: 40 | |
| run: yarn cy:run --browser chrome --spec "${{ matrix.cypress-folder }}" | |
| working-directory: v5 | |
| runs-on: ubuntu-latest | |
| e2eTestsDdb-os-constants: | |
| name: Constants - DDB-OS | |
| needs: | |
| - build | |
| outputs: | |
| cypress-folders: ${{ steps.list-cypress-folders.outputs.cypress-folders }} | |
| pulumi-backend-url: ${{ steps.pulumi-backend-url.outputs.pulumi-backend-url }} | |
| steps: | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - uses: actions/checkout@v4 | |
| - name: List Cypress tests folders | |
| id: list-cypress-folders | |
| run: >- | |
| echo "cypress-folders=$(node scripts/listCypressTestsFolders.js)" >> | |
| $GITHUB_OUTPUT | |
| - name: Get Pulumi backend URL | |
| id: get-pulumi-backend-url | |
| run: >- | |
| echo "pulumi-backend-url=${{ secrets.WEBINY_PULUMI_BACKEND }}${{ | |
| github.run_id }}_ddb-os" >> $GITHUB_OUTPUT | |
| runs-on: ubuntu-latest | |
| env: | |
| NODE_OPTIONS: '--max_old_space_size=4096' | |
| YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
| e2eTestsDdb-os-setup: | |
| needs: | |
| - constants | |
| - build | |
| - e2eTestsDdb-os-constants | |
| name: E2E (DDB-OS) - Project setup | |
| outputs: | |
| cypress-config: ${{ steps.save-cypress-config.outputs.cypress-config }} | |
| environment: next | |
| env: | |
| NODE_OPTIONS: '--max_old_space_size=4096' | |
| YARN_ENABLE_IMMUTABLE_INSTALLS: 'false' | |
| CYPRESS_MAILOSAUR_API_KEY: ${{ secrets.CYPRESS_MAILOSAUR_API_KEY }} | |
| PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }} | |
| PULUMI_SECRETS_PROVIDER: ${{ secrets.PULUMI_SECRETS_PROVIDER }} | |
| WEBINY_PULUMI_BACKEND: ${{ needs.e2eTestsDdb-os-constants.outputs.pulumi-backend-url }} | |
| AWS_ELASTIC_SEARCH_DOMAIN_NAME: ${{ secrets.AWS_OPEN_SEARCH_DOMAIN_NAME }} | |
| ELASTIC_SEARCH_ENDPOINT: ${{ secrets.OPEN_SEARCH_ENDPOINT }} | |
| ELASTIC_SEARCH_INDEX_PREFIX: ${{ github.run_id }}_ | |
| 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: | |
| fetch-depth: 0 | |
| path: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Build packages | |
| run: yarn build:quick | |
| working-directory: v5 | |
| - name: Start Verdaccio local server | |
| working-directory: v5 | |
| 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: Create ".npmrc" file in the project root, with a dummy auth token | |
| run: echo '//localhost:4873/:_authToken="dummy-auth-token"' > .npmrc | |
| working-directory: v5 | |
| - name: Version and publish to Verdaccio | |
| run: yarn release --type=verdaccio | |
| working-directory: v5 | |
| - name: Create verdaccio-files artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: verdaccio-files-ddb-os | |
| retention-days: 1 | |
| include-hidden-files: true | |
| path: |- | |
| v5/.verdaccio/ | |
| v5/.verdaccio.yaml | |
| - 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 new-webiny-project --tag local-npm | |
| --no-interactive --assign-to-yarnrc | |
| '{"npmRegistryServer":"http://localhost:4873","unsafeHttpWhitelist":["localhost"]}' | |
| --template-options | |
| '{"region":"eu-central-1","storageOperations":"ddb-os"}' | |
| - name: Print CLI version | |
| working-directory: new-webiny-project | |
| run: yarn webiny --version | |
| - name: Create project-files artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: project-files-ddb-os | |
| retention-days: 1 | |
| include-hidden-files: true | |
| path: |- | |
| new-webiny-project/ | |
| !new-webiny-project/node_modules/**/* | |
| !new-webiny-project/**/node_modules/**/* | |
| !new-webiny-project/.yarn/cache/**/* | |
| - name: Deploy Core | |
| working-directory: new-webiny-project | |
| run: yarn webiny deploy apps/core --env dev | |
| - name: Deploy API | |
| working-directory: new-webiny-project | |
| run: yarn webiny deploy apps/api --env dev | |
| - name: Deploy Admin Area | |
| working-directory: new-webiny-project | |
| run: yarn webiny deploy apps/admin --env dev | |
| - name: Deploy Website | |
| working-directory: new-webiny-project | |
| run: yarn webiny deploy apps/website --env dev | |
| - name: Deployment Summary | |
| run: >- | |
| node | |
| .github/workflows/wac/utils/runNodeScripts/printDeploymentSummary.js | |
| '../new-webiny-project' >> $GITHUB_STEP_SUMMARY | |
| working-directory: v5 | |
| - name: Create Cypress config | |
| run: yarn setup-cypress --projectFolder ../new-webiny-project | |
| working-directory: v5 | |
| - name: Save Cypress config | |
| id: save-cypress-config | |
| run: >- | |
| echo "cypress-config=$(cat cypress-tests/cypress.config.ts | tr -d | |
| '\t\n\r')" >> $GITHUB_OUTPUT | |
| working-directory: v5 | |
| - name: Cypress - run installation wizard test | |
| run: >- | |
| yarn cy:run --browser chrome --spec | |
| "cypress/e2e/adminInstallation/**/*.cy.js" | |
| working-directory: v5 | |
| runs-on: ubuntu-latest | |
| permissions: | |
| id-token: write | |
| e2eTestsDdb-os-cypress: | |
| name: >- | |
| ${{ matrix.cypress-folder }} (ddb-os, ${{ matrix.os }}, Node v${{ | |
| matrix.node }}) | |
| needs: | |
| - constants | |
| - e2eTestsDdb-os-constants | |
| - e2eTestsDdb-os-setup | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| node: | |
| - 22 | |
| cypress-folder: >- | |
| ${{ fromJson(needs.e2eTestsDdb-os-constants.outputs.cypress-folders) | |
| }} | |
| environment: next | |
| env: | |
| NODE_OPTIONS: '--max_old_space_size=4096' | |
| YARN_ENABLE_IMMUTABLE_INSTALLS: 'false' | |
| CYPRESS_MAILOSAUR_API_KEY: ${{ secrets.CYPRESS_MAILOSAUR_API_KEY }} | |
| PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }} | |
| PULUMI_SECRETS_PROVIDER: ${{ secrets.PULUMI_SECRETS_PROVIDER }} | |
| WEBINY_PULUMI_BACKEND: ${{ needs.e2eTestsDdb-os-constants.outputs.pulumi-backend-url }} | |
| AWS_ELASTIC_SEARCH_DOMAIN_NAME: ${{ secrets.AWS_OPEN_SEARCH_DOMAIN_NAME }} | |
| ELASTIC_SEARCH_ENDPOINT: ${{ secrets.OPEN_SEARCH_ENDPOINT }} | |
| ELASTIC_SEARCH_INDEX_PREFIX: ${{ github.run_id }}_ | |
| steps: | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: v5 | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.yarn/cache | |
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: v5/.webiny/cached-packages | |
| key: ${{ needs.constants.outputs.run-cache-key }} | |
| - name: Install dependencies | |
| run: yarn --immutable | |
| working-directory: v5 | |
| - name: Build packages | |
| run: yarn build:quick | |
| working-directory: v5 | |
| - name: Set up Cypress config | |
| run: >- | |
| echo '${{ needs.e2eTestsDdb-os-setup.outputs.cypress-config }}' > | |
| cypress-tests/cypress.config.ts | |
| working-directory: v5 | |
| - name: Cypress - run "${{ matrix.cypress-folder }}" tests | |
| timeout-minutes: 40 | |
| run: yarn cy:run --browser chrome --spec "${{ matrix.cypress-folder }}" | |
| working-directory: v5 | |
| runs-on: ubuntu-latest |