install: fix macOS (#1200) #2354
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| branches: [main] | |
| tags: | |
| - v* | |
| pull_request: | |
| branches: [main] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| build: | |
| name: ${{ matrix.os.name }} | |
| runs-on: ${{ matrix.os.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - runner: ubuntu-22.04 | |
| name: ubuntu | |
| artifact: linux-x64 | |
| exe: hemtt | |
| - runner: windows-latest | |
| name: windows | |
| artifact: windows-x64 | |
| exe: hemtt.exe | |
| # ARM Mac - always build (more available runners) | |
| - runner: macos-latest | |
| name: macos-arm | |
| artifact: macos-arm64 | |
| exe: hemtt | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: stable | |
| - run: echo "RELEASE=true" >> $GITHUB_ENV | |
| if: startsWith(github.ref, 'refs/tags/') && matrix.os.name != 'windows' | |
| - run: echo "RELEASE=true" >> $env:GITHUB_ENV | |
| if: startsWith(github.ref, 'refs/tags/') && matrix.os.name == 'windows' | |
| - name: Rust Cache | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: build-${{ matrix.os.name }} | |
| - name: Compile | |
| run: cargo build --release --bin hemtt -p hemtt | |
| - name: Upload | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ${{ matrix.os.artifact }} | |
| path: target/release/${{ matrix.os.exe }} | |
| mods: | |
| name: ${{ matrix.os.name }} / ${{ matrix.mod.repo }} | |
| runs-on: ${{ matrix.os.runner }} | |
| needs: | |
| - build | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - runner: ubuntu-22.04 | |
| name: ubuntu | |
| artifact: linux-x64 | |
| - runner: windows-latest | |
| name: windows | |
| artifact: windows-x64 | |
| mod: | |
| - repo: CBATeam/CBA_A3 | |
| commit: de3ef9f713de3f49a2a1a72ecd7efa73785ce288 | |
| - repo: acemod/ACE3 | |
| commit: 2e82454ae5733b678a9da4bcd33f772eb547481f | |
| - repo: IDI-Systems/acre2 | |
| commit: e5c1bba58b63e18d03721a68d32efd39748af551 | |
| - repo: ArmaForces/Mods | |
| commit: 79d21ac395d16cb7ed1ed556b0da4cbc67af98c9 | |
| - repo: Theseus-Aegis/Mods | |
| commit: 943906d18817a7f0829742f0c91cdad34456c594 | |
| - repo: SynixeContractors/Mod | |
| commit: b04fb1ea3a291366017026e2ec94f95a0f28eb8b | |
| steps: | |
| - name: Download HEMTT | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: ${{ matrix.os.artifact }} | |
| path: hemtt | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| repository: ${{ matrix.mod.repo }} | |
| path: mod | |
| ref: ${{ matrix.mod.commit }} | |
| - name: Install Linux & MacOS | |
| if: startsWith(matrix.os.runner, 'ubuntu') || startsWith(matrix.os.runner, 'macos') | |
| run: | | |
| cd hemtt && cp hemtt /usr/local/bin/hemtt && chmod +x /usr/local/bin/hemtt | |
| - name: Install Windows | |
| if: startsWith(matrix.os.runner, 'windows') | |
| run: | | |
| cd hemtt && copy hemtt.exe C:\Windows\System32\hemtt.exe | |
| - name: Run `hemtt dev` on ${{ matrix.mod.repo }} | |
| run: | | |
| cd mod && hemtt dev | |
| - name: Install Arma 3 Tools | |
| uses: arma-actions/arma3-tools@master | |
| with: | |
| toolsUrl: ${{ secrets.ARMA3_TOOLS_URL }} | |
| - name: Run `hemtt build` on ${{ matrix.mod.repo }} | |
| run: | | |
| cd mod && hemtt build | |
| release: | |
| name: Release | |
| if: startsWith(github.ref, 'refs/tags/') | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - build | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Download Linux x64 | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: linux-x64 | |
| path: release | |
| - name: Zip Linux x64 | |
| run: | | |
| cd release && zip linux-x64.zip hemtt | |
| - name: Rename Linux x64 | |
| run: | | |
| cd release && mv hemtt linux-x64 | |
| - name: Download Windows x64 | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: windows-x64 | |
| path: release | |
| - name: Zip Windows x64 | |
| run: | | |
| cd release && zip windows-x64.zip hemtt.exe && rm hemtt.exe | |
| - name: Download MacOS ARM64 | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: macos-arm64 | |
| path: release | |
| - name: Rename MacOS ARM64 | |
| run: | | |
| cd release && mv hemtt darwin-arm64 | |
| - name: Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: | | |
| release/* | |
| draft: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| winget: | |
| needs: | |
| - release | |
| runs-on: windows-latest | |
| steps: | |
| # Requires forked winget-pkgs: https://github.com/microsoft/winget-pkgs to the same account as this project | |
| - name: Submit to WinGet | |
| uses: vedantmgoyal2009/winget-releaser@v2 | |
| with: | |
| identifier: BrettMayson.HEMTT | |
| installers-regex: 'windows-x64.zip' | |
| token: ${{ secrets.WINGET_TOKEN }} # Classic Personal Access Token with [public_repo, workflow] scopes |