on: workflow_dispatch: inputs: ref_name: description: 'tag or commit' required: true 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 steps: - name: Environment setup run: apk add nodejs git zstd tar sed bash py3-httplib2 wget curl - name: Getting variables run: | if test $GITHUB_REF_NAME == "ci" ; then CI_REF_NAME=${{ inputs.ref_name }} else CI_REF_NAME=$GITHUB_REF_NAME fi echo $CI_REF_NAME > /tmp/ci_ref_name curl --silent https://raw.githubusercontent.com/electron/electron/$CI_REF_NAME/.github/actions/install-build-tools/action.yml | grep BUILD_TOOLS_SHA | awk -F "=" '{print $2}' > /tmp/depottoolsver 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 ' ' > /tmp/chromiumver - name: Getting depot_tools run: | read _depottoolsver < /tmp/depottoolsver git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git ./ git fetch --depth 1 origin $_depottoolsver git checkout $_depottoolsver - name: Fetching electron run: | read CI_REF_NAME < /tmp/ci_ref_name read _chromiumver < /tmp/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 < /tmp/chromiumver read CI_REF_NAME < /tmp/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 < /tmp/ci_ref_name read _chromiumver < /tmp/chromiumver tar -cf $pkgname-$_semver-$_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 < /tmp/ci_ref_name read _chromiumver < /tmp/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 < /tmp/ci_ref_name read _chromiumver < /tmp/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