diff --git a/.github/workflows/alpha.yml b/.github/workflows/alpha.yml index 0511b9f94..4468fd2fa 100644 --- a/.github/workflows/alpha.yml +++ b/.github/workflows/alpha.yml @@ -179,14 +179,14 @@ jobs: - name: Rename artifacts run: | - mv dist/zen-*.tar.bz2 "zen-browser.linux.tar.bz2" + mv dist/zen-*.tar.bz2 "zen.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: zen.linux.tar.bz2 + path: ./zen.linux.tar.bz2 - name: Upload mar uses: actions/upload-artifact@v3 @@ -258,11 +258,219 @@ jobs: run: | cd engine # -h is used to dereference symlinks - tar --use-compress-program=zstd -hcf ../zen-browser.source.tar.gz * + tar --use-compress-program=zstd -hcf ../zen.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 + name: zen.source.tar.gz + path: ./zen.source.tar.gz + + mac: + runs-on: macos-13 + needs: [build-data] + + steps: + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 16 + + - uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - uses: actions/checkout@v3 + + - 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: | + brew install cairo sccache gnu-tar mercurial + sudo pip install setuptools + + - name: Force usage fo gnu-tar + run: | + echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bash_profile + echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zsh + source ~/.bash_profile + + - name: Save sccache + uses: actions/cache@v3 + continue-on-error: false + with: + path: ~/Library/Caches/Mozilla.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 dependancies + run: pnpm gluon download + + - name: Import + run: pnpm import + + - name: Bootstrap + run: | + cd engine + ./mach --no-interactive bootstrap --application-choice browser + cd .. + + - name: Gluon build + run: pnpm build --verbose + + - name: Package + run: pnpm gluon package + + - name: Rename artifacts + run: | + mv ./dist/*.dmg "zen.macos.dmg" + mv ./dist/output.mar macos.mar + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: zen.macos.dmg + path: ./zen.macos.dmg + + - name: Upload mar + uses: actions/upload-artifact@v3 + with: + name: macos.mar + path: ./macos.mar + + - name: Upload update manifests + uses: actions/upload-artifact@v3 + with: + name: macos_update_manifest + path: ./dist/update + + windows: + runs-on: tricky-win + needs: [build-data] + + steps: + - uses: trickypr/checkout@main + with: + submodules: recursive + + - name: Install dependencies + run: | + pnpm i + + - name: Load gluon CI setup + run: pnpm gluon ci --brand alpha --display-version ${{ needs.build-data.outputs.version }} + + - name: Download + run: pnpm gluon download + + - name: Import + run: pnpm import + + - name: Build + shell: powershell.exe C:\mozilla-build\start-shell.bat "{0}" + run: | + cd /c/actions-runner/_work/browser/browser # mozillabuild defaults to ~ + pnpm build --skip-patch-check + + - name: Package + shell: powershell.exe C:\mozilla-build\start-shell.bat "{0}" + run: | + cd /c/actions-runner/_work/browser/browser # mozillabuild defaults to ~ + pnpm package + mv ./dist/output.mar windows.mar + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: zen.installer.exe + path: ./dist/zen.installer.exe + + - name: Upload mar + uses: actions/upload-artifact@v3 + with: + name: windows.mar + path: ./windows.mar + + - name: Upload update manifests + uses: actions/upload-artifact@v3 + with: + name: windows_update_manifest + path: ./dist/update + + release: + name: Release + needs: [build-data, linux, source, mac, windows] + runs-on: ubuntu-latest + if: ${{ github.ref == 'refs/heads/alpha' }} + + steps: + - uses: actions/download-artifact@v3 + + - name: release-github + uses: 'marvinpinto/action-automatic-releases@latest' + with: + repo_token: '${{ secrets.GITHUB_TOKEN }}' + automatic_release_tag: ${{ needs.build-data.outputs.version }} + prerelease: true + title: 'Alpha build' + files: | + zen.linux.tar.bz2 + zen.source.tar.gz + zen.macos.dmg + zen.installer.exe + windows.mar + macos.mar + linux.mar + + - name: List + run: find . + + - name: Checkout tools repo + uses: actions/checkout@v3 + with: + repository: pulse-browser/updates + path: updates + token: ${{ secrets.ROBOT_TOKEN }} + + - name: Copy update manifests + run: | + mkdir -p updates/updates + cp -a macos_update_manifest/. updates/updates/ + cp -a linux_update_manifest/. updates/updates/ + cp -a windows_update_manifest/. updates/updates/ + + - uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: 🔖 Upload update manifests ${{ needs.build-data.outputs.version }} + commit_user_name: Zen Browser Robot + commit_user_email: zen-browser-bot@users.noreply.github.com + repository: ./updates diff --git a/gluon.json b/gluon.json index 3c6c7572e..9aa818ea9 100644 --- a/gluon.json +++ b/gluon.json @@ -29,13 +29,13 @@ "brandShortName": "Zen Browser", "brandFullName": "Zen Browser", "release": { - "displayVersion": "1.0.0-a.12", + "displayVersion": "1.0.0-a.1", "github": { "repo": "zen-browser/desktop" }, "x86": { "windowsMar": "windows.mar", - "macosMar": "macosIntel.mar", + "macosMar": "macos.mar", "linuxMar": "linux.mar" } }