on: workflow_dispatch: inputs: ref_name: description: 'electron tag or commit' required: true type: string chromium_ver: description: 'chromium tag or commit' required: false type: string push: tags: - 'v3*' tags-ignore: - '*-nightly*' - '*-beta*' - '*-alpha*' jobs: build-tarball: name: Build tarball runs-on: x86_64 container: image: alpine:3.19 env: VPYTHON_BYPASS: manually managed python not supported by chrome operations ZSTD_LIMIT: 0 DEPOT_TOOLS_VER: 495b23b39aaba2ca3b55dd27cadc523f1cb17ee6 steps: - name: Environment setup run: apk add nodejs git zstd tar sed bash py3-httplib2 wget curl - name: Getting depot_tools run: | git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git ./ git fetch --depth 1 origin $DEPOT_TOOLS_VER git checkout $DEPOT_TOOLS_VER - name: Getting variables run: | if test $GITHUB_REF_NAME == "ci" ; then CI_REF_NAME=${{ inputs.ref_name }} _chromiumver=${{ inputs.chromium_ver }} else CI_REF_NAME=$GITHUB_REF_NAME fi echo $CI_REF_NAME > ci_ref_name if [ -n "$_chromiumver" ]; then echo $_chromiumver > chromiumver else curl --silent https://raw.githubusercontent.com/electron/electron/$CI_REF_NAME/DEPS | grep "'chromium_version':" -A 1 | tail -n 1 | tr -d "'" | tr -d ',' | tr -d ' ' > chromiumver fi - name: Fetching electron run: | read CI_REF_NAME < ci_ref_name read _chromiumver < chromiumver echo "solutions = [{'name': 'src/electron','url': 'https://github.com/electron/electron.git@$CI_REF_NAME','deps_file': 'DEPS','managed': False,'custom_deps': {'src': 'https://chromium.googlesource.com/chromium/src.git@$_chromiumver',},'custom_vars': {},},]" > .gclient ./gclient sync --no-history --nohooks - name: Preparing source run: | read _chromiumver < chromiumver read CI_REF_NAME < ci_ref_name python3 src/build/landmines.py python3 src/build/util/lastchange.py -o src/build/util/LASTCHANGE python3 src/build/util/lastchange.py -s src/third_party/dawn --revision src/gpu/webgpu/DAWN_VERSION python3 src/build/util/lastchange.py -m GPU_LISTS_VERSION --revision-id-only --header src/gpu/config/gpu_lists_version.h python3 src/build/util/lastchange.py -m SKIA_COMMIT_HASH -s src/third_party/skia --header src/skia/ext/skia_commit_hash.h # rolled newer chromium with it included sed -i '/reland_mojom_ts_generator_handle_empty_module_path_identically_to.patch/d' src/electron/patches/chromium/.patches python3 src/electron/script/apply_all_patches.py src/electron/patches/config.json # extra binaries are most likely things we don't want, so nuke them all scanelf -RA -F "%F" src > elf.list while read file; do rm -f "$file"; done < elf.list mv src electron-$CI_REF_NAME-$_chromiumver - name: Packaging source run: | read CI_REF_NAME < ci_ref_name read _chromiumver < chromiumver tar -cf $pkgname-$CI_REF_NAME-$_chromium.tar --exclude="ChangeLog*" --exclude="testdata/*" --exclude="test_data/*" --exclude="android_rust_toolchain/*" --exclude-backups --exclude-caches-all --exclude-vcs electron-$CI_REF_NAME-$_chromiumver zstd --auto-threads=logical --ultra --long -22 -T"${ZSTD_LIMIT:-0}" -vv electron-$CI_REF_NAME-$_chromiumver.tar -o electron-$CI_REF_NAME-$_chromiumver.tar.zst - name: Computing checksums run: | read CI_REF_NAME < ci_ref_name read _chromiumver < chromiumver sha512sum electron-$CI_REF_NAME-$_chromiumver.tar.zst > electron-$CI_REF_NAME-$_chromiumver.tar.zst.sha512sum - name: Package deployment run: | read CI_REF_NAME < ci_ref_name read _chromiumver < chromiumver echo "Sending to ${{ github.server_url }}/api/packages/mirrors/generic/electron/$CI_REF_NAME/electron-$CI_REF_NAME-$_chromiumver.tar.zst" curl --user ${{ vars.CODE_FORGEJO_USER }}:${{ secrets.CODE_FORGEJO_TOKEN }} --upload-file electron-*.tar.zst ${{ github.server_url }}/api/packages/mirrors/generic/electron/$CI_REF_NAME/electron-$CI_REF_NAME-$_chromiumver.tar.zst curl --user ${{ vars.CODE_FORGEJO_USER }}:${{ secrets.CODE_FORGEJO_TOKEN }} --upload-file electron-*.tar.zst.sha512sum ${{ github.server_url }}/api/packages/mirrors/generic/electron/$CI_REF_NAME/electron-$CI_REF_NAME-$_chromiumver.zst.sha512sum