From 399305fd8a51de8f0e14d1898d9dd904c540f062 Mon Sep 17 00:00:00 2001 From: Ven Date: Thu, 26 Jan 2023 22:38:02 +0100 Subject: [PATCH] Automatic extension publishing (#453) --- .github/workflows/build.yml | 20 +++---- .github/workflows/publish.yml | 60 +++++++++++++++++++++ README.md | 6 +-- browser/background.js | 48 ----------------- browser/icon.png | Bin 0 -> 21831 bytes browser/{manifestv3.json => manifest.json} | 15 +++++- browser/manifestv2.json | 25 --------- scripts/build/buildWeb.mjs | 33 ++++++++---- 8 files changed, 103 insertions(+), 104 deletions(-) create mode 100644 .github/workflows/publish.yml delete mode 100644 browser/background.js create mode 100644 browser/icon.png rename browser/{manifestv3.json => manifest.json} (74%) delete mode 100644 browser/manifestv2.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5c9eafee..1590c795 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,28 +34,19 @@ jobs: - name: Build web run: pnpm buildWeb --standalone - - name: Sign firefox extension - run: | - pnpx web-ext sign --api-key $WEBEXT_USER --api-secret $WEBEXT_SECRET --channel=unlisted - env: - WEBEXT_USER: ${{ secrets.WEBEXT_USER }} - WEBEXT_SECRET: ${{ secrets.WEBEXT_SECRET }} - - name: Build run: pnpm build --standalone - - name: Rename extensions for more user friendliness + - name: Clean up obsolete files run: | - mv dist/*.xpi dist/Vencord-for-Firefox.xpi - mv dist/extension-v3.zip dist/Vencord-for-Chrome-and-Edge.zip - rm -rf dist/extension-v2-unpacked dist/extension-v2.zip + rm -rf dist/extension* Vencord.user.css - name: Get some values needed for the release id: release_values run: | echo "release_tag=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - name: Upload Devbuild as release + - name: Upload DevBuild as release run: | gh release upload devbuild --clobber dist/* gh release edit devbuild --title "DevBuild $RELEASE_TAG" @@ -63,13 +54,15 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} RELEASE_TAG: ${{ env.release_tag }} - - name: Upload Devbuild to builds repo + - name: Upload DevBuild to builds repo run: | git config --global user.name "$USERNAME" git config --global user.email actions@github.com git clone https://$USERNAME:$API_TOKEN@github.com/$GH_REPO.git upload cd upload + + GLOBIGNORE: .git:.gitignore:README.md:LICENSE rm -rf * cp -r ../dist/* . @@ -78,6 +71,5 @@ jobs: git push --force https://$USERNAME:$API_TOKEN@github.com/$GH_REPO.git env: API_TOKEN: ${{ secrets.BUILDS_TOKEN }} - GLOBIGNORE: .git:.gitignore:README.md:LICENSE GH_REPO: Vencord/builds USERNAME: GitHub-Actions diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..34738b95 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,60 @@ +name: Release Browser Extension +on: + push: + tags: + - v* + +jobs: + Publish: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: check that tag matches package.json version + run: | + pkg_version="$(jq -r .version < package.json)" + if [[ "${{ github.ref_name }}" != "$pkg_version" ]]; then + echo "Tag ${{ github.ref_name }} does not match package.json version $pkg_version" >&2 + exit 1 + fi + + - uses: pnpm/action-setup@v2 # Install pnpm using packageManager key in package.json + + - name: Use Node.js 19 + uses: actions/setup-node@v3 + with: + node-version: 19 + cache: "pnpm" + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build web + run: pnpm buildWeb --standalone + + - name: Publish extension + run: | + cd dist/extension-unpacked + + # Do not fail so that even if chrome fails, firefox gets a shot. But also store exit code to fail workflow later + EXIT_CODE=0 + + # Chrome + pnpx chrome-webstore-upload-cli@2.1.0 upload --auto-publish || EXIT_CODE=$? + + # Firefox + pnpx web-ext-submit@7.4.0 + + exit $EXIT_CODE + env: + # Chrome + EXTENSION_ID: ${{ secrets.CHROME_EXTENSION_ID }} + CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }} + CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }} + REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }} + + # Firefox + WEB_EXT_API_KEY: ${{ secrets.WEBEXT_USER }} + WEB_EXT_API_SECRET: ${{ secrets.WEBEXT_SECRET }} + diff --git a/README.md b/README.md index 82fc5616..048709fd 100644 --- a/README.md +++ b/README.md @@ -18,11 +18,9 @@ The cutest Discord client mod ## Installing on Browser -[![Get the Firefox extension](https://blog.mozilla.org/addons/files/2015/11/get-the-addon-small.png)](https://addons.mozilla.org/en-GB/firefox/addon/vencord-web/) +[![Get it on the Firefox Webstore](https://blog.mozilla.org/addons/files/2015/11/get-the-addon.png)](https://addons.mozilla.org/en-GB/firefox/addon/vencord-web/) [![Get it on the Chrome Webstore](https://storage.googleapis.com/web-dev-uploads/image/WlD8wC6g8khYWPJUsQceQkhXSlv1/UV4C4ybeBTsZt43U4xis.png)](https://chrome.google.com/webstore/detail/vencord-web/cbghhgpcnddeihccjmnadmkaejncjndb) -Or install the browser extension for -- [![Chrome](https://img.shields.io/badge/chrome-ext-brightgreen)](https://github.com/Vendicated/Vencord/releases/latest/download/Vencord-for-Chrome-and-Edge.zip) -- [UserScript](https://raw.githubusercontent.com/Vencord/builds/main/Vencord.user.js) - Please note that QuickCSS, shiki and other plugins making use of external resources will not work with the UserScript. +Or use the [UserScript](https://raw.githubusercontent.com/Vencord/builds/main/Vencord.user.js) - Please note that QuickCSS and plugins making use of external resources will not work with the UserScript. ## Building from Source diff --git a/browser/background.js b/browser/background.js deleted file mode 100644 index 5c99dd8f..00000000 --- a/browser/background.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Vencord, a modification for Discord's desktop app - * Copyright (c) 2022 Linnea Gräf - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . -*/ - -function setContentTypeOnStylesheets(details) { - if (details.type === "stylesheet") { - details.responseHeaders = details.responseHeaders.filter(it => it.name.toLowerCase() !== 'content-type'); - details.responseHeaders.push({ name: "Content-Type", value: "text/css" }); - } - return { responseHeaders: details.responseHeaders }; -} - -var cspHeaders = [ - "content-security-policy", - "content-security-policy-report-only", -]; - -function removeCSPHeaders(details) { - return { - responseHeaders: details.responseHeaders.filter(header => - !cspHeaders.includes(header.name.toLowerCase())) - }; -} - - - - -browser.webRequest.onHeadersReceived.addListener( - setContentTypeOnStylesheets, { urls: ["https://raw.githubusercontent.com/*"] }, ["blocking", "responseHeaders"] -); - -browser.webRequest.onHeadersReceived.addListener( - removeCSPHeaders, { urls: ["https://raw.githubusercontent.com/*", "*://*.discord.com/*"] }, ["blocking", "responseHeaders"] -); diff --git a/browser/icon.png b/browser/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..57349fad211308d620bc7fab2cacfc56c0a091e4 GIT binary patch literal 21831 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 cJ`?yq0VnDi_@%07*qoM6N<$f@pIWNdN!< literal 0 HcmV?d00001 diff --git a/browser/manifestv3.json b/browser/manifest.json similarity index 74% rename from browser/manifestv3.json rename to browser/manifest.json index d15b80a1..c20770ef 100644 --- a/browser/manifestv3.json +++ b/browser/manifest.json @@ -1,10 +1,14 @@ { "manifest_version": 3, + "minimum_chrome_version": "91", + "name": "Vencord Web", - "description": "Yeee", - "version": "1.0.0", + "description": "The cutest Discord mod now in your browser", "author": "Vendicated", "homepage_url": "https://github.com/Vendicated/Vencord", + "icons": { + "128": "icon.png" + }, "host_permissions": [ "*://*.discord.com/*", @@ -36,5 +40,12 @@ "path": "modifyResponseHeaders.json" } ] + }, + + "applications": { + "gecko": { + "id": "vencord-firefox@vendicated.dev", + "strict_min_version": "109.0" + } } } diff --git a/browser/manifestv2.json b/browser/manifestv2.json deleted file mode 100644 index b28b73f8..00000000 --- a/browser/manifestv2.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "manifest_version": 2, - "name": "Vencord Web", - "description": "The Vencord Client Mod for Discord Web.", - "version": "1.0.0", - "author": "Vendicated", - "homepage_url": "https://github.com/Vendicated/Vencord", - "permissions": [ - "webRequest", - "webRequestBlocking", - "*://*.discord.com/*", - "https://raw.githubusercontent.com/*" - ], - "content_scripts": [ - { - "run_at": "document_start", - "matches": ["*://*.discord.com/*"], - "js": ["content.js"] - } - ], - "web_accessible_resources": ["dist/Vencord.js", "dist/Vencord.css"], - "background": { - "scripts": ["background.js"] - } -} diff --git a/scripts/build/buildWeb.mjs b/scripts/build/buildWeb.mjs index ceddbcb6..dd7d32eb 100644 --- a/scripts/build/buildWeb.mjs +++ b/scripts/build/buildWeb.mjs @@ -82,10 +82,19 @@ async function buildPluginZip(target, files, shouldZip) { const entries = { "dist/Vencord.js": await readFile("dist/browser.js"), "dist/Vencord.css": await readFile("dist/browser.css"), - ...Object.fromEntries(await Promise.all(files.map(async f => [ - (f.startsWith("manifest") ? "manifest.json" : f), - await readFile(join("browser", f)) - ]))), + ...Object.fromEntries(await Promise.all(files.map(async f => { + let content = await readFile(join("browser", f)); + if (f.startsWith("manifest")) { + const json = JSON.parse(content.toString("utf-8")); + json.version = PackageJSON.version; + content = new TextEncoder().encode(JSON.stringify(json)); + } + + return [ + f.startsWith("manifest") ? "manifest.json" : f, + content + ]; + }))), }; if (shouldZip) { @@ -115,20 +124,22 @@ async function buildPluginZip(target, files, shouldZip) { } } -const cssText = "`" + readFileSync("dist/Vencord.user.css", "utf-8").replaceAll("`", "\\`") + "`"; -const cssRuntime = ` +const appendCssRuntime = readFile("dist/Vencord.user.css", "utf-8").then(content => { + const cssRuntime = ` ;document.addEventListener("DOMContentLoaded", () => document.documentElement.appendChild( Object.assign(document.createElement("style"), { - textContent: ${cssText}, + textContent: \`${content.replaceAll("`", "\\`")}\`, id: "vencord-css-core" }) ), { once: true }); `; + return appendFile("dist/Vencord.user.js", cssRuntime); +}); + await Promise.all([ - appendFile("dist/Vencord.user.js", cssRuntime), - buildPluginZip("extension-v3.zip", ["modifyResponseHeaders.json", "content.js", "manifestv3.json"], true), - buildPluginZip("extension-v2.zip", ["background.js", "content.js", "manifestv2.json"], true), - buildPluginZip("extension-v2-unpacked", ["background.js", "content.js", "manifestv2.json"], false), + appendCssRuntime, + buildPluginZip("extension.zip", ["modifyResponseHeaders.json", "content.js", "manifest.json", "icon.png"], true), + buildPluginZip("extension-unpacked", ["modifyResponseHeaders.json", "content.js", "manifest.json", "icon.png"], false), ]);