-
Notifications
You must be signed in to change notification settings - Fork 2.7k
137 lines (115 loc) · 5.25 KB
/
msal-node-e2e.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# 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: [16, 18, 20, 22]
sample:
- "auth-code"
- "auth-code-cli-app"
- "client-credentials"
- "device-code"
- "silent-flow"
- "b2c-user-flows"
- "on-behalf-of"
name: ${{ matrix.sample }} - Node v${{ matrix.node }}
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: "npm"
- name: Clean Install
run: npm ci --workspace=samples/msal-node-samples/${{matrix.sample}} --ignore-engines
- name: Build Package
working-directory: samples/msal-node-samples/${{matrix.sample}}
run: npm run build:package
- 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 }}
OBO_WEB_APP_CLIENT_ID: ${{ secrets.OBO_WEB_APP_CLIENT_ID }}
OBO_WEB_APP_CLIENT_SECRET: ${{ secrets.OBO_WEB_APP_CLIENT_SECRET }}
OBO_WEB_API_CLIENT_ID: ${{ secrets.OBO_WEB_API_CLIENT_ID }}
OBO_WEB_API_CLIENT_SECRET: ${{ secrets.OBO_WEB_API_CLIENT_SECRET }}
OBO_WEB_API_SCOPE: ${{ secrets.OBO_WEB_API_SCOPE }}
OBO_WEB_API_TENANT_ID: ${{ secrets.OBO_WEB_API_TENANT_ID }}
run: npm test
- name: Upload E2E Test Screenshots
uses: actions/upload-artifact@v4
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@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: "npm"
- name: Clean Install
run: npm ci --workspace=samples/msal-node-samples/${{matrix.sample}} --ignore-engines
- name: Build Package
working-directory: samples/msal-node-samples/${{matrix.sample}}
run: npm run build:package
- 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@v4
if: failure()
with:
name: e2e-test-screenshots
path: samples/**/screenshots