Skip to content

Commit d14e748

Browse files
Merge branch 'develop' into feature/CXSPA-8968
2 parents 568d648 + d4e9083 commit d14e748

File tree

354 files changed

+7029
-2594
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

354 files changed

+7029
-2594
lines changed

Diff for: .eslintrc.json

+6
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,12 @@
126126
"@nx/workspace/no-ngrx-fail-action-without-error-action-implementation": "error",
127127
"@nx/workspace/ngrx-fail-action-must-initialize-error": "error"
128128
}
129+
},
130+
{
131+
"files": [ "*.ts"],
132+
"rules": {
133+
"@nx/workspace/no-const-enum": "error"
134+
}
129135
}
130136
]
131137
}

Diff for: .github/workflows/cache-builded-libs.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
- develop
55
- develop-*
66
- 'epic/**'
7-
- release-*
7+
- release/*
88
name: Cache libs (dist)
99
jobs:
1010
cacheBuildedLibs:

Diff for: .github/workflows/cache-node-modules.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
- develop
55
- develop-*
66
- 'epic/**'
7-
- release-*
7+
- release/*
88
name: Cache node modules
99

1010
env:

Diff for: .github/workflows/ci-continuous-integration.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
branches:
55
- develop
66
- develop-*
7-
- release-*
7+
- release/*
88
- epic/**
99
workflow_dispatch:
1010
# empty as it is used only to manually trigger the workflow

Diff for: .github/workflows/ci-merge-checks.yml

+18-19
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,23 @@ on:
44
branches:
55
- develop
66
- develop-*
7-
- release-*
7+
- release/*
88
workflow_dispatch:
99
# empty as it is used only to manually trigger the workflow
10-
10+
1111
env:
1212
CYPRESS_KEY: ${{ secrets.CYPRESS_KEY }}
1313
GH_TOKEN: ${{ github.token }}
1414
NODE_VERSION: '20'
15-
AMP_API_TOKEN: ${{ secrets.AMP_API_TOKEN }}
1615
CONTINUUM_REGISTRY_TOKEN: ${{ secrets.CONTINUUM_REGISTRY_TOKEN }}
1716

18-
concurrency:
17+
concurrency:
1918
group: ci-merge-checks-${{ github.head_ref || github.run_id }}
2019
cancel-in-progress: true
2120

2221
name: Merge Checks
2322
jobs:
24-
no_retries:
23+
no_retries:
2524
name: MC - Prevent retries
2625
# E2Es can't be retried. Moreover, in some retry cases, they don't run
2726
# and the job returns a success code.
@@ -31,20 +30,20 @@ jobs:
3130
uses: actions/github-script@v7
3231
with:
3332
script: |
34-
core.setFailed('Please push a commit to trigger the build. To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`')
33+
core.setFailed('Please push a commit to trigger the build. To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`')
3534
if: ${{ github.run_attempt > 1 }}
3635
validate_e2e_execution:
3736
name: MC - Confirm e2es should run
3837
runs-on: ubuntu-latest
39-
outputs:
38+
outputs:
4039
SHOULD_RUN_E2E: ${{ steps.save-e2e-output-result.outputs.SHOULD_RUN_E2E }}
4140
steps:
4241
- uses: actions/checkout@v4
4342
with:
4443
fetch-depth: 0
4544
- name: Determine whether to run e2es
4645
id: save-e2e-output-result
47-
run: |
46+
run: |
4847
source ci-scripts/validate-e2e-execution.sh
4948
echo "::set-output name=SHOULD_RUN_E2E::$(echo $RUN_E2E)"
5049
b2c_e2e_tests:
@@ -60,7 +59,7 @@ jobs:
6059
uses: actions/github-script@v7
6160
with:
6261
script: |
63-
core.setFailed('Please push a commit to trigger the build. To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`')
62+
core.setFailed('Please push a commit to trigger the build. To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`')
6463
if: ${{ github.run_attempt > 1 }}
6564
- uses: actions/checkout@v4
6665
- name: Setup node
@@ -71,14 +70,14 @@ jobs:
7170
id: cache-node-modules
7271
uses: actions/cache@v4
7372
with:
74-
path: |
73+
path: |
7574
node_modules
7675
projects/storefrontapp-e2e-cypress/node_modules
7776
~/.cache/Cypress
7877
key: nodemodules-${{ github.event.pull_request.base.sha }}
7978
restore-keys: nodemodules-${{ github.event.pull_request.base.sha }}
8079
- name: Run e2es
81-
env:
80+
env:
8281
SPA_ENV: ci,b2c
8382
BUILD_NUMBER: ci-build-number-${{ github.event.pull_request.head.sha || github.run_id }}
8483
run: |
@@ -93,7 +92,7 @@ jobs:
9392
uses: actions/github-script@v7
9493
with:
9594
script: |
96-
core.setFailed('Please push a commit to trigger the build. To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`')
95+
core.setFailed('Please push a commit to trigger the build. To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`')
9796
if: ${{ github.run_attempt > 1 }}
9897
- uses: actions/checkout@v4
9998
- name: Setup node
@@ -104,14 +103,14 @@ jobs:
104103
id: cache-node-modules
105104
uses: actions/cache@v4
106105
with:
107-
path: |
106+
path: |
108107
node_modules
109108
projects/storefrontapp-e2e-cypress/node_modules
110109
~/.cache/Cypress
111110
key: nodemodules-${{ github.event.pull_request.base.sha }}
112111
restore-keys: nodemodules-${{ github.event.pull_request.base.sha }}
113112
- name: Run e2es
114-
env:
113+
env:
115114
SPA_ENV: ci,b2c
116115
BUILD_NUMBER: ci-build-number-${{ github.event.pull_request.head.sha || github.run_id }}
117116
run: |
@@ -129,7 +128,7 @@ jobs:
129128
uses: actions/github-script@v7
130129
with:
131130
script: |
132-
core.setFailed('Please push a commit to trigger the build. To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`')
131+
core.setFailed('Please push a commit to trigger the build. To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`')
133132
if: ${{ github.run_attempt > 1 }}
134133
- uses: actions/checkout@v4
135134
- name: Setup node
@@ -140,7 +139,7 @@ jobs:
140139
id: cache-node-modules
141140
uses: actions/cache@v4
142141
with:
143-
path: |
142+
path: |
144143
node_modules
145144
projects/storefrontapp-e2e-cypress/node_modules
146145
~/.cache/Cypress
@@ -150,7 +149,7 @@ jobs:
150149
env:
151150
SPA_ENV: ci,b2b
152151
BUILD_NUMBER: ci-build-number-${{ github.event.pull_request.head.sha || github.run_id }}
153-
run: |
152+
run: |
154153
ci-scripts/e2e-cypress.sh -s b2b
155154
merge_checks_result:
156155
needs: [b2c_e2e_tests, b2c_ssr_e2e_tests, b2b_e2e_tests]
@@ -167,11 +166,11 @@ jobs:
167166
owner: context.repo.owner,
168167
repo: context.repo.repo,
169168
body: `# Merge Checks Failed
170-
Please push a commit to re-trigger the build.
169+
Please push a commit to re-trigger the build.
171170
To push an empty commit you can use \`git commit --allow-empty -m "Trigger Build"\``
172171
})
173172
core.setFailed('Please push a commit to re-trigger the build. To push an empty commit you can use `git commit --allow-empty -m "Trigger Build"`')
174173
if: |
175174
needs.b2c_e2e_tests.result == 'failure' || needs.b2c_e2e_tests.result == 'cancelled' ||
176-
needs.b2c_ssr_e2e_tests.result == 'failure' || needs.b2c_ssr_e2e_tests.result == 'cancelled' ||
175+
needs.b2c_ssr_e2e_tests.result == 'failure' || needs.b2c_ssr_e2e_tests.result == 'cancelled' ||
177176
needs.b2b_e2e_tests.result == 'failure' || needs.b2b_e2e_tests.result == 'cancelled'

Diff for: .github/workflows/ci-pull-request-status.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
branches:
55
- develop
66
- develop-*
7-
- release-*
7+
- release/*
88
workflow_dispatch:
99
# empty as it is used only to manually trigger the workflow
1010

Diff for: .github/workflows/ci.yml

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@ on:
33
branches:
44
- develop
55
- develop-*
6-
- release-*
6+
- release/*
77
workflow_dispatch:
88
# empty as it is used only to manually trigger the workflow
99

1010
env:
1111
CYPRESS_KEY: ${{ secrets.CYPRESS_KEY }}
1212
NODE_VERSION: '20'
13-
AMP_API_TOKEN: ${{ secrets.AMP_API_TOKEN }}
1413
CONTINUUM_REGISTRY_TOKEN: ${{ secrets.CONTINUUM_REGISTRY_TOKEN }}
1514

1615
concurrency:
@@ -232,7 +231,7 @@ jobs:
232231
id: cache-node-modules
233232
uses: actions/cache@v4
234233
with:
235-
path: |
234+
path: |
236235
node_modules
237236
key: nodemodules-${{ github.event.pull_request.base.sha }}
238237
restore-keys: nodemodules-${{ github.event.pull_request.base.sha }}

Diff for: .github/workflows/codeql.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ name: "CodeQL"
1313

1414
on:
1515
push:
16-
branches: [ "develop", "develop*", "release-*", "epic/*"]
16+
branches: [ "develop", "develop*", "release/*", "epic/*"]
1717
pull_request:
18-
branches: [ "develop", "develop*", "release-*", "epic/*" ]
18+
branches: [ "develop", "develop*", "release/*", "epic/*" ]
1919
schedule:
2020
- cron: '45 2 * * *'
2121

Diff for: .github/workflows/lighthouse.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
branches:
55
- develop
66
- develop-*
7-
- release-*
7+
- release/*
88
workflow_dispatch:
99
# empty as it is used only to manually trigger the workflow
1010
env:

Diff for: .github/workflows/minor-release.yml

+34-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
name: Minor Release
1+
name: Release snapshot (creates a snapshot from the develop branch or from the input-provided source)
22

33
on:
44
workflow_dispatch:
55
inputs:
6+
source:
7+
description: 'Source to release from. Could be any branch or tag (e.g., release/2211.20.x, 2211.20.0). By default, the develop branch is used.'
8+
required: false
69
version:
710
description: 'Release version (e.g., 2211.20.0 or 2211.20.0-1)'
8-
required: false
11+
required: true
912

1013
jobs:
1114
release:
@@ -14,7 +17,7 @@ jobs:
1417
- name: Checkout code
1518
uses: actions/checkout@v4
1619
with:
17-
ref: develop
20+
ref: ${{ github.event.inputs.source || 'develop' }}
1821

1922
- name: Configure Git
2023
run: |
@@ -96,4 +99,31 @@ jobs:
9699
git add .
97100
git commit -m "Release ${{ env.version }}"
98101
git push origin "${{ env.RELEASE_BRANCH }}"
99-
102+
103+
- name: Tag the release
104+
run: |
105+
git fetch origin "${{ env.RELEASE_BRANCH }}"
106+
git checkout "${{ env.RELEASE_BRANCH }}"
107+
108+
TAG="${{ env.version }}"
109+
110+
# Check if tag already exists
111+
if git rev-parse "refs/tags/$TAG" >/dev/null 2>&1; then
112+
echo "Tag $TAG already exists. Skipping creation."
113+
else
114+
git tag -a "$TAG" -m "$TAG"
115+
git push origin "$TAG"
116+
echo "Created and pushed tag: $TAG"
117+
fi
118+
119+
- name: Sync branch to a private repo
120+
env:
121+
GH_TOKEN: ${{ secrets.GH_PR_TOKEN }}
122+
run: |
123+
echo "Triggering repo-sync.yml with branch: ${{ env.RELEASE_BRANCH }}"
124+
125+
curl -X POST \
126+
-H "Accept: application/vnd.github+json" \
127+
-H "Authorization: Bearer $GH_TOKEN" \
128+
https://api.github.com/repos/${{ github.repository }}/actions/workflows/repo-sync.yml/dispatches \
129+
-d "{\"ref\":\"${{ env.RELEASE_BRANCH }}\",\"inputs\":{\"branch_to_sync\":\"${{ env.RELEASE_BRANCH }}\"}}"

Diff for: .github/workflows/pr-title-check.yml

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: PR Title Check
2+
3+
on:
4+
pull_request:
5+
types: [opened, edited, synchronize, reopened]
6+
7+
jobs:
8+
check-pr-title:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Validate PR title
12+
id: validate
13+
env:
14+
PR_TITLE: ${{ github.event.pull_request.title }}
15+
run: |
16+
echo "Checking PR title: $PR_TITLE"
17+
18+
if [[ ! "$PR_TITLE" =~ ^(docs|feat|fix|perf|refactor|style|test|chore):\ .+ ]]; then
19+
echo "❌ PR title is invalid."
20+
exit 1
21+
fi
22+
23+
comment-on-failure:
24+
needs: check-pr-title
25+
if: failure()
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Post PR comment on failure
29+
uses: actions/github-script@v7
30+
with:
31+
github-token: ${{ secrets.GITHUB_TOKEN }}
32+
script: |
33+
const issue_number = context.payload.pull_request.number;
34+
const owner = context.repo.owner;
35+
const repo = context.repo.repo;
36+
37+
const commentBody = `# 🚨 PR Title Validation Failed 🚨
38+
39+
Your pull request title does not follow the required format. Please update it to match the expected pattern:
40+
41+
**Expected format:**
42+
\`<type>: <subject>\`
43+
44+
## **Allowed Types**
45+
- **docs:** Changes to documentation only
46+
- **feat:** New feature work
47+
- **fix:** Bug fixes
48+
- **perf:** Code improvements for performance
49+
- **refactor:** Code changes that are not bug fixes or features
50+
- **style:** Code style changes (e.g., whitespace, formatting)
51+
- **test:** Adding or updating tests
52+
- **chore:** Build, CI, scripts, configs, etc.
53+
54+
## **Example of a valid PR title**
55+
✅ \`feat: Add user authentication\`
56+
✅ \`fix: Resolve checkout bug\`
57+
✅ \`docs: Update API documentation\`
58+
59+
❌ **Merge is blocked until the PR title is corrected.**`;
60+
61+
github.rest.issues.createComment({
62+
issue_number: issue_number,
63+
owner: owner,
64+
repo: repo,
65+
body: commentBody
66+
});

Diff for: .github/workflows/prepend-license.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
token: ${{ secrets.GH_PR_TOKEN }}
1515
- uses: actions/setup-python@v5
1616
with:
17-
python-version: '3.9'
17+
python-version: '3.13'
1818
- name: Download reuse tool
1919
run: pip3 install --user reuse
2020
- name: Setup git config

Diff for: core-libs/setup/package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@spartacus/setup",
3-
"version": "2211.37.0",
3+
"version": "2211.38.0-1",
44
"description": "Includes features that makes Spartacus and it's setup easier and streamlined.",
55
"keywords": [
66
"spartacus",
@@ -21,10 +21,10 @@
2121
"peerDependencies": {
2222
"@angular/core": "^19.1.8",
2323
"@angular/ssr": "^19.1.9",
24-
"@spartacus/cart": "2211.37.0",
25-
"@spartacus/core": "2211.37.0",
26-
"@spartacus/order": "2211.37.0",
27-
"@spartacus/user": "2211.37.0"
24+
"@spartacus/cart": "2211.38.0-1",
25+
"@spartacus/core": "2211.38.0-1",
26+
"@spartacus/order": "2211.38.0-1",
27+
"@spartacus/user": "2211.38.0-1"
2828
},
2929
"optionalDependencies": {
3030
"@angular/platform-server": "^19.1.8",

0 commit comments

Comments
 (0)