From e7e24e1b5d712c48d6ddc1374eacd7e7599bc18b Mon Sep 17 00:00:00 2001 From: Hector Morales Date: Tue, 6 Feb 2024 13:32:35 -0800 Subject: [PATCH] Add optional dependencies to react workflow (#6879) - Installs optional dependencies on msal-react-e2e workflow since they're missing because of an npm bug that ignores optional dependencies --- .github/workflows/msal-react-e2e.yml | 120 ++++---- ...-1fd0e43b-1fe4-486c-84fd-de6c61594ad2.json | 7 + lib/msal-react/package.json | 2 +- package-lock.json | 267 ++++++++++++++++-- 4 files changed, 319 insertions(+), 77 deletions(-) create mode 100644 change/@azure-msal-react-1fd0e43b-1fe4-486c-84fd-de6c61594ad2.json diff --git a/.github/workflows/msal-react-e2e.yml b/.github/workflows/msal-react-e2e.yml index c003f9033d..1d631f1ccf 100644 --- a/.github/workflows/msal-react-e2e.yml +++ b/.github/workflows/msal-react-e2e.yml @@ -5,76 +5,80 @@ 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] + 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 + group: react-e2e-${{github.ref}} + cancel-in-progress: true permissions: - contents: read + 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 + 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' + strategy: + fail-fast: false + matrix: + sample: + - "react-router-sample" + - "nextjs-sample" + - "gatsby-sample" + - "typescript-sample" + - "b2c-sample" - name: ${{ matrix.sample }} + name: ${{ matrix.sample }} - steps: - - uses: actions/checkout@v4 + steps: + - uses: actions/checkout@v4 - - name: Use Node.js - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: 'npm' + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: "npm" - - name: Clean Install - run: npm ci --workspace=samples/msal-react-samples/${{matrix.sample}} + - name: Clean Install + run: npm ci --workspace=samples/msal-react-samples/${{matrix.sample}} - - name: Build packages - working-directory: lib/msal-react - run: npm run build:all + # Required because of https://github.com/npm/cli/issues/4828 + - name: React optional dependencies + run: npm install --workspace=samples/msal-react-samples/${{matrix.sample}} --no-save @rollup/rollup-linux-x64-gnu @parcel/watcher-linux-x64-glibc - - name: Build ${{ matrix.sample }} - working-directory: samples/msal-react-samples/${{ matrix.sample }} - run: npm run build + - name: Build packages + working-directory: lib/msal-react + run: npm run build:all - - 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: Build ${{ matrix.sample }} + working-directory: samples/msal-react-samples/${{ matrix.sample }} + run: npm run build - - name: Upload E2E Test Screenshots - uses: actions/upload-artifact@v4 - if: failure() - with: - name: e2e-test-screenshots - path: samples/**/screenshots + - 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@v4 + if: failure() + with: + name: e2e-test-screenshots + path: samples/**/screenshots diff --git a/change/@azure-msal-react-1fd0e43b-1fe4-486c-84fd-de6c61594ad2.json b/change/@azure-msal-react-1fd0e43b-1fe4-486c-84fd-de6c61594ad2.json new file mode 100644 index 0000000000..c7b853e3d5 --- /dev/null +++ b/change/@azure-msal-react-1fd0e43b-1fe4-486c-84fd-de6c61594ad2.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "Add optional dependencies to react workflow #6879", + "packageName": "@azure/msal-react", + "email": "hemoral@microsoft.com", + "dependentChangeType": "none" +} diff --git a/lib/msal-react/package.json b/lib/msal-react/package.json index 7c7730adfd..ee267874c7 100644 --- a/lib/msal-react/package.json +++ b/lib/msal-react/package.json @@ -65,7 +65,7 @@ "prettier": "2.8.7", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^4.6.0", + "rollup": "^4.9.6", "ts-jest": "^29.1.0", "tslib": "^2.0.0", "typescript": "^4.9.5" diff --git a/package-lock.json b/package-lock.json index 18f9d21c36..a2ba3f033e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,7 +47,6 @@ "extensions/msal-node-extensions": { "name": "@azure/msal-node-extensions", "version": "1.0.10", - "hasInstallScript": true, "license": "MIT", "dependencies": { "@azure/msal-common": "14.6.1", @@ -1248,7 +1247,7 @@ "prettier": "2.8.7", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^4.6.0", + "rollup": "^4.9.6", "ts-jest": "^29.1.0", "tslib": "^2.0.0", "typescript": "^4.9.5" @@ -1262,9 +1261,13 @@ } }, "lib/msal-react/node_modules/rollup": { - "version": "4.6.0", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", + "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", "dev": true, - "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, "bin": { "rollup": "dist/bin/rollup" }, @@ -1273,18 +1276,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.6.0", - "@rollup/rollup-android-arm64": "4.6.0", - "@rollup/rollup-darwin-arm64": "4.6.0", - "@rollup/rollup-darwin-x64": "4.6.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.6.0", - "@rollup/rollup-linux-arm64-gnu": "4.6.0", - "@rollup/rollup-linux-arm64-musl": "4.6.0", - "@rollup/rollup-linux-x64-gnu": "4.6.0", - "@rollup/rollup-linux-x64-musl": "4.6.0", - "@rollup/rollup-win32-arm64-msvc": "4.6.0", - "@rollup/rollup-win32-ia32-msvc": "4.6.0", - "@rollup/rollup-win32-x64-msvc": "4.6.0", + "@rollup/rollup-android-arm-eabi": "4.9.6", + "@rollup/rollup-android-arm64": "4.9.6", + "@rollup/rollup-darwin-arm64": "4.9.6", + "@rollup/rollup-darwin-x64": "4.9.6", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", + "@rollup/rollup-linux-arm64-gnu": "4.9.6", + "@rollup/rollup-linux-arm64-musl": "4.9.6", + "@rollup/rollup-linux-riscv64-gnu": "4.9.6", + "@rollup/rollup-linux-x64-gnu": "4.9.6", + "@rollup/rollup-linux-x64-musl": "4.9.6", + "@rollup/rollup-win32-arm64-msvc": "4.9.6", + "@rollup/rollup-win32-ia32-msvc": "4.9.6", + "@rollup/rollup-win32-x64-msvc": "4.9.6", "fsevents": "~2.3.2" } }, @@ -14578,6 +14582,20 @@ "fsevents": "2.3.2" } }, + "node_modules/@playwright/test/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { "version": "0.5.11", "license": "MIT", @@ -14976,13 +14994,170 @@ } } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", + "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", + "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", + "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", + "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", + "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", + "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", + "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", + "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", + "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", + "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", + "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", + "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.6.0", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", + "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" @@ -18849,6 +19024,16 @@ "node": ">=8" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "peer": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "4.1.0", "license": "MIT", @@ -24812,6 +24997,13 @@ "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true, + "peer": true + }, "node_modules/filelist": { "version": "1.0.4", "license": "Apache-2.0", @@ -25666,6 +25858,19 @@ "version": "1.0.0", "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/fstream": { "version": "1.0.12", "dev": true, @@ -35003,6 +35208,13 @@ "thenify-all": "^1.0.0" } }, + "node_modules/nan": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "optional": true, + "peer": true + }, "node_modules/nanoid": { "version": "3.3.7", "funding": [ @@ -48865,6 +49077,25 @@ "node": ">=0.10.0" } }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/watchpack-chokidar2/node_modules/glob-parent": { "version": "3.1.0", "license": "ISC",