mirror of
https://github.com/zen-browser/desktop.git
synced 2026-01-10 07:13:37 +00:00
269 lines
7.4 KiB
YAML
269 lines
7.4 KiB
YAML
name: Zen Alpha builds
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-data:
|
|
permissions:
|
|
contents: write
|
|
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: Zen Browser Robot
|
|
commit_user_email: zen-browser-bot@users.noreply.github.com
|
|
|
|
linux:
|
|
permissions:
|
|
contents: write
|
|
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: 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:
|
|
permissions:
|
|
contents: write
|
|
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: 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
|