Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
6f8119c
bump versions and update changelogs
vcua-mobify Aug 27, 2025
98ae96a
Add breaking label to multi-ship changelog entry
vcua-mobify Aug 27, 2025
a2f5ff2
snyc to -preview.2
vcua-mobify Aug 27, 2025
db1670d
@W-19442561 - Fix Incorrectly Disabled Continue to Shipping Method Bu…
shauryemahajanSF Aug 27, 2025
94bf167
@W-19443375,@W-19350149 MULTISHIP fix address function mismatch and o…
patricksullivansf Aug 28, 2025
2686902
@W-19451314 - Add ShipmentId to Create Shipment Body (#3211)
shauryemahajanSF Aug 28, 2025
c4b6346
@W-19349040 MULTISHIP fix form default delivery option selection (#3217)
patricksullivansf Aug 29, 2025
3fa25c4
@ W-19450629 feat: remove quantity selector from shipping methods pr…
sf-henry-semaganda Aug 29, 2025
f82002c
Fix non-extensible template to use correct passwordless login callbac…
vcua-mobify Aug 29, 2025
8212e61
Check if monorepo is a dev version before publishing to npm (#3210)
vcua-mobify Sep 2, 2025
a9f5c46
Merge branch 'release-3.12.x' into vc/release-3.12.0-branch
vcua-mobify Sep 2, 2025
7814d32
Merge pull request #3204 from SalesforceCommerceCloud/bugfix/pin-test…
shethj Sep 2, 2025
3564118
Fix: Don't pass `code_challenge` if its undefined in `getPasswordRese…
joeluong-sfcc Sep 3, 2025
ceca164
@W-19364221 - Handle Removal of Last Address for Registered (#3231)
shauryemahajanSF Sep 3, 2025
5be5e07
Gracefully handle when some config.app.* properties are missing (@W-1…
vmarta Sep 3, 2025
7412819
@W-19364130 feat: fix shipping costs summary mode pricing (#3240)
sf-henry-semaganda Sep 3, 2025
3c9541a
bump versions to -preview.3
vcua-mobify Sep 3, 2025
5c9e3b0
Merge pull request #3214 from SalesforceCommerceCloud/restore-per-pr-e2e
shethj Aug 29, 2025
c4c193d
Fix e2e-pr after incorrect merge resolution
vcua-mobify Sep 3, 2025
fd80eac
preview.3 not preview-3
vcua-mobify Sep 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/actions/count_deps/action.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
name: count_deps
inputs:
project_dir:
description: 'Path to the project directory'
required: true
runs:
using: composite
steps:
- name: Count Generated Project Dependencies
# TODO: Can TOTAL_PACKAGES be exported in a cleaner way?
run: |-
MAX_PACKAGES="2260"
total=$(./scripts/count-dependencies.js generated-${{ matrix.template }})
total=$(./scripts/count-dependencies.js "${{ inputs.project_dir }}")
echo "TOTAL_PACKAGES=${total}" >> $GITHUB_ENV

if [ "$total" -gt "$MAX_PACKAGES" ]; then
Expand Down
19 changes: 15 additions & 4 deletions .github/actions/e2e_validate_generated_app/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,21 @@ runs:
steps:
- name: Validate generated project
run: |
set -e
COMMAND="node e2e/scripts/validate-generated-project.js ${{ inputs.PROJECT_KEY }}"
set -euo pipefail

COMMAND=(node e2e/scripts/validate-generated-project.js "${{ inputs.PROJECT_KEY }}")

if [[ -n "${{ inputs.TEMPLATE_VERSION }}" ]]; then
COMMAND="$COMMAND --templateVersion ${{ inputs.TEMPLATE_VERSION }}"
COMMAND+=(--templateVersion "${{ inputs.TEMPLATE_VERSION }}")
fi
$COMMAND

echo "Executing command: ${COMMAND[*]}"

if ! "${COMMAND[@]}"; then
echo "❌ Node.js validation script failed with exit code $?"
echo "::error::Validation of generated project failed"
exit 1
fi

echo "✅ Project validation completed successfully"
shell: bash
9 changes: 5 additions & 4 deletions .github/workflows/e2e-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,6 @@ jobs:
if: ${{ env.SKIP_WORKFLOW != 'true' }}
run: |-
jq -r 'to_entries[] | "\(.key)=\(.value // "")"' e2e/mrt-target/mrt-target-details.json >> "$GITHUB_OUTPUT"
# Set the RETAIL_APP_HOME environment variable to the MRT target URL.
# This is used by the e2e tests to run the tests against the MRT target.
echo "RETAIL_APP_HOME=${{ steps.mrt_target_details.outputs.envURL }}" >> "$GITHUB_ENV"

# Engage post-run cleanup via a Node action that has a post hook.
# - The action defines `runs.post` so its post step runs at the
Expand Down Expand Up @@ -178,4 +175,8 @@ jobs:
- name: Run Playwright tests
if: ${{ env.SKIP_WORKFLOW != 'true' }}
run: |
npx playwright test --project=chromium --project=mobile-chrome --project=a11y-mobile --project=a11y-desktop --workers=4
# Set the RETAIL_APP_HOME environment variable to the MRT target URL.
# This is used by the e2e tests to run the tests against the MRT target.
export RETAIL_APP_HOME="https://${{ steps.mrt_target_details.outputs.ssrExternalHostname }}"
echo "RETAIL_APP_HOME environment variable value: $RETAIL_APP_HOME"
npx playwright test --project=chromium --project=mobile-chrome --project=a11y-mobile-slas-private-client --project=a11y-desktop-slas-private-client --workers=4
2 changes: 1 addition & 1 deletion .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ jobs:

- name: Run a11y test for Node 22 with npm 11
if: env.IS_MRT_NODE == 'true'
run: npm run test:e2e:a11y
run: npm run test:e2e:a11y:slas-public-client

notify-slack-pwa-ext:
needs: [run-generator-retail-app-ext]
Expand Down
58 changes: 42 additions & 16 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,6 @@ jobs:
- name: Run unit tests
uses: "./.github/actions/unit_tests"



- name: Smoke test scripts
if: env.IS_DEFAULT_NPM == 'true'
uses: "./.github/actions/smoke_tests"
Expand Down Expand Up @@ -119,8 +117,20 @@ jobs:
if: env.IS_NOT_FORK == 'true' && env.IS_DEFAULT_NPM == 'true'
uses: "./.github/actions/check_clean"

- name: Check if monorepo version is a dev version
run: |-
version=`jq -r ".version" package.json`
echo "The monorepo version is $version"
if echo "$version" | grep -Eiq "[0-9]-dev(\.|$)"; then
echo "Dev version detected."
echo "IS_DEV_VERSION=true" >> "$GITHUB_ENV"
else
echo "Monorepo is not on a dev version."
echo "IS_DEV_VERSION=false" >> "$GITHUB_ENV"
fi

- name: Publish to NPM
if: env.IS_NOT_FORK == 'true' && env.IS_MRT_NODE == 'true' && env.RELEASE == 'true'
if: env.IS_NOT_FORK == 'true' && env.IS_MRT_NODE == 'true' && env.RELEASE == 'true' && env.IS_DEV_VERSION == 'false'
uses: "./.github/actions/publish_to_npm"
with:
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
Expand Down Expand Up @@ -188,7 +198,6 @@ jobs:
runs-on: ubuntu-latest
env:
IS_TEMPLATE_FROM_RETAIL_REACT_APP: ${{ matrix.template == 'retail-react-app-test-project' || matrix.template == 'retail-react-app-demo' }}
PROJECT_DIR: generated-${{ matrix.template }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -201,31 +210,39 @@ jobs:
- name: Setup Ubuntu Machine
uses: "./.github/actions/setup_ubuntu"

- name: Set project directory with generated projects path
run: |
GENERATED_PROJECTS_DIR=$(node -e "console.log(require('./e2e/config.js').GENERATED_PROJECTS_DIR)")
echo "PATH_TO_PROJECT_DIR=$GENERATED_PROJECTS_DIR/generated-${{ matrix.template }}" >> $GITHUB_ENV

- name: Create generated-projects directory
run: mkdir -p "$(dirname "${{ env.PATH_TO_PROJECT_DIR }}")"

- name: Generate ${{ matrix.template }} project
run: |-
node packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js --outputDir ${{ env.PROJECT_DIR }}
node packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js --outputDir "${{ env.PATH_TO_PROJECT_DIR }}"
env:
GENERATOR_PRESET: ${{ matrix.template }}
timeout-minutes: 8



- name: Run unit tests
if: env.IS_TEMPLATE_FROM_RETAIL_REACT_APP == 'true'
uses: "./.github/actions/unit_tests"
with:
cwd: ${{ env.PROJECT_DIR }}
cwd: ${{ env.PATH_TO_PROJECT_DIR }}

- name: Run smoke tests
if: env.IS_TEMPLATE_FROM_RETAIL_REACT_APP == 'true'
uses: "./.github/actions/smoke_tests"
with:
dir: ${{ env.PROJECT_DIR }}
dir: ${{ env.PATH_TO_PROJECT_DIR }}

- name: Count Generated Project Dependencies
id: count_deps
if: env.IS_TEMPLATE_FROM_RETAIL_REACT_APP == 'true'
uses: "./.github/actions/count_deps"
with:
project_dir: ${{ env.PATH_TO_PROJECT_DIR }}

- name: Store Verdaccio logfile artifact
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -260,7 +277,7 @@ jobs:
if: env.IS_NOT_FORK == 'true' && env.DEVELOP == 'true' && matrix.template == 'retail-react-app-test-project'
uses: "./.github/actions/push_to_mrt"
with:
CWD: ${{ env.PROJECT_DIR }}
CWD: ${{ env.PATH_TO_PROJECT_DIR }}
TARGET: generated-pwa

- name: Send GitHub Action data to Slack workflow (Generated)
Expand All @@ -283,7 +300,6 @@ jobs:
runs-on: windows-latest
env:
IS_TEMPLATE_FROM_RETAIL_REACT_APP: ${{ matrix.template == 'retail-react-app-test-project' || matrix.template == 'retail-react-app-demo' }}
PROJECT_DIR: generated-${{ matrix.template }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -296,30 +312,40 @@ jobs:
- name: Setup Windows Machine
uses: "./.github/actions/setup_windows"

- name: Set project directory with generated projects path
run: |
GENERATED_PROJECTS_DIR=$(node -e "console.log(require('./e2e/config.js').GENERATED_PROJECTS_DIR)")
echo "PATH_TO_PROJECT_DIR=$GENERATED_PROJECTS_DIR/generated-${{ matrix.template }}" >> $GITHUB_ENV
shell: bash

- name: Create generated-projects directory
run: mkdir -p "$(dirname "${{ env.PATH_TO_PROJECT_DIR }}")"
shell: bash

- name: Generate ${{ matrix.template }} project
run: |-
node packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js --outputDir ${{ env.PROJECT_DIR }}
node packages/pwa-kit-create-app/scripts/create-mobify-app-dev.js --outputDir "${{ env.PATH_TO_PROJECT_DIR }}"
env:
GENERATOR_PRESET: ${{ matrix.template }}
timeout-minutes: 7



- name: Run unit tests
if: env.IS_TEMPLATE_FROM_RETAIL_REACT_APP == 'true'
uses: "./.github/actions/unit_tests"
with:
cwd: ${{ env.PROJECT_DIR }}
cwd: ${{ env.PATH_TO_PROJECT_DIR }}

- name: Run smoke tests
if: env.IS_TEMPLATE_FROM_RETAIL_REACT_APP == 'true'
uses: "./.github/actions/smoke_tests"
with:
dir: ${{ env.PROJECT_DIR }}
dir: ${{ env.PATH_TO_PROJECT_DIR }}

- name: Count Generated Project Dependencies
if: env.IS_TEMPLATE_FROM_RETAIL_REACT_APP == 'true'
uses: "./.github/actions/count_deps"
with:
project_dir: ${{ env.PATH_TO_PROJECT_DIR }}

- name: Store Verdaccio logfile artifact
uses: actions/upload-artifact@v4
Expand Down
4 changes: 2 additions & 2 deletions e2e/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ module.exports = {
},
{
expectedPrompt: /Do you wish to use template extensibility?/i,
response: '2\n'
response: '1\n'
},
{
expectedPrompt: /What is the name of your Project?/i,
Expand Down Expand Up @@ -72,7 +72,7 @@ module.exports = {
},
{
expectedPrompt: /Do you wish to use template extensibility?/i,
response: '1\n'
response: '2\n'
},
{
expectedPrompt: /What is the name of your Project?/i,
Expand Down
Loading
Loading