config: formatter #1102
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] | |
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 | |
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: b99dddf46aca7cea008bca56f5a553c5d7776219 | |
- repo: acemod/ACE3 | |
commit: eb57fa49c404e662abcd18c7e52c1f7c4b67a9b0 | |
- repo: ArmaForces/Mods | |
commit: 83561696a94aafdf0b4b770730d1fe716348d992 | |
- repo: Theseus-Aegis/Mods | |
commit: 943906d18817a7f0829742f0c91cdad34456c594 | |
- repo: SynixeContractors/Mod | |
commit: 6f3bb1fc8f8716085e138941e223163bd8229389 | |
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 | |
if: startsWith(matrix.os.runner, 'ubuntu') | |
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 | |
if: startsWith(matrix.os.runner, 'windows') | |
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: Download Windows x64 | |
uses: actions/download-artifact@v4 | |
with: | |
name: windows-x64 | |
path: release | |
- name: Zip Linux x64 | |
run: | | |
cd release && zip linux-x64.zip hemtt && rm hemtt | |
- name: Create Release Version | |
run: | | |
VERSION=${GITHUB_REF_NAME#v} | |
echo Version: $VERSION | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
- name: Zip Windows x64 | |
run: | | |
cd release && zip windows-x64.zip hemtt.exe && rm hemtt.exe | |
- 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 |