Added a github CI build

This commit is contained in:
Mauro Balades
2024-04-27 22:38:20 +02:00
parent f52da4f463
commit d4ceb52ebf
15 changed files with 288 additions and 1 deletions

268
.github/workflows/alpha.yml vendored Normal file
View File

@@ -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

View File

@@ -0,0 +1,4 @@
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg">
  <rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />
Sorry, your browser does not support inline SVG.
</svg>

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1014 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -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}"

View File

@@ -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": {

View File

@@ -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": {