diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 57c93619..50ad448f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ jobs: build: strategy: matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest, windows-latest, macos-latest] ida_sdk: [74, 77, 80, 81, 82, 83] include: - ida_sdk: 74 @@ -28,21 +28,27 @@ jobs: ext: so - os: windows-latest ext: dll + - os: macos-latest + ext: dylib + exclude: + # We exclude these because ARM libraries were not available in 7.4 and the latest macos runner on GitHub are Mx machines + - os: macos-latest + ida_sdk: 74 runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4.1.1 - name: Setup cmake - uses: jwlawson/actions-setup-cmake@v1.12 + uses: jwlawson/actions-setup-cmake@959f1116cf9f1ae42fff8ec1a4aaae6d4a0e348b #v2.0.1 - - name: Install Ninja (Linux only) - if: ${{ matrix.os == 'ubuntu-latest' }} - uses: seanmiddleditch/gha-setup-ninja@master + - name: Install Ninja (Linux / MacOS) + if: ${{ matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' }} + uses: seanmiddleditch/gha-setup-ninja@v4 - - name: Prepare build environment (Linux) - if: ${{ matrix.os == 'ubuntu-latest' }} + - name: Prepare build environment (Linux / MacOS) + if: ${{ matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' }} env: IDA_SDK_VERSION: idasdk${{ matrix.ida_sdk }} IDA_SDK_PASSWORD: ${{ secrets[matrix.sdk_password] }} @@ -80,19 +86,18 @@ jobs: # We need one action per file # See https://github.com/actions/upload-artifact/issues/331 - name: Upload Artifacts (64) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.1 with: name: idaplugin-${{ matrix.os }}-${{ matrix.ida_sdk }} path: ${{ matrix.ida_sdk }}-quokka_plugin0064.${{ matrix.ext }} if-no-files-found: error - name: Upload Artifacts (32) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.3.1 with: name: idaplugin-${{ matrix.os }}-${{ matrix.ida_sdk }}-32 path: ${{ matrix.ida_sdk }}-quokka_plugin0032.${{ matrix.ext }} if-no-files-found: error - upload: name: Upload artifacts for Release @@ -102,21 +107,28 @@ jobs: strategy: matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest, windows-latest, macos-latest] ida_sdk: [74, 77, 80, 81, 82, 83] + bitness: ['', '-32'] include: - os: windows-latest ext: dll - os: ubuntu-latest ext: so + - os: macos-latest + ext: dylib + exclude: + - os: macos-latest + ida_sdk: 74 + steps: - name: Download Artefact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4.1.4 with: - name: idaplugin-${{ matrix.os }}-${{ matrix.ida_sdk }} + name: idaplugin-${{ matrix.os }}-${{ matrix.ida_sdk }}${{ matrix.bitness }} - name: Release - uses: softprops/action-gh-release@v0.1.14 + uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 #v2.0.4 with: files: ${{ matrix.ida_sdk }}-quokka_* fail_on_unmatched_files: true