Skip to content

Commit 9ca20bd

Browse files
Merge pull request #609 from marceltaeumel/marceltaeumel/gha-macos-arm
Adds builds for macos64ARMv8 to GHA
2 parents 27d2d9f + 7c761e7 commit 9ca20bd

File tree

6 files changed

+151
-12
lines changed

6 files changed

+151
-12
lines changed

.github/workflows/extra-arm.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
# - arch: linux32ARMv8
3838
# flavor: squeak.cogmt.spur
3939

40-
runs-on: ubuntu-latest
40+
runs-on: ubuntu-latest # we setup QEMU to produce binaries anyway
4141
name: ${{ matrix.flavor }} for ${{ matrix.arch }}
4242
env:
4343
ARCH: ${{ matrix.arch }}

.github/workflows/extra.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- { name: win32x86, os: windows-latest }
2222
- { name: linux64x64, os: ubuntu-18.04 }
2323
- { name: linux32x86, os: ubuntu-18.04 }
24-
- { name: macos64x64, os: macos-latest }
24+
- { name: macos64x64, os: macos-10.15 }
2525
# - { name: macos32x86, os: macos-latest }
2626

2727
flavor:
@@ -50,7 +50,7 @@ jobs:
5050

5151
# - arch: { name: macos64x64, os: macos-latest }
5252
# flavor: pharo.cog.spur.lowcode # impl. decl. getThisSessionID
53-
- arch: { name: macos64x64, os: macos-latest }
53+
- arch: { name: macos64x64, os: macos-10.15 }
5454
flavor: pharo.stack.spur.lowcode
5555

5656
runs-on: ${{ matrix.arch.os }}

.github/workflows/linux-arm.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ on:
99
- 'scripts/ci/*build.sh'
1010
- 'deploy/**'
1111
# Relevant sources for this platform
12-
- 'building/linux*/**' # Makefile-based build scripts
12+
- 'building/linux*ARM*/**' # Makefile-based build scripts
13+
- 'building/linux32/**' # Makefile-based build scripts
14+
- 'building/linux64/**' # Makefile-based build scripts
1315
- '*src/**' # Generated VMMaker sources (incl. plugins)
1416
- 'platforms/Cross/**'
1517
- 'platforms/unix/**'
@@ -26,7 +28,9 @@ on:
2628
- 'scripts/ci/*build.sh'
2729
- 'deploy/**'
2830
# Relevant sources for this platform
29-
- 'building/linux*/**' # Makefile-based build scripts
31+
- 'building/linux*ARM*/**' # Makefile-based build scripts
32+
- 'building/linux32/**' # Makefile-based build scripts
33+
- 'building/linux64/**' # Makefile-based build scripts
3034
- '*src/**' # Generated VMMaker sources (incl. plugins)
3135
- 'platforms/Cross/**'
3236
- 'platforms/unix/**'
@@ -57,7 +61,7 @@ jobs:
5761
- debug
5862
- assert
5963

60-
runs-on: ubuntu-latest
64+
runs-on: ubuntu-latest # we setup QEMU to produce binaries anyway
6165
name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }}
6266
env:
6367
ARCH: ${{ matrix.arch }}

.github/workflows/linux.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ on:
99
- 'scripts/ci/*build.sh'
1010
- 'deploy/**'
1111
# Relevant sources for this platform
12-
- 'building/linux*/**' # Makefile-based build scripts
12+
- 'building/linux*x*/**' # Makefile-based build scripts
13+
- 'building/linux32/**' # Makefile-based build scripts
14+
- 'building/linux64/**' # Makefile-based build scripts
1315
- '*src/**' # Generated VMMaker sources (incl. plugins)
1416
- 'platforms/Cross/**'
1517
- 'platforms/unix/**'
@@ -26,7 +28,9 @@ on:
2628
- 'scripts/ci/*build.sh'
2729
- 'deploy/**'
2830
# Relevant sources for this platform
29-
- 'building/linux*/**' # Makefile-based build scripts
31+
- 'building/linux*x*/**' # Makefile-based build scripts
32+
- 'building/linux32/**' # Makefile-based build scripts
33+
- 'building/linux64/**' # Makefile-based build scripts
3034
- '*src/**' # Generated VMMaker sources (incl. plugins)
3135
- 'platforms/Cross/**'
3236
- 'platforms/unix/**'
@@ -79,7 +83,7 @@ jobs:
7983
heartbeat: threaded
8084
mode: fast
8185

