Skip to content

feat: [SFCC-468] Exposed variation attribute as a site preference in the Algolia BM module #295

feat: [SFCC-468] Exposed variation attribute as a site preference in the Algolia BM module

feat: [SFCC-468] Exposed variation attribute as a site preference in the Algolia BM module #295

Workflow file for this run

name: CI
on:
pull_request:
jobs:
pr-checks:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build:
runs-on: ubuntu-latest
env:
CODE_VERSION: ${{ vars.CODE_VERSION }}
ALGOLIA_APP_ID: ${{ vars.ALGOLIA_APP_ID }}
ALGOLIA_INDEX_NAME: ${{ vars.ALGOLIA_INDEX_NAME }}
SANDBOX_HOST: ${{ vars.SANDBOX_HOST }}
TEST_PRODUCT_ID: ${{ vars.TEST_PRODUCT_ID }}
TEST_MASTER_PRODUCT_ID: ${{ vars.TEST_MASTER_PRODUCT_ID }}
INDEX_PREFIX: ${{ vars.INDEX_PREFIX }}
INVENTORY_LIST_ID: ${{ vars.INVENTORY_LIST_ID }}
SFCC_OAUTH_CLIENT_ID: ${{ secrets.SFCC_OAUTH_CLIENT_ID }}
SFCC_OAUTH_CLIENT_SECRET: ${{ secrets.SFCC_OAUTH_CLIENT_SECRET }}
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install Dependencies
run: npm ci
- name: Compile JS and CSS
run: |
npm run compile:js
npm run compile:scss
unit-tests-and-lints:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install Dependencies
run: npm ci
- name: Run Unit Tests
run: npm run test:unit
- name: Lint JavaScript
run: npm run lint:js
e2e-tests:
runs-on: ubuntu-latest
env:
CODE_VERSION: ${{ vars.CODE_VERSION }}
ALGOLIA_APP_ID: ${{ vars.ALGOLIA_APP_ID }}
ALGOLIA_INDEX_NAME: ${{ vars.ALGOLIA_INDEX_NAME }}
SANDBOX_HOST: ${{ vars.SANDBOX_HOST }}
TEST_PRODUCT_ID: ${{ vars.TEST_PRODUCT_ID }}
TEST_MASTER_PRODUCT_ID: ${{ vars.TEST_MASTER_PRODUCT_ID }}
INDEX_PREFIX: ${{ vars.INDEX_PREFIX }}
INVENTORY_LIST_ID: ${{ vars.INVENTORY_LIST_ID }}
SFCC_OAUTH_CLIENT_ID: ${{ secrets.SFCC_OAUTH_CLIENT_ID }}
SFCC_OAUTH_CLIENT_SECRET: ${{ secrets.SFCC_OAUTH_CLIENT_SECRET }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
TEST_SHOPPER_EMAIL: ${{ vars.TEST_SHOPPER_EMAIL }}
TEST_SHOPPER_PASSWORD: ${{ vars.TEST_SHOPPER_PASSWORD }}
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install Dependencies
run: |
npm ci
- name: Run E2E Tests
id: e2e-tests
run: |
npm run test:e2e
echo "exit_code=$?" >> $GITHUB_OUTPUT
- name: Upload Cypress Screenshots
if: failure()
uses: actions/upload-artifact@v4
with:
name: cypress-screenshots
path: cypress/screenshots
retention-days: 7
- name: Upload Cypress Videos
if: failure()
uses: actions/upload-artifact@v4
with:
name: cypress-videos
path: cypress/videos
retention-days: 7
- name: Send Slack Notification on Failure
if: steps.e2e-tests.outputs.exit_code != '0'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
SLACK_CHANNEL_ID: ${{ vars.SLACK_CHANNEL_ID }}
run: |
node scripts/slackNotifier.js
- name: Fail if E2E Tests Failed
if: steps.e2e-tests.outputs.exit_code != '0'
run: |
echo "E2E tests failed. Check the artifacts for screenshots and videos."
exit 1