mirror of
https://github.com/electron/electron.git
synced 2026-05-02 03:00:22 -04:00
* ci: centralize build-image SHA and pre-seed node-gyp headers - Add .github/actions/build-image-sha as the single source of truth for the ghcr.io/electron/build (and arch-tagged electron/test) image SHA, with an optional override input for workflow_dispatch. - Refactor build.yml, apply-patches.yml, build-git-cache.yml, clean-src-cache.yml, clean-orphaned-cache-uploads.yml, and the three publish workflows to resolve the SHA via a small ubuntu-slim setup job instead of hardcoding it in each file. - Bump the image to daad061f (electron/build-images#68, which pre-warms the node-gyp header cache in the Linux images). - Run the build.yml setup job on ubuntu-slim instead of ubuntu-latest. - In install-dependencies (and the inline yarn installs in pipeline-electron-lint and generate-types), link deps with --mode=skip-build first, run `node-gyp install` with up to 3 retries (5s backoff) to populate the header cache, then run the build phase. This avoids the parallel-download race that intermittently fails the first native-addon configure with an empty common.gypi on cold macOS/Windows runners. * ci: skip node-gyp header pre-seed on Linux * ci: invoke node-gyp via its JS entrypoint for Windows compat
98 lines
3.0 KiB
YAML
98 lines
3.0 KiB
YAML
name: Build Git Cache
|
|
# This workflow updates git cache on the cross-instance cache volumes
|
|
# It runs daily at midnight.
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 0 * * *"
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
setup:
|
|
if: github.repository == 'electron/electron'
|
|
runs-on: ubuntu-slim
|
|
permissions:
|
|
contents: read
|
|
outputs:
|
|
build-image-sha: ${{ steps.build-image-sha.outputs.build-image-sha }}
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
|
- name: Set Build Image SHA
|
|
id: build-image-sha
|
|
uses: ./.github/actions/build-image-sha
|
|
|
|
build-git-cache-linux:
|
|
needs: setup
|
|
runs-on: electron-arc-centralus-linux-amd64-32core
|
|
permissions:
|
|
contents: read
|
|
container:
|
|
image: ghcr.io/electron/build:${{ needs.setup.outputs.build-image-sha }}
|
|
options: --user root
|
|
volumes:
|
|
- /mnt/cross-instance-cache:/mnt/cross-instance-cache
|
|
env:
|
|
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
|
|
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
|
|
steps:
|
|
- name: Checkout Electron
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
|
with:
|
|
path: src/electron
|
|
fetch-depth: 0
|
|
- name: Build Git Cache
|
|
uses: ./src/electron/.github/actions/build-git-cache
|
|
with:
|
|
target-platform: linux
|
|
|
|
build-git-cache-windows:
|
|
needs: setup
|
|
runs-on: electron-arc-centralus-linux-amd64-32core
|
|
permissions:
|
|
contents: read
|
|
container:
|
|
image: ghcr.io/electron/build:${{ needs.setup.outputs.build-image-sha }}
|
|
options: --user root --device /dev/fuse --cap-add SYS_ADMIN
|
|
volumes:
|
|
- /mnt/win-cache:/mnt/win-cache
|
|
env:
|
|
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
|
|
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_win=True'
|
|
TARGET_OS: 'win'
|
|
steps:
|
|
- name: Checkout Electron
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
|
with:
|
|
path: src/electron
|
|
fetch-depth: 0
|
|
- name: Build Git Cache
|
|
uses: ./src/electron/.github/actions/build-git-cache
|
|
with:
|
|
target-platform: win
|
|
|
|
build-git-cache-macos:
|
|
# This job updates the same git cache as linux, so it needs to run after the linux one.
|
|
needs: [setup, build-git-cache-linux]
|
|
runs-on: electron-arc-centralus-linux-amd64-32core
|
|
permissions:
|
|
contents: read
|
|
container:
|
|
image: ghcr.io/electron/build:${{ needs.setup.outputs.build-image-sha }}
|
|
options: --user root
|
|
volumes:
|
|
- /mnt/cross-instance-cache:/mnt/cross-instance-cache
|
|
env:
|
|
CHROMIUM_GIT_COOKIE: ${{ secrets.CHROMIUM_GIT_COOKIE }}
|
|
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_mac=True --custom-var=host_os=mac'
|
|
steps:
|
|
- name: Checkout Electron
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
|
with:
|
|
path: src/electron
|
|
fetch-depth: 0
|
|
- name: Build Git Cache
|
|
uses: ./src/electron/.github/actions/build-git-cache
|
|
with:
|
|
target-platform: macos
|