diff --git a/.github/workflows/alpha.yml b/.github/workflows/alpha.yml new file mode 100644 index 000000000..69bcc2893 --- /dev/null +++ b/.github/workflows/alpha.yml @@ -0,0 +1,268 @@ +name: Zen Alpha builds + +on: + workflow_dispatch: + +jobs: + build-data: + name: Generate build data + runs-on: ubuntu-latest + outputs: + build_date: ${{ steps.data.outputs.builddate }} + version: ${{ steps.data.outputs.version }} + steps: + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 16 + + - uses: actions/checkout@v3 + + - uses: pnpm/action-setup@v2 + name: Install pnpm + id: pnpm-install + with: + version: 8 + run_install: false + + - name: Get pnpm store directory + id: pnpm-cache + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + + - uses: actions/cache@v3 + name: Setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install dependencies + run: pnpm install + + - name: Setup gluon + run: | + npm i -g gluon-build@next + + - name: Bump version + run: | + pnpm gluon ci --brand alpha --bump prerelease + + - name: Debug + run: | + gluon get version + gluon get version | xargs + echo "$(gluon get version | xargs)" + + - name: Export release date + id: data + shell: bash + run: | + echo "builddate=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT + echo "version=$(gluon get version | xargs)" >> $GITHUB_OUTPUT + + - uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: 🔖 Update version to ${{ steps.data.outputs.version }} + commit_user_name: Fushra Robot + commit_user_email: trickypr@gmail.com + + linux: + runs-on: ubuntu-latest + needs: [build-data] + + steps: + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 16 + + - uses: actions/checkout@v3 + + # Give the runner some swap space in an attempt to stop gkrust from crashing the build + - name: Set Swap Space + uses: pierotofy/set-swap-space@v1.0 + with: + swap-size-gb: 6 + + - name: Setup git + run: | + git config --global user.email "mauro-balades@users.noreply.github.com" + git config --global user.name "mauro-balades" + + - name: Install system dependencies + run: | + sudo apt-get update --fix-missing + sudo apt-get update + sudo apt-get install dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm + pip install pycairo testresources + + - name: Disable wasm sandboxing for the sake of my sanity + run: | + echo "ac_add_options --without-wasm-sandboxed-libraries" >> mozconfig + + - name: Free up space + run: | + sudo rm -rf /usr/share/dotnet + sudo rm -rf /opt/ghc + sudo rm -rf "/usr/local/share/boost" + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + + - name: Install sccache + env: + LINK: https://github.com/mozilla/sccache/releases/download + SCCACHE_VERSION: 0.2.13 + run: | + SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl + mkdir -p $HOME/.local/bin + curl -L "$LINK/$SCCACHE_VERSION/$SCCACHE_FILE.tar.gz" | tar xz + mv -f $SCCACHE_FILE/sccache $HOME/.local/bin/sccache + echo "$HOME/.local/bin" >> $GITHUB_PATH + + - name: Save sccache + uses: actions/cache@v3 + continue-on-error: false + with: + path: /home/runner/.cache/sccache + key: ${{ runner.os }}-sccache + + - uses: pnpm/action-setup@v2 + name: Install pnpm + id: pnpm-install + with: + version: 8 + run_install: false + + - name: Get pnpm store directory + id: pnpm-cache + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + + - uses: actions/cache@v3 + name: Setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install dependencies + run: pnpm install + + - name: Load gluon CI setup + run: pnpm gluon ci --brand alpha --display-version ${{ needs.build-data.outputs.version }} + + - name: Download firefox source and dependencies + run: pnpm gluon download + + - name: Import + run: pnpm gluon import + + - name: Run Init + run: pnpm run init + + - name: Bootstrap + run: | + cd engine + ./mach --no-interactive bootstrap --application-choice browser + cd .. + + - name: Build + run: pnpm build + + - name: Package + run: pnpm package + + - name: Rename artifacts + run: | + mv dist/zen-browser-*.tar.bz2 "zen-browser.linux.tar.bz2" + mv dist/output.mar linux.mar + + - name: Upload binary + uses: actions/upload-artifact@v3 + with: + name: zen-browser.linux.tar.bz2 + path: ./zen-browser.linux.tar.bz2 + + - name: Upload mar + uses: actions/upload-artifact@v3 + with: + name: linux.mar + path: ./linux.mar + + - name: Upload update manifests + uses: actions/upload-artifact@v3 + with: + name: linux_update_manifest + path: ./dist/update + + source: + runs-on: ubuntu-latest + needs: [build-data] + + steps: + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 16 + + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Setup git + run: | + git config --global user.email "mauro-balades@users.noreply.github.com" + git config --global user.name "mauro-balades" + + - uses: pnpm/action-setup@v2 + name: Install pnpm + id: pnpm-install + with: + version: 8 + run_install: false + + - name: Get pnpm store directory + id: pnpm-cache + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + + - uses: actions/cache@v3 + name: Setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install dependencies + run: pnpm install + + - name: Load gluon CI setup + run: pnpm gluon ci --brand alpha --display-version ${{ needs.build-data.outputs.version }} + + - name: Download firefox source and dependancies + run: pnpm gluon download --verbose + + - name: Import + run: pnpm gluon import --verbose + + - name: Run Init + run: pnpm run init + + - name: Compress + run: | + cd engine + # -h is used to dereference symlinks + tar --use-compress-program=zstd -hcf ../zen-browser.source.tar.gz * + cd .. + + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: zen-browser.source.tar.gz + path: ./zen-browser.source.tar.gz diff --git a/configs/branding/alpha/MacOSInstaller.svg b/configs/branding/alpha/MacOSInstaller.svg new file mode 100644 index 000000000..0395ac69e --- /dev/null +++ b/configs/branding/alpha/MacOSInstaller.svg @@ -0,0 +1,4 @@ + +  + Sorry, your browser does not support inline SVG. + \ No newline at end of file diff --git a/configs/branding/alpha/logo.png b/configs/branding/alpha/logo.png new file mode 100644 index 000000000..9ebb1069a Binary files /dev/null and b/configs/branding/alpha/logo.png differ diff --git a/configs/branding/alpha/logo128.png b/configs/branding/alpha/logo128.png new file mode 100644 index 000000000..e6ec25faf Binary files /dev/null and b/configs/branding/alpha/logo128.png differ diff --git a/configs/branding/alpha/logo16.png b/configs/branding/alpha/logo16.png new file mode 100644 index 000000000..353b5b92d Binary files /dev/null and b/configs/branding/alpha/logo16.png differ diff --git a/configs/branding/alpha/logo22.png b/configs/branding/alpha/logo22.png new file mode 100644 index 000000000..36b4aeae3 Binary files /dev/null and b/configs/branding/alpha/logo22.png differ diff --git a/configs/branding/alpha/logo24.png b/configs/branding/alpha/logo24.png new file mode 100644 index 000000000..d06ef249f Binary files /dev/null and b/configs/branding/alpha/logo24.png differ diff --git a/configs/branding/alpha/logo256.png b/configs/branding/alpha/logo256.png new file mode 100644 index 000000000..5560efc5d Binary files /dev/null and b/configs/branding/alpha/logo256.png differ diff --git a/configs/branding/alpha/logo32.png b/configs/branding/alpha/logo32.png new file mode 100644 index 000000000..4b6ced6d5 Binary files /dev/null and b/configs/branding/alpha/logo32.png differ diff --git a/configs/branding/alpha/logo48.png b/configs/branding/alpha/logo48.png new file mode 100644 index 000000000..2a907b2e6 Binary files /dev/null and b/configs/branding/alpha/logo48.png differ diff --git a/configs/branding/alpha/logo512.png b/configs/branding/alpha/logo512.png new file mode 100644 index 000000000..a066a9b20 Binary files /dev/null and b/configs/branding/alpha/logo512.png differ diff --git a/configs/branding/alpha/logo64.png b/configs/branding/alpha/logo64.png new file mode 100644 index 000000000..269506548 Binary files /dev/null and b/configs/branding/alpha/logo64.png differ diff --git a/configs/common/mozconfig b/configs/common/mozconfig index 52136d8d3..6f0c1fd55 100644 --- a/configs/common/mozconfig +++ b/configs/common/mozconfig @@ -1,7 +1,6 @@ # Browser branding ac_add_options --enable-update-channel=release -ac_add_options --with-branding=beta ac_add_options --with-app-name=${binName} export MOZ_USER_DIR="${name}" export MOZ_APP_VENDOR="${vendor}" diff --git a/gluon.json b/gluon.json index cded3a69b..b7ab9339b 100644 --- a/gluon.json +++ b/gluon.json @@ -22,6 +22,21 @@ "release": { "displayVersion": "1.0.0" } + }, + "alpha": { + "backgroundColor": "#282A33", + "brandShorterName": "Zen", + "brandShortName": "Zen Browser", + "brandFullName": "Zen Browser", + "release": { + "displayVersion": "1.0.0-a.17", + "github": { + "repo": "zen-browser/desktop" + }, + "x86": { + "linuxMar": "linux.mar" + } + } } }, "license": { diff --git a/package.json b/package.json index 788463193..c3111c924 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "import": "gluon import", "export": "gluon export", "init": "python3 init-browser.py", + "package": "gluon package", "update-newtab": "python3 update_newtab.py" }, "repository": {