config: file type check ignores classes #1428
This file contains 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-latest | |
name: ubuntu | |
artifact: linux-x64 | |
exe: hemtt | |
- runner: windows-latest | |
name: windows | |
artifact: windows-x64 | |
exe: hemtt.exe | |
# Intel Mac | |
- runner: macos-13 | |
name: macos-x64 | |
artifact: macos-x64 | |
exe: hemtt | |
# ARM Mac | |
- runner: macos-latest | |
name: macos-arm | |
artifact: macos-arm64 | |
exe: hemtt | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- run: echo "RELEASE=true" >> $GITHUB_ENV | |
if: startsWith(github.ref, 'refs/tags/') && matrix.os.name == 'ubuntu' | |
- 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 | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
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-latest | |
name: ubuntu | |
artifact: linux-x64 | |
- runner: windows-latest | |
name: windows | |
artifact: windows-x64 | |
mod: | |
- repo: CBATeam/CBA_A3 | |
commit: a587b46cf91278ee7391daac76f3ff78dac1e515 | |
- repo: acemod/ACE3 | |
commit: eb57fa49c404e662abcd18c7e52c1f7c4b67a9b0 | |
- 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@v4 | |
with: | |
name: ${{ matrix.os.artifact }} | |
path: hemtt | |
- name: Checkout | |
uses: actions/checkout@v4 | |
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-latest | |
needs: | |
- build | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download Linux x64 | |
uses: actions/download-artifact@v4 | |
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@v4 | |
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 x64 | |
uses: actions/download-artifact@v4 | |
with: | |
name: macos-x64 | |
path: release | |
- name: Zip MacOS x64 | |
run: | | |
cd release && zip macos-x64.zip hemtt | |
- name: Rename MacOS x64 | |
run: | | |
cd release && mv hemtt darwin-x64 | |
- name: Download MacOS ARM64 | |
uses: actions/download-artifact@v4 | |
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 |