@@ -13,13 +13,35 @@ jobs:
1313
1414 strategy :
1515 matrix :
16- python-version : ["3.11"]
17- platform : ["ubuntu-20.04", "macos-13", "windows-latest"]
18- architecture : ["x64"]
1916 include :
20- - architecture : " x86"
21- platform : " windows-latest"
22- python-version : " 3.11"
17+ # macOS builds
18+ - platform : macos-latest # M1/M2
19+ os : macos
20+ architecture : arm64
21+ - platform : macos-13 # Intel
22+ os : macos
23+ architecture : x64
24+
25+ # Windows builds
26+ - platform : windows-latest
27+ os : windows
28+ architecture : x64
29+ - platform : windows-latest
30+ os : windows
31+ architecture : x86 # 32-bit
32+ # NOT SUPPORTED YET
33+ # - platform: windows-2025
34+ # os: windows
35+ # architecture: arm64 # Windows ARM
36+
37+ # Linux builds
38+ - platform : ubuntu-latest
39+ os : linux
40+ architecture : x64
41+ - platform : 2-core-ubuntu-arm # or ubuntu-latest-arm
42+ # Check other options in https://github.com/mapillary/mapillary_tools/actions/runners
43+ os : linux
44+ architecture : arm64 # Linux ARM
2345
2446 runs-on : ${{ matrix.platform }}
2547
@@ -53,13 +75,12 @@ jobs:
5375 uses : FedericoCarboni/setup-ffmpeg@v3
5476 # ffmpeg is not supported in the latest macOS arch:
5577 # Error: setup-ffmpeg can only be run on 64-bit systems
56- if : matrix.platform != 'macos-13 '
78+ if : matrix.architecture == 'x64 '
5779
58- - name : Set up ${{ matrix.architecture }} Python ${{ matrix.python-version }}
80+ - name : Set up Python 3.11
5981 uses : actions/setup-python@v5
6082 with :
61- python-version : ${{ matrix.python-version }}
62- # optional x64 or x86. Defaults to x64 if not specified
83+ python-version : " 3.11"
6384 architecture : ${{ matrix.architecture }}
6485
6586 - name : Install dependencies
79100
80101 - name : Build and test with Pyinstaller on MacOS
81102 # Enable for Python3.11 only because it often fails at codesign (subprocess timeout)
82- if : matrix.platform == 'macos-13'
103+ if : startsWith( matrix.platform, 'macos')
83104 run : |
84105 ./script/build_osx
85106 # Could run full integration tests with the binary (it might be slow)
89110 MAPILLARY_TOOLS__TESTS_EXIFTOOL_EXECUTABLE : perl ${{ github.workspace }}/exiftool/exiftool.pl
90111
91112 - name : Build and test with Pyinstaller on Ubuntu
92- if : matrix.platform == 'ubuntu-20.04'
113+ if : contains( matrix.platform, 'ubuntu')
93114 run : |
94115 ./script/build_linux
95116 # Could run full integration tests with the binary (it might be slow)
99120 MAPILLARY_TOOLS__TESTS_EXIFTOOL_EXECUTABLE : perl ${{ github.workspace }}/exiftool/exiftool.pl
100121
101122 - name : Build and test with Pyinstaller on Windows
102- if : matrix.platform == 'windows-latest'
123+ if : startsWith( matrix.platform, 'windows')
103124 run : |
104125 ./script/build_bootloader.ps1
105126 ./script/build_win.ps1
@@ -123,7 +144,7 @@ jobs:
123144 if : ${{ startsWith(github.ref, 'refs/tags/') }}
124145 name : Upload release to PyPI
125146 needs : ["build_and_release"]
126- runs-on : " ubuntu-20.04 "
147+ runs-on : " ubuntu-latest "
127148 steps :
128149 - uses : actions/checkout@v4
129150
0 commit comments