name: Release Drafter on: push: tags: - '*' jobs: package_application: runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v4 with: lfs: true - name: Set up JDK 11 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'zulu' cache: gradle - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle run: ./gradlew assembleDebug - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: simtak path: app/build/outputs/apk/debug/app-debug.apk if-no-files-found: error retention-days: 1 build_extension: strategy: matrix: os_target: - { os: "windows-latest", target: "i686-pc-windows-msvc", artifact: "armatak.dll" } - { os: "windows-latest", target: "x86_64-pc-windows-msvc", artifact: "armatak.dll" } - { os: "ubuntu-latest", target: "x86_64-unknown-linux-gnu", artifact: "libarmatak.so" } runs-on: ${{ matrix.os_target.os }} steps: - name: Checkout Repo uses: actions/checkout@v4 with: lfs: true - name: Install Rust Toolchain uses: actions-rs/toolchain@v1 with: target: ${{ matrix.os_target.target }} toolchain: stable default: true - name: Install Dependencies (Linux only) if: matrix.os_target.os == 'ubuntu-latest' run: sudo apt-get update && sudo apt-get install -y build-essential - name: Cargo Build run: cargo build --release --target ${{ matrix.os_target.target }} - name: Check Stuff run: ls target/release - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: ${{ matrix.os_target.target }} path: target/${{ matrix.os_target.target }}/release/${{ matrix.os_target.artifact }} if-no-files-found: error retention-days: 1 package: needs: [build_extension, package_application] runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v4 with: lfs: true - run: mkdir -p ./target/release - name: Download Windows x64 Artifact uses: actions/download-artifact@v4 with: name: x86_64-pc-windows-msvc - run: mv ./armatak.dll ./armatak_x64.dll - name: Download Windows x86 Artifact uses: actions/download-artifact@v4 with: name: i686-pc-windows-msvc - name: Download Linux x64 Artifact uses: actions/download-artifact@v4 with: name: x86_64-unknown-linux-gnu - run: mv ./libarmatak.so ./armatak_x64.so - name: Download Android Application Installer uses: actions/download-artifact@v4 with: name: simtak - run: mv ./app-debug.apk ./simtak.apk - name: Setup HEMTT uses: arma-actions/hemtt@v1 - name: Build run: hemtt release - name: Upload Final Package uses: actions/upload-artifact@v4 with: name: armatak.zip path: 'releases/armatak-latest.zip' get_commits: runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v4 - name: Get previous tag id: prev_tag run: echo "::set-output name=tag::$(git describe --tags --abbrev=0 HEAD^)" - name: Get commit messages id: commits run: | echo "::set-output name=messages::$(git log ${{ steps.prev_tag.outputs.tag }}..HEAD --pretty=format:'%h - %s' | tr '\n' ',' | sed 's/,$//')" create_release: needs: [package, get_commits] runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v4 with: lfs: true - name: Create Release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} body: | Changes in this release: ${{ steps.commits.outputs.messages }} draft: false prerelease: false - name: Upload Release Asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: releases/armatak-latest.zip asset_name: armatak-latest.zip asset_content_type: application/zip