From: <sv...@op...> - 2024-03-07 08:13:34
|
Author: manx Date: Thu Mar 7 09:13:27 2024 New Revision: 20260 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20260 Log: [Imp] build: CI: GitHub: macOS: Use a big matrix build with explicit host system, Xcode version, architecture, and deployment target. Added: trunk/OpenMPT/.github/workflows/macOS-Makefile.yml Deleted: trunk/OpenMPT/.github/workflows/macOS-12-Makefile.yml trunk/OpenMPT/.github/workflows/macOS-13-Makefile.yml trunk/OpenMPT/.github/workflows/macOS-14-Makefile.yml Added: trunk/OpenMPT/.github/workflows/macOS-Makefile.yml ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/OpenMPT/.github/workflows/macOS-Makefile.yml Thu Mar 7 09:13:27 2024 (r20260) @@ -0,0 +1,57 @@ + +name: macOS Makefile + +on: + push: + branches: [ macos-action-test ] + pull_request: + branches: [ macos-action-test ] + +jobs: + build: + strategy: + matrix: + include: + - { host: macos-14, compiler: 15.2, arch: '' , target: '' , deps: true, check: true } + - { host: macos-14, compiler: 15.2, arch: arm64 , target: '' , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: x64_64, target: '' , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: arm64 , target: 14 , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: x64_64, target: 14 , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: arm64 , target: 13 , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: x64_64, target: 13 , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: arm64 , target: 12 , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: x64_64, target: 12 , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: arm64 , target: 11 , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: x64_64, target: 11 , deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: x64_64, target: 10.15, deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: x64_64, target: 10.14, deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: i386 , target: 10.14, deps: false, check: false } + - { host: macos-14, compiler: 15.2, arch: x64_64, target: 10.13, deps: false, check: true } + - { host: macos-14, compiler: 15.2, arch: i386 , target: 10.13, deps: false, check: false } + - { host: macos-13, compiler: 15.2, arch: x64_64, target: 10.13, deps: false, check: true } + - { host: macos-13, compiler: 15.2, arch: i386 , target: 10.13, deps: false, check: false } + - { host: macos-12, compiler: 14.2, arch: x64_64, target: 10.13, deps: false, check: true } + - { host: macos-12, compiler: 14.2, arch: i386 , target: 10.13, deps: false, check: false } + concurrency: + group: ${{github.ref}}-${{github.workflow}}-${{matrix.host}}-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.target}} + cancel-in-progress: true + runs-on: ${{matrix.host}} + steps: + - uses: actions/checkout@v4 + - name: fixup GitHub Homebrew node breakage + if: ${{ matrix.host == 'macos-12' }} + run: brew unlink node@18 && brew unlink node && brew link --overwrite node + - name: fixup GitHub Homebrew python breakage + if: ${{ matrix.host == 'macos-12' || matrix.host == 'macos-13' }} + run: brew unlink python@3.11 && brew unlink python@3.12 && brew link --overwrite python@3.11 && brew link --overwrite python@3.12 + - name: install dependencies + run: brew update && brew upgrade && brew install p7zip help2man doxygen autoconf-archive mpg123 libogg libvorbis portaudio flac libsndfile sdl2 + - name: selecting Xcode version + run: sudo xcode-select --switch /Applications/Xcode_${{matrix.compiler}}.app + - name: setup parallel make + run: echo "MAKEFLAGS=-j$(sysctl -n hw.ncpu)" >> $GITHUB_ENV + - name: make + run: make ${{ matrix.arch == '' && '' || join('ARCH=',matrix.arch) }} ${{ matrix.target == '' && '' || join('MACOSX_VERSION_MIN=',matrix.target) }} STRICT=1 ${{ matrix.deps && 'FORCE_DEPS=1' || 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} + - name: make check + if: ${{ matrix.check }} + run: make ${{ matrix.arch == '' && '' || join('ARCH=',matrix.arch) }} ${{ matrix.target == '' && '' || join('MACOSX_VERSION_MIN=',matrix.target) }} STRICT=1 ${{ matrix.deps && 'FORCE_DEPS=1' || 'LOCAL_ZLIB=1 LOCAL_MPG123=1 LOCAL_OGG=1 LOCAL_VORBIS=1 NO_PORTAUDIO=1 NO_PORTAUDIOCPP=1 NO_PULSEAUDIO=1 NO_SDL2=1 NO_FLAC=1 NO_SNDFILE=1' }} check |