82-
runs-on: ubuntu-18.04
86+
runs-on: ubuntu-18.04 # better backwards compatibility than ubuntu-20.04
8387
name: ${{ matrix.flavor }}${{ matrix.heartbeat == 'itimer' && ' (itimer)' || '' }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }}
8488
env:
8589
ARCH: ${{ matrix.arch }}

.github/workflows/macos-arm.yml

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
name: Build for macOS (ARM)
2+
3+
on:
4+
push: # All branches, but appropriate paths only.
5+
paths:
6+
# This workflow spec and its support scripts
7+
- '.github/workflows/macos.yml'
8+
- 'scripts/ci/*build.sh'
9+
- 'deploy/**'
10+
# Relevant sources for this platform
11+
- 'building/macos*ARM*/**' # Makefile-based build scripts
12+
- '*src/**' # Generated VMMaker sources (incl. plugins)
13+
- 'platforms/Cross/**'
14+
- 'platforms/iOS/**' # Note that 'platforms/Mac OS' is deprecated
15+
# Skip changes in documentation artifacts
16+
- '!**.md'
17+
- '!**HowToBuild'
18+
pull_request:
19+
branches:
20+
- Cog
21+
paths:
22+
# This workflow spec and its support scripts
23+
- '.github/workflows/macos.yml'
24+
- 'scripts/ci/*build.sh'
25+
- 'deploy/**'
26+
# Relevant sources for this platform
27+
- 'building/macos*ARM*/**' # Makefile-based build scripts
28+
- '*src/**' # Generated VMMaker sources (incl. plugins)
29+
- 'platforms/Cross/**'
30+
- 'platforms/iOS/**' # Note that 'platforms/Mac OS' is deprecated
31+
# Skip changes in documentation artifacts
32+
- '!**.md'
33+
- '!**HowToBuild'
34+
workflow_dispatch:
35+
inputs:
36+
tag:
37+
description: "Build new release candidate for tag"
38+
required: true
39+
default: YYYYMMDDHHMM
40+
41+
jobs:
42+
build:
43+
strategy:
44+
fail-fast: true
45+
matrix:
46+
arch:
47+
- macos64ARMv8
48+
flavor:
49+
- squeak.cog.spur
50+
# - squeak.sista.spur # -Werror bc. decl. missing
51+
- squeak.stack.spur
52+
# - pharo.cog.spur
53+
# - pharo.sista.spur # -Werror bc. decl. missing
54+
# - pharo.stack.spur
55+
mode:
56+
- fast
57+
- debug
58+
- assert
59+
60+
runs-on: macos-10.15 # macos-11 macos-latest
61+
name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }}
62+
env:
63+
ARCH: ${{ matrix.arch }}
64+
FLAVOR: ${{ matrix.flavor }}
65+
MODE: ${{ matrix.mode }}
66+
steps:
67+
- name: Checkout files
68+
if: github.event_name != 'workflow_dispatch'
69+
uses: actions/checkout@v2
70+
71+
- name: Checkout files for new release candidate
72+
if: github.event_name == 'workflow_dispatch'
73+
uses: actions/checkout@v2
74+
with:
75+
ref: refs/tags/${{ github.event.inputs.tag }}
76+
77+
- name: Restore build cache
78+
uses: actions/cache@v2
79+
with:
80+
path: .thirdparty-cache
81+
key: thirdparty-cache-macos
82+
83+
- name: Build VM
84+
run: ./scripts/ci/actions_build.sh
85+
86+
- name: Sign VM
87+
continue-on-error: true # Save unsigned build artifacts
88+
run: ./deploy/sign-vm.sh
89+
env:
90+
SQUEAK_SIGN_PASSWORD: ${{ secrets.SQUEAK_SIGN_PASSWORD }}
91+
SQUEAK_CERT_PASSWORD: ${{ secrets.SQUEAK_CERT_PASSWORD }}
92+
SQUEAK_SIGN_IDENTITY: ${{ secrets.SQUEAK_SIGN_IDENTITY }}
93+
PHARO_SIGN_PASSWORD: ${{ secrets.PHARO_SIGN_PASSWORD }}
94+
PHARO_CERT_PASSWORD: ${{ secrets.PHARO_CERT_PASSWORD }}
95+
PHARO_SIGN_IDENTITY: ${{ secrets.PHARO_SIGN_IDENTITY }}
96+
NEWSPEAK_SIGN_PASSWORD: ${{ secrets.NEWSPEAK_SIGN_PASSWORD }}
97+
NEWSPEAK_CERT_PASSWORD: ${{ secrets.NEWSPEAK_CERT_PASSWORD }}
98+
NEWSPEAK_SIGN_IDENTITY: ${{ secrets.NEWSPEAK_SIGN_IDENTITY }}
99+
100+
- name: Pack VM
101+
run: ./deploy/pack-vm.sh
102+
103+
- name: Store artifact w/ revision
104+
uses: actions/upload-artifact@v2
105+
with:
106+
name: ${{ env.ASSET_NAME }}_${{ env.ASSET_REVISION }}
107+
path: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }}
108+
109+
- name: Update artifact in latest-build
110+
uses: ncipollo/[email protected]
111+
if: github.event_name == 'push' && endsWith( github.ref , 'Cog' )
112+
with:
113+
prerelease: true
114+
allowUpdates: true
115+
replacesArtifacts: true
116+
artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }}
117+
token: ${{ secrets.GITHUB_TOKEN }}
118+
tag: ${{ matrix.mode == 'debug' && 'latest-debug-build' || matrix.mode == 'assert' && 'latest-assert-build' || 'latest-build' }}
119+
body: ${{ github.event.head_commit.message }}
120+
121+
- name: Deploy artifact as new release candidate
122+
uses: ncipollo/[email protected]
123+
if: github.event_name == 'workflow_dispatch'
124+
with:
125+
prerelease: true # release candidate
126+
allowUpdates: true
127+
replacesArtifacts: true
128+
artifacts: products/${{ env.ASSET_NAME }}.${{ env.ASSET_EXTENSION }}
129+
token: ${{ secrets.GITHUB_TOKEN }}
130+
tag: ${{ github.event.inputs.tag }}
131+
body: ${{ github.event.head_commit.message }}

