Skip to content

Commit

Permalink
Split electron builds to circumvent amount of builds
Browse files Browse the repository at this point in the history
  • Loading branch information
julianhille committed Aug 21, 2024
1 parent 4338b8d commit e2ced14
Showing 1 changed file with 128 additions and 33 deletions.
161 changes: 128 additions & 33 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,126 @@ jobs:
29.2.0,
29.3.0,
29.4.0,
]
include:
- electron_mocha_version: ^11
python_version: "3.10"
- architecture: arm64
architecture_node: x64
target_architecture: arm64
extra_compile_flags: -arch arm64
- architecture: ia32
architecture_node: x86
target_architecture: ia32
- architecture: x64
architecture_node: x64
target_architecture: x64
- electron: 32.0.0
node: 20.16.0
- electron: 31.4.0
node: 20.16.0
- electron: 31.3.0
node: 20.16.0
- electron: 31.2.0
node: 20.16.0
- electron: 31.1.0
node: 20.16.0
- electron: 31.0.0
node: 20.16.0
- electron: 30.4.0
node: 20.15.1
- electron: 30.3.0
node: 20.15.1
- electron: 30.2.0
node: 20.15.1
- electron: 30.1.0
node: 20.15.1
- electron: 30.0.0
node: 20.15.1
- electron: 29.4.0
node: 20.9.0
- electron: 29.3.0
node: 20.9.0
- electron: 29.2.0
node: 20.9.0
- electron: 29.1.0
node: 20.9.0
- electron: 29.0.0
node: 20.9.0
exclude:
- os: macos-13
architecture: ia32
- os: ubuntu-20.04
architecture: arm64
- os: windows-2019
architecture: arm64
- os: ubuntu-20.04
architecture: ia32
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
architecture: ${{ matrix.architecture_node }}
- run: node --version
- run: npm --version
- name: Get npm cache directory
id: npm-cache-dir
shell: bash
run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
- uses: actions/cache@v4
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-electron-${{ matrix.target_architecture }}-${{ matrix.architecture }}-${{ matrix.electron }}-${{ hashFiles('**/package-lock.json') }}
- run: npm install --build-from-source
env:
npm_config_arch: ${{ matrix.architecture }}
npm_config_msbuild_path: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe'
npm_config_target_arch: ${{ matrix.target_architecture }}
npm_config_target: ${{ matrix.electron }}
npm_config_disturl: https://artifacts.electronjs.org/headers/dist
npm_config_runtime: electron
npm_config_python: python${{ matrix.python_version }}
CFLAGS: ${{ matrix.extra_compile_flags }}
CPPFLAGS: ${{ matrix.extra_compile_flags }}
- uses: Wandalen/wretry.action@v3
with:
command: npm install -g electron@${{ matrix.electron }} electron-mocha@${{ matrix.electron_mocha_version }}
attempt_limit: 3
attempt_delay: 10000
- name: Run test
uses: coactions/setup-xvfb@90473c3ebc69533a1a6e0505c36511b69c8c3135
with:
run: npm run test:electron
if: ${{ matrix.target_architecture != 'arm64' }}
- run: ./node_modules/.bin/node-pre-gyp package testpackage
env:
npm_config_runtime: electron
npm_config_target: ${{ matrix.electron }}
if: ${{ matrix.target_architecture != 'arm64' }}
- run: ./node_modules/.bin/node-pre-gyp package --target_arch=${{ matrix.target_architecture }}
if: ${{ matrix.target_architecture == 'arm64' }}
env:
npm_config_runtime: electron
npm_config_target: ${{ matrix.electron }}
- uses: actions/upload-artifact@v4
with:
path: build/stage/julianhille/MuhammaraJS/releases/download/**/*.gz
name: bindings-electron-${{ matrix.os }}-${{ matrix.target_architecture }}-${{matrix.electron}}
if-no-files-found: error
build-electron-outdated:
needs: [lint]
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, macos-13, windows-2019]
architecture: [x64, ia32, arm64]
electron:
[
28.0.0,
28.1.0,
28.2.0,
Expand Down Expand Up @@ -184,38 +304,6 @@ jobs:
- architecture: x64
architecture_node: x64
target_architecture: x64
- electron: 32.0.0
node: 20.16.0
- electron: 31.4.0
node: 20.16.0
- electron: 31.3.0
node: 20.16.0
- electron: 31.2.0
node: 20.16.0
- electron: 31.1.0
node: 20.16.0
- electron: 31.0.0
node: 20.16.0
- electron: 30.4.0
node: 20.15.1
- electron: 30.3.0
node: 20.15.1
- electron: 30.2.0
node: 20.15.1
- electron: 30.1.0
node: 20.15.1
- electron: 30.0.0
node: 20.15.1
- electron: 29.4.0
node: 20.9.0
- electron: 29.3.0
node: 20.9.0
- electron: 29.2.0
node: 20.9.0
- electron: 29.1.0
node: 20.9.0
- electron: 29.0.0
node: 20.9.0
- electron: 28.3.0
node: 18.18.2
- electron: 28.2.0
Expand Down Expand Up @@ -417,7 +505,14 @@ jobs:
name: bindings-electron-${{ matrix.os }}-${{ matrix.target_architecture }}-${{matrix.node}}
if-no-files-found: error
publish:
needs: [build-musl, build-musl-arm, build-electron, build-node]
needs:
[
build-musl,
build-musl-arm,
build-electron,
build-electron-outdated,
build-node,
]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
Expand Down

0 comments on commit e2ced14

Please sign in to comment.