mirror of
https://github.com/zen-browser/desktop.git
synced 2025-12-25 07:38:55 +00:00
317 lines
8.7 KiB
YAML
317 lines
8.7 KiB
YAML
name: Zen Alpha builds
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
create_release:
|
|
description: 'Create a new release for this build'
|
|
required: false
|
|
default: false
|
|
type: 'boolean'
|
|
update_version:
|
|
description: 'Update the version number'
|
|
required: false
|
|
default: true
|
|
type: 'boolean'
|
|
|
|
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: 20
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install pnpm
|
|
run: npm install -g pnpm
|
|
|
|
- name: Get pnpm store directory
|
|
id: pnpm-cache
|
|
shell: bash
|
|
run: |
|
|
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- name: Setup Surfer
|
|
run: |
|
|
npm i -g @zen-browser/surfer
|
|
|
|
- name: Bump version
|
|
run: |
|
|
pnpm surfer ci --brand alpha --bump prerelease
|
|
|
|
- name: Debug
|
|
run: |
|
|
surfer get version
|
|
surfer get version | xargs
|
|
echo "$(surfer get version | xargs)"
|
|
|
|
- name: Export release date
|
|
id: data
|
|
shell: bash
|
|
run: |
|
|
echo "builddate=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT
|
|
echo "version=$(surfer get version | xargs)" >> $GITHUB_OUTPUT
|
|
|
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
|
if: ${{ github.event.inputs.update_version == 'true' }}
|
|
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
|
|
|
|
check-release:
|
|
runs-on: ubuntu-latest
|
|
needs: [build-data]
|
|
steps:
|
|
- name: Install Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install pnpm
|
|
run: npm install -g pnpm
|
|
|
|
- name: Get pnpm store directory
|
|
id: pnpm-cache
|
|
shell: bash
|
|
run: |
|
|
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- name: Setup surfer
|
|
run: |
|
|
npm i -g @zen-browser/surfer
|
|
|
|
- name: Activate surfer CLI
|
|
run: |
|
|
echo "There's a bug in the surfer CLI, we run this so that surfer sets everything up correctly"
|
|
pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
|
|
|
- name: Check version
|
|
run: |
|
|
echo "$(pwd)"
|
|
ls .
|
|
echo "version=$(pnpm surfer get version | xargs)" >> $GITHUB_OUTPUT
|
|
if [[ $(pnpm surfer get version | xargs) == ${{ needs.build-data.outputs.version }} ]]; then
|
|
echo ">>> Version matches"
|
|
else
|
|
echo ">>> Version mismatch"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
source:
|
|
permissions:
|
|
contents: write
|
|
runs-on: ubuntu-latest
|
|
needs: [build-data]
|
|
|
|
steps:
|
|
- name: Install Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 20
|
|
|
|
- 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"
|
|
|
|
- name: Install pnpm
|
|
run: npm install -g pnpm
|
|
|
|
- name: Get pnpm store directory
|
|
id: pnpm-cache
|
|
shell: bash
|
|
run: |
|
|
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- name: Load surfer CI setup
|
|
run: pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
|
|
|
- name: Download firefox source and dependancies
|
|
run: pnpm surfer download --verbose
|
|
|
|
- name: Import
|
|
run: pnpm surfer import --verbose
|
|
|
|
- name: Compress
|
|
run: |
|
|
cd engine
|
|
# -h is used to dereference symlinks
|
|
tar --use-compress-program=zstd -hcf ../zen.source.tar.gz *
|
|
cd ..
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: zen.source.tar.gz
|
|
path: ./zen.source.tar.gz
|
|
|
|
windows-step-1:
|
|
name: Windows build step 1 (PGO build)
|
|
uses: ./.github/workflows/windows-alpha-build.yml
|
|
needs: [build-data]
|
|
permissions:
|
|
contents: write
|
|
with:
|
|
build-version: ${{ needs.build-data.outputs.version }}
|
|
generate-gpo: true
|
|
profile-data-path: zen-windows-x86_64-profile-data-and-jarlog
|
|
|
|
windows-step-2:
|
|
name: Windows build step 2 (Generate profile data)
|
|
uses: ./.github/workflows/windows-profile-build.yml
|
|
permissions:
|
|
contents: write
|
|
needs: [windows-step-1, build-data]
|
|
with:
|
|
build-version: ${{ needs.build-data.outputs.version }}
|
|
profile-data-path: zen-windows-x86_64-profile-data-and-jarlog
|
|
|
|
windows-step-3:
|
|
name: Windows build step 3 (build with profile data)
|
|
uses: ./.github/workflows/windows-alpha-build.yml
|
|
permissions:
|
|
contents: write
|
|
needs: [build-data, windows-step-2]
|
|
with:
|
|
build-version: ${{ needs.build-data.outputs.version }}
|
|
generate-gpo: false
|
|
profile-data-path: zen-windows-x86_64-profile-data-and-jarlog
|
|
|
|
linux:
|
|
name: Linux build
|
|
uses: ./.github/workflows/linux-alpha-build.yml
|
|
permissions:
|
|
contents: write
|
|
needs: [build-data, windows-step-2] # Windows step 2 in order to avoid cloning all the artifacts again
|
|
with:
|
|
build-version: ${{ needs.build-data.outputs.version }}
|
|
|
|
mac:
|
|
name: macOS build
|
|
uses: ./.github/workflows/macos-alpha-build.yml
|
|
permissions:
|
|
contents: write
|
|
needs: [build-data, windows-step-2]
|
|
with:
|
|
build-version: ${{ needs.build-data.outputs.version }}
|
|
|
|
release:
|
|
if: ${{ github.event.inputs.create_release == 'true' }}
|
|
permissions: write-all
|
|
name: Release
|
|
needs: [build-data, linux, source, windows-step-3, check-release, mac]
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Update repo
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Git Pull
|
|
run: git pull
|
|
|
|
- uses: actions/download-artifact@v4
|
|
|
|
- name: release-github
|
|
uses: 'marvinpinto/action-automatic-releases@latest'
|
|
with:
|
|
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
|
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
|
title: 'Alpha build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})'
|
|
files: |
|
|
zen.linux.tar.bz2
|
|
zen.win64.zip
|
|
zen.source.tar.gz
|
|
linux.mar
|
|
windows.mar
|
|
macos.mar
|
|
zen.installer.exe
|
|
zen.installer.pretty.exe
|
|
zen.macos.dmg
|
|
|
|
- name: List
|
|
run: find .
|
|
|
|
- name: Clone updates repo
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: zen-browser/updates-server
|
|
path: updates-server
|
|
token: ${{ secrets.DEPLOY_KEY }}
|
|
|
|
- name: Copy update manifests
|
|
run: |
|
|
cd updates-server
|
|
mkdir -p updates
|
|
cp -a ../linux_update_manifest/. updates/
|
|
cp -a ../windows_update_manifest/. updates/
|
|
cp -a ../macos_update_manifest/. updates/
|
|
|
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
|
with:
|
|
commit_message: 🚀 Update update manifests
|
|
commit_user_name: Zen Browser Robot
|
|
commit_user_email: zen-browser-bot@users.noreply.github.com
|
|
repository: ./updates-server
|
|
|
|
distro-flatpak:
|
|
name: Build flatpak repos
|
|
needs: [release]
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: bilelmoussaoui/flatpak-github-actions:gnome-44
|
|
options: --privileged
|
|
if: ${{ github.event.inputs.create_release == 'true' && false }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: zen-browser/flatpak
|
|
token: ${{ secrets.DEPLOY_KEY }}
|
|
submodules: recursive
|
|
|
|
- name: Ensure repo is on main branch
|
|
run: |
|
|
cd flatpak
|
|
git checkout main
|
|
git pull
|
|
|
|
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
|
with:
|
|
bundle: org.zen.browser.flatpak
|
|
manifest-path: flatpak/org.zen.browser.flatpak.json
|
|
cache-key: flatpak-builder-${{ github.sha }}
|
|
|
|
- name: Upload flatpak repo
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: flatpak-repo
|
|
path: flatpak/repo
|