.github/workflows/macos.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
- 'scripts/ci/*build.sh'
99
- 'deploy/**'
1010
# Relevant sources for this platform
11-
- 'building/macos*/**' # Makefile-based build scripts
11+
- 'building/macos*x*/**' # Makefile-based build scripts
1212
- '*src/**' # Generated VMMaker sources (incl. plugins)
1313
- 'platforms/Cross/**'
1414
- 'platforms/iOS/**' # Note that 'platforms/Mac OS' is deprecated
@@ -24,7 +24,7 @@ on:
2424
- 'scripts/ci/*build.sh'
2525
- 'deploy/**'
2626
# Relevant sources for this platform
27-
- 'building/macos*/**' # Makefile-based build scripts
27+
- 'building/macos*x*/**' # Makefile-based build scripts
2828
- '*src/**' # Generated VMMaker sources (incl. plugins)
2929
- 'platforms/Cross/**'
3030
- 'platforms/iOS/**' # Note that 'platforms/Mac OS' is deprecated
@@ -58,7 +58,7 @@ jobs:
5858
- debug
5959
- assert
6060

61-
runs-on: macos-latest
61+
runs-on: macos-10.15 # macos-11 macos-latest
6262
name: ${{ matrix.flavor }} for ${{ matrix.arch }}${{ matrix.mode == 'debug' && ' (DEBUG)' || matrix.mode == 'assert' && ' (ASSERT)' || '' }}
6363
env:
6464
ARCH: ${{ matrix.arch }}

0 commit comments

Comments
 (0)