Backport hydrateCache() changes to 2.x #7282
Workflow file for this run
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 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-node E2E Tests | |
on: | |
pull_request: | |
types: [opened, reopened, synchronize, ready_for_review] | |
paths: | |
- 'lib/msal-node/**/*' | |
- 'lib/msal-common/**/*' | |
- 'samples/msal-node-samples/**/*' | |
- 'samples/e2eTestUtils/**/*' | |
- 'samples/package-lock.json' | |
- '!**.md' | |
- '.github/workflows/msal-node-e2e.yml' | |
merge_group: | |
types: [checks_requested] | |
concurrency: | |
group: node-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: | |
node: [ 14, 16, 18 ] | |
sample: | |
- 'auth-code' | |
- 'client-credentials' | |
- 'device-code' | |
- 'silent-flow' | |
- 'b2c-user-flows' | |
name: ${{ matrix.sample }} - Node v${{ matrix.node }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Restore node_modules for libs | |
uses: actions/cache@v3 | |
id: lib-cache | |
with: | |
path: | | |
node_modules | |
lib/msal-common/node_modules | |
lib/msal-node/node_modules | |
key: ${{ runner.os }}-node-e2e-${{matrix.node}}-${{ hashFiles('package-lock.json', 'lib/msal-common/package-lock.json', 'lib/msal-node/package-lock.json') }} | |
- name: Clean Install | |
if: steps.lib-cache.outputs.cache-hit != 'true' | |
run: npm ci --ignore-scripts | |
- name: Link local packages | |
run: npx lerna@6 --scope @azure/msal-node --scope @azure/msal-common bootstrap | |
- name: Build Package | |
working-directory: samples/msal-node-samples | |
run: npm run build:package | |
- name: Restore node_modules for test tools | |
if: matrix.node == '10' || matrix.node == '12' | |
uses: actions/cache@v3 | |
id: test-tools-cache | |
with: | |
path: | | |
samples/node_modules | |
samples/.cache/puppeteer | |
key: ${{ runner.os }}-node-test-tools-${{ matrix.node }}-${{ 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-node-samples/${{ matrix.sample }}/node_modules | |
key: ${{ runner.os }}-node-e2e-${{ matrix.sample }}-${{ matrix.node }}-${{ hashFiles(format('samples/msal-node-samples/{0}/package.json', matrix.sample), 'samples/package-lock.json') }} | |
- name: Install Sample | |
if: steps.sample-cache.outputs.cache-hit != 'true' | |
working-directory: samples/msal-node-samples/${{ matrix.sample }} | |
run: | | |
npm run install:local | |
npm install | |
- name: E2E Tests | |
working-directory: samples/msal-node-samples/${{ matrix.sample }} | |
timeout-minutes: 10 | |
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 | |
# Some tooling no longer supports old versions of node - this job will downgrade certain dependencies for testing | |
# run-e2e-node-old: | |
# 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')) | |
# runs-on: ubuntu-latest | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# node: [ 10, 12 ] | |
# sample: | |
# - 'auth-code' | |
# - 'device-code' | |
# - 'silent-flow' | |
# - 'b2c-user-flows' | |
# name: ${{ matrix.sample }} - Node v${{ matrix.node }} | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Use Node.js | |
# uses: actions/setup-node@v3 | |
# with: | |
# node-version: ${{ matrix.node }} | |
# - name: Restore node_modules for libs | |
# uses: actions/cache@v3 | |
# id: lib-cache | |
# with: | |
# path: | | |
# node_modules | |
# lib/msal-common/node_modules | |
# lib/msal-node/node_modules | |
# key: ${{ runner.os }}-node-e2e-${{matrix.node}}-${{ hashFiles('package-lock.json', 'lib/msal-common/package-lock.json', 'lib/msal-node/package-lock.json') }} | |
# - name: Clean Install | |
# if: steps.lib-cache.outputs.cache-hit != 'true' | |
# run: npm ci --ignore-scripts | |
# # Lerna v5 dropped support for Node 10 and 12 | |
# - name: Link local packages | |
# run: npx lerna@4 --scope @azure/msal-node --scope @azure/msal-common bootstrap | |
# - name: Build Package | |
# working-directory: samples/msal-node-samples | |
# run: npm run build:package | |
# # Puppeteer v19 drops support for Node 10 and 12 | |
# - name: Downgrade puppeteer for Node 10 and 12 | |
# working-directory: samples | |
# run: npm install [email protected] | |
# - 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-node-samples/${{ matrix.sample }}/node_modules | |
# key: ${{ runner.os }}-node-e2e-${{ matrix.sample }}-${{ matrix.node }}-${{ hashFiles(format('samples/msal-node-samples/{0}/package.json', matrix.sample), 'samples/package-lock.json') }} | |
# - name: Install Sample | |
# if: steps.sample-cache.outputs.cache-hit != 'true' | |
# working-directory: samples/msal-node-samples/${{ matrix.sample }} | |
# run: | | |
# npm run install:local | |
# npm install | |
# - name: E2E Tests | |
# working-directory: samples/msal-node-samples/${{ matrix.sample }} | |
# timeout-minutes: 10 | |
# 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 | |
run-electron-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: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, macos-latest] | |
sample: | |
- 'ElectronSystemBrowserTestApp' | |
name: ${{ matrix.sample }} - ${{ matrix.os }} | |
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/msal-common/node_modules | |
lib/msal-node/node_modules | |
key: ${{ runner.os }}-node-electron-e2e-${{ hashFiles('package-lock.json', 'lib/msal-common/package-lock.json', 'lib/msal-node/package-lock.json') }} | |
- name: Clean Install | |
if: steps.lib-cache.outputs.cache-hit != 'true' | |
run: npm ci | |
- name: Build Package | |
working-directory: samples/msal-node-samples | |
run: npm run build:package | |
- name: Restore node_modules for test tools | |
uses: actions/cache@v3 | |
id: test-tools-cache | |
with: | |
path: samples/node_modules | |
key: ${{ runner.os }}-node-test-tools-${{ hashFiles('samples/package-lock.json') }} | |
- name: Install Test Tools | |
if: steps.test-tools-cache.outputs.cache-hit != 'true' | |
working-directory: samples | |
run: npm ci | |
env: | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
PLAYWRIGHT_BROWSERS_PATH: 0 | |
- name: Restore node_modules for sample | |
uses: actions/cache@v3 | |
id: sample-cache | |
with: | |
path: samples/msal-node-samples/${{ matrix.sample }}/node_modules | |
key: ${{ runner.os }}-electron-e2e-${{ matrix.sample }}-${{ hashFiles(format('samples/msal-node-samples/{0}/package.json', matrix.sample), 'samples/package-lock.json') }} | |
- name: Install Sample | |
if: steps.sample-cache.outputs.cache-hit != 'true' | |
working-directory: samples/msal-node-samples/${{ matrix.sample }} | |
run: | | |
npm run install:local | |
npm install | |
- name: Install Playwright | |
working-directory: samples/msal-node-samples/${{ matrix.sample }} | |
run: npx playwright install | |
- name: Build Sample | |
working-directory: samples/msal-node-samples/${{ matrix.sample }} | |
run: | | |
npm run build | |
- name: E2E Tests | |
working-directory: samples/msal-node-samples/${{ matrix.sample }} | |
timeout-minutes: 10 | |
env: | |
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} | |
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} | |
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} | |
DEBUG: pw:browser | |
run: npm test | |
- name: Upload E2E Test Screenshots | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: e2e-test-screenshots | |
path: samples/**/screenshots |