Skip to content

Commit 99a3141

Browse files
committed
CI/CD: special treatment for Windows on ARM.
Indeed, GHA doesn't currently have WoA runners.
1 parent 8f81d90 commit 99a3141

File tree

2 files changed

+37
-19
lines changed

2 files changed

+37
-19
lines changed

.github/workflows/cd.yml

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,16 @@ jobs:
1515
include:
1616
- name: Windows (Intel)
1717
os: windows-2022
18-
node_architecture: x64
1918
- name: Windows (ARM)
2019
os: windows-2019
21-
node_architecture: arm64
2220
- name: Linux (Intel)
2321
os: ubuntu-22.04
24-
node_architecture: x64
2522
- name: Linux (ARM)
2623
os: ubuntu-22.04-arm
27-
node_architecture: arm64
2824
- name: macOS (Intel)
2925
os: macos-13
30-
node_architecture: x64
3126
- name: macOS (ARM)
3227
os: macos-14
33-
node_architecture: arm64
3428
env:
3529
APPLE_ID: ${{ secrets.APPLE_ID }}
3630
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
@@ -66,7 +60,6 @@ jobs:
6660
- name: Install Node.js
6761
uses: actions/setup-node@v4
6862
with:
69-
architecture: ${{ matrix.node_architecture }}
7063
node-version: 'lts/*'
7164
- name: Install pnpm
7265
run: npm install -g pnpm
@@ -77,8 +70,26 @@ jobs:
7770
sudo apt install libopenjp2-tools
7871
- name: OpenCOR dependencies
7972
run: pnpm install
80-
- name: Package OpenCOR
73+
- name: Fix OpenCOR's dependencies (Windows on ARM only)
74+
if: ${{ (matrix.name == 'Windows (ARM)') }}
75+
run: |
76+
choco install wget unzip
77+
cd node_modules/electron
78+
Remove-Item -Recurse -Force dist
79+
mkdir dist
80+
cd dist
81+
wget https://github.com/electron/electron/releases/download/v34.0.2/electron-v34.0.2-win32-arm64.zip -O electron.zip
82+
unzip electron.zip
83+
del electron.zip
84+
- name: Package OpenCOR (all platforms except Windows on ARM)
85+
if: ${{ matrix.name != 'Windows (ARM)' }}
8186
run: pnpm package
87+
- name: Package OpenCOR (Windows on ARM only)
88+
if: ${{ matrix.name == 'Windows (ARM)' }}
89+
run: |
90+
pnpm cmake-js build -a arm64 -B Release -O out/libOpenCOR
91+
pnpm electron-vite build
92+
pnpm electron-builder --arm64
8293
- name: Remove blockmap files
8394
shell: bash
8495
run: find ./dist -name '*.blockmap' -delete

.github/workflows/ci.yml

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,20 @@ jobs:
1515
include:
1616
- name: Windows (Intel)
1717
os: windows-2022
18-
node_architecture: x64
1918
- name: Windows (ARM)
2019
os: windows-2019
21-
node_architecture: arm64
2220
- name: Linux (Intel)
2321
os: ubuntu-22.04
24-
node_architecture: x64
2522
- name: Linux (ARM)
2623
os: ubuntu-22.04-arm
27-
node_architecture: arm64
2824
- name: macOS (Intel)
2925
os: macos-13
30-
node_architecture: x64
3126
- name: macOS (ARM)
3227
os: macos-14
33-
node_architecture: arm64
3428
- name: Code formatting
3529
os: ubuntu-22.04
36-
node_architecture: x64
3730
- name: Linting
3831
os: ubuntu-22.04
39-
node_architecture: x64
4032
steps:
4133
- name: Check out OpenCOR
4234
uses: actions/checkout@v4
@@ -45,15 +37,30 @@ jobs:
4537
- name: Install Node.js
4638
uses: actions/setup-node@v4
4739
with:
48-
architecture: ${{ matrix.node_architecture }}
4940
node-version: 'lts/*'
5041
- name: Install pnpm
5142
run: npm install -g pnpm
5243
- name: OpenCOR dependencies
5344
run: pnpm install
54-
- name: Build OpenCOR
55-
if: ${{ (matrix.name != 'Code formatting') && (matrix.name != 'Linting') }}
45+
- name: Fix OpenCOR's dependencies (Windows on ARM only)
46+
if: ${{ matrix.name == 'Windows (ARM)' }}
47+
run: |
48+
choco install wget unzip
49+
cd node_modules/electron
50+
Remove-Item -Recurse -Force dist
51+
mkdir dist
52+
cd dist
53+
wget https://github.com/electron/electron/releases/download/v34.0.2/electron-v34.0.2-win32-arm64.zip -O electron.zip
54+
unzip electron.zip
55+
del electron.zip
56+
- name: Build OpenCOR (all platforms except Windows on ARM)
57+
if: ${{ (matrix.name != 'Windows (ARM)') && (matrix.name != 'Code formatting') && (matrix.name != 'Linting') }}
5658
run: pnpm build
59+
- name: Build OpenCOR (Windows on ARM only)
60+
if: ${{ matrix.name == 'Windows (ARM)' }}
61+
run: |
62+
pnpm cmake-js build -a arm64 -B Release -O out/libOpenCOR
63+
pnpm electron-vite build
5764
- name: Build OpenCOR's Web app
5865
if: ${{ (matrix.name != 'Code formatting') && (matrix.name != 'Linting') }}
5966
run: pnpm build:web

0 commit comments

Comments
 (0)