From a4ba888916adde047cc8db123909012cb3f9d060 Mon Sep 17 00:00:00 2001 From: Hinton Date: Tue, 5 Nov 2024 19:17:32 +0100 Subject: [PATCH] Update build workflow --- .eslintignore | 1 + .github/workflows/build-browser.yml | 112 ++++++++++++++++------------ apps/browser/package.json | 6 +- apps/browser/scripts/dist.ps1 | 12 ++- 4 files changed, 83 insertions(+), 48 deletions(-) diff --git a/.eslintignore b/.eslintignore index 68d426174ac..b6c475d3326 100644 --- a/.eslintignore +++ b/.eslintignore @@ -12,6 +12,7 @@ storybook-static apps/browser/config/config.js apps/browser/src/auth/scripts/duo.js +apps/browser/webpack/manifest.js apps/desktop/desktop_native apps/desktop/src/auth/scripts/duo.js diff --git a/.github/workflows/build-browser.yml b/.github/workflows/build-browser.yml index 34c69912f50..d667971ee33 100644 --- a/.github/workflows/build-browser.yml +++ b/.github/workflows/build-browser.yml @@ -151,16 +151,74 @@ jobs: zip -r browser-source.zip browser-source + - name: Upload browser source + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + with: + name: browser-source-${{ env._BUILD_NUMBER }}.zip + path: browser-source.zip + if-no-files-found: error + - name: NPM setup run: npm ci working-directory: browser-source/ - - name: Build - run: npm run dist + - name: Build Chrome + run: npm run dist:chrome working-directory: browser-source/apps/browser - - name: Build Manifest v3 - run: npm run dist:mv3 + - name: Upload Chrome MV3 artifact + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + with: + name: dist-chrome-MV3-${{ env._BUILD_NUMBER }}.zip + path: browser-source/apps/browser/dist/dist-chrome-mv3.zip + if-no-files-found: error + + - name: Build Edge + run: npm run dist:edge + working-directory: browser-source/apps/browser + + - name: Upload Edge artifact + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + with: + name: dist-edge-${{ env._BUILD_NUMBER }}.zip + path: browser-source/apps/browser/dist/dist-edge.zip + if-no-files-found: error + + - name: Build Edge (MV3) + run: npm run dist:edge:mv3 + working-directory: browser-source/apps/browser + + - name: Upload Edge MV3 artifact (DO NOT USE FOR PROD) + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + with: + name: DO-NOT-USE-FOR-PROD-dist-edge-MV3-${{ env._BUILD_NUMBER }}.zip + path: browser-source/apps/browser/dist/dist-edge-mv3.zip + if-no-files-found: error + + - name: Build Firefox + run: npm run dist:firefox + working-directory: browser-source/apps/browser + + - name: Upload Firefox artifact + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + with: + name: dist-firefox-${{ env._BUILD_NUMBER }}.zip + path: browser-source/apps/browser/dist/dist-firefox.zip + if-no-files-found: error + + - name: Build Firefox (MV3) + run: npm run dist:firefox:mv3 + working-directory: browser-source/apps/browser + + - name: Upload Firefox MV3 artifact (DO NOT USE FOR PROD) + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + with: + name: DO-NOT-USE-FOR-PROD-dist-firefox-MV3-${{ env._BUILD_NUMBER }}.zip + path: browser-source/apps/browser/dist/dist-firefox-mv3.zip + if-no-files-found: error + + - name: Build Opera + run: npm run dist:opera working-directory: browser-source/apps/browser - name: Upload Opera artifact @@ -170,6 +228,10 @@ jobs: path: browser-source/apps/browser/dist/dist-opera.zip if-no-files-found: error + - name: Build Opera (MV3) + run: npm run dist:opera:mv3 + working-directory: browser-source/apps/browser + - name: Upload Opera MV3 artifact (DO NOT USE FOR PROD) uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: @@ -177,48 +239,6 @@ jobs: path: browser-source/apps/browser/dist/dist-opera-mv3.zip if-no-files-found: error - - name: Upload Chrome MV3 artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 - with: - name: dist-chrome-MV3-${{ env._BUILD_NUMBER }}.zip - path: browser-source/apps/browser/dist/dist-chrome-mv3.zip - if-no-files-found: error - - - name: Upload Firefox artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 - with: - name: dist-firefox-${{ env._BUILD_NUMBER }}.zip - path: browser-source/apps/browser/dist/dist-firefox.zip - if-no-files-found: error - - - name: Upload Firefox MV3 artifact (DO NOT USE FOR PROD) - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 - with: - name: DO-NOT-USE-FOR-PROD-dist-firefox-MV3-${{ env._BUILD_NUMBER }}.zip - path: browser-source/apps/browser/dist/dist-firefox-mv3.zip - if-no-files-found: error - - - name: Upload Edge artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 - with: - name: dist-edge-${{ env._BUILD_NUMBER }}.zip - path: browser-source/apps/browser/dist/dist-edge.zip - if-no-files-found: error - - - name: Upload Edge MV3 artifact (DO NOT USE FOR PROD) - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 - with: - name: DO-NOT-USE-FOR-PROD-dist-edge-MV3-${{ env._BUILD_NUMBER }}.zip - path: browser-source/apps/browser/dist/dist-edge-mv3.zip - if-no-files-found: error - - - name: Upload browser source - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 - with: - name: browser-source-${{ env._BUILD_NUMBER }}.zip - path: browser-source.zip - if-no-files-found: error - build-safari: name: Build Safari runs-on: macos-13 diff --git a/apps/browser/package.json b/apps/browser/package.json index 9fcd111c83a..bae707266eb 100644 --- a/apps/browser/package.json +++ b/apps/browser/package.json @@ -19,11 +19,15 @@ "build:prod:firefox": "cross-env NODE_ENV=production NODE_OPTIONS=\"--max-old-space-size=4096\" npm run build:firefox", "build:prod:opera": "cross-env NODE_ENV=production NODE_OPTIONS=\"--max-old-space-size=4096\" npm run build:opera", "build:prod:safari": "cross-env NODE_ENV=production NODE_OPTIONS=\"--max-old-space-size=4096\" npm run build:safari", - "dist:chrome": "npm run build:prod:chrome && ./scripts/dist.ps1 chrome", + "dist:chrome": "npm run build:prod:chrome && cross-env MANIFEST_VERSION=3 ./scripts/dist.ps1 chrome", "dist:edge": "npm run build:prod:edge && ./scripts/dist.ps1 edge", "dist:firefox": "npm run build:prod:firefox && ./scripts/dist.ps1 firefox", "dist:opera": "npm run build:prod:opera && ./scripts/dist.ps1 opera", "dist:safari": "npm run build:prod:safari && ./scripts/dist.ps1 safari", + "dist:edge:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:edge", + "dist:firefox:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:firefox", + "dist:opera:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:opera", + "dist:safari:mv3": "cross-env MANIFEST_VERSION=3 npm run dist:safari", "test": "jest", "test:watch": "jest --watch", "test:watch:all": "jest --watchAll" diff --git a/apps/browser/scripts/dist.ps1 b/apps/browser/scripts/dist.ps1 index 7c75794fa9c..20b92fcaff9 100755 --- a/apps/browser/scripts/dist.ps1 +++ b/apps/browser/scripts/dist.ps1 @@ -22,6 +22,11 @@ if (-not $browser) { } } +$manifestVersion = $env:MANIFEST_VERSION +if (-not $manifestVersion) { + $manifestVersion = 2 +} + $buildDir = Join-Path $PSScriptRoot "../build" $distDir = Join-Path $PSScriptRoot "../dist" @@ -38,7 +43,12 @@ if (-not (Test-Path $distDir)) { } if ($browser -ne 'safari') { - $distPath = Join-Path $distDir "dist-$browser.zip" + if ($manifestVersion -eq 2) { + $distPath = Join-Path $distDir "dist-$browser.zip" + } + else { + $distPath = Join-Path $distDir "dist-$browser-mv3.zip" + } if (Test-Path $distPath) { Remove-Item $distPath