Skip to content

LTS March Release #6967

LTS March Release

LTS March Release #6967

Workflow file for this run

# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
# Will not trigger unless PR is ready for review.
name: msal-react E2E Tests
on:
pull_request:
types: [opened, reopened, synchronize, ready_for_review]
paths:
- 'lib/msal-react/**/*'
- 'lib/msal-browser/**/*'
- 'lib/msal-common/**/*'
- 'samples/msal-react-samples/**/*'
- 'samples/e2eTestUtils/**/*'
- 'samples/package-lock.json'
- '!**.md'
- '.github/workflows/msal-react-e2e.yml'
merge_group:
types: [checks_requested]
concurrency:
group: react-e2e-${{github.ref}}
cancel-in-progress: true
permissions:
contents: read
jobs:
run-e2e:
if: (github.repository == 'AzureAD/microsoft-authentication-library-for-js') && (github.actor != 'dependabot[bot]') && ((github.event.pull_request.head.repo.full_name == github.repository) || (github.event_name == 'merge_group')) && !github.event.pull_request.draft
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sample:
- 'react-router-sample'
- 'nextjs-sample'
- 'gatsby-sample'
- 'typescript-sample'
- 'b2c-sample'
name: ${{ matrix.sample }}
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
- name: Restore node_modules for libs
uses: actions/cache@v3
id: lib-cache
with:
path: |
node_modules
lib/*/node_modules
key: ${{ runner.os }}-${{ hashFiles('package-lock.json', 'lib/*/package-lock.json') }}
- name: Clean Install
if: steps.lib-cache.outputs.cache-hit != 'true'
env:
RUNNING_NODE_CI: 1
run: npm ci
- name: Build packages
working-directory: lib/msal-react
run: npm run build:all
- name: Restore node_modules for test tools
uses: actions/cache@v3
id: test-tools-cache
with:
path: |
samples/node_modules
samples/.cache/puppeteer
key: ${{ runner.os }}-react-e2e-${{ hashFiles('samples/package-lock.json') }}
- name: Install Test Tools
if: steps.test-tools-cache.outputs.cache-hit != 'true'
working-directory: samples
run: npm ci
- name: Restore node_modules for sample
uses: actions/cache@v3
id: sample-cache
with:
path: samples/msal-react-samples/${{ matrix.sample }}/node_modules
key: ${{ runner.os }}-react-e2e-${{ hashFiles(format('samples/msal-react-samples/{0}/package.json', matrix.sample), 'samples/package-lock.json') }}
- name: Install ${{ matrix.sample }}
if: steps.sample-cache.outputs.cache-hit != 'true'
working-directory: samples/msal-react-samples/${{ matrix.sample }}
run: |
npm run install:local
npm install
- name: Build ${{ matrix.sample }}
working-directory: samples/msal-react-samples/${{ matrix.sample }}
run: npm run build
- name: E2E Tests
working-directory: samples/msal-react-samples/${{ matrix.sample }}
timeout-minutes: 5
env:
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
run: npm test
- name: Upload E2E Test Screenshots
uses: actions/upload-artifact@v3
if: failure()
with:
name: e2e-test-screenshots
path: samples/**/screenshots