name: Build Specified Target permissions: contents: read on: workflow_dispatch: inputs: target: type: choice required: true description: Compile target default: x86_64-unknown-linux-gnu options: # Tier 1 - aarch64-apple-darwin - aarch64-unknown-linux-gnu - i686-unknown-linux-gnu - x86_64-apple-darwin - x86_64-pc-windows-gnu - x86_64-pc-windows-msvc - x86_64-unknown-linux-gnu # Tier 2 - i686-pc-windows-gnu - i686-pc-windows-msvc - aarch64-pc-windows-msvc - aarch64-unknown-linux-musl - arm-unknown-linux-gnueabi - arm-unknown-linux-gnueabihf - armv7-unknown-linux-gnueabihf - loongarch64-unknown-linux-gnu - loongarch64-unknown-linux-musl - powerpc-unknown-linux-gnu - powerpc64-unknown-linux-gnu - powerpc64le-unknown-linux-gnu - powerpc64le-unknown-linux-musl - riscv64gc-unknown-linux-gnu - riscv64gc-unknown-linux-musl - s390x-unknown-linux-gnu - x86_64-unknown-freebsd - x86_64-unknown-illumos - x86_64-unknown-linux-musl - x86_64-unknown-netbsd os: type: choice required: true description: Build System default: ubuntu-latest options: - ubuntu-latest - ubuntu-24.04 - ubuntu-22.04 - macos-latest - macos-15 - macos-15-large - macos-14-large - macos-14 - macos-13 - windows-latest - windows-2025 - windows-2022 - windows-2019 jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ ubuntu-latest ] rust: [ stable ] steps: - name: Checkout uses: actions/Checkout@v6 - name: rust-toolchain uses: dtolnay/rust-toolchain@v1 with: toolchain: stable target: ${{ github.event.inputs.target }} - name: Cargo uses: actions-rs/cargo@v1 with: use-cross: true command: build args: --target ${{ github.event.inputs.target }} --release - name: Create Meta File run: | echo "License : MIT" > META-INF echo "Repository URL : https://github.com/${GITHUB_REPOSITORY}" >> META-INF echo "Commit SHA : ${{ github.sha }}" >> META-INF echo "Build At : $(date)" >> META-INF - name: Create Temp Dir run: | mkdir artifacts mv ./target/${{ github.event.inputs.target }}/release/ratisui ./artifacts mv META-INF ./artifacts - name: Upload build artifacts uses: actions/upload-artifact@v6 with: name: ratisui-${{ github.event.inputs.target }} compression-level: 9 retention-days: 1 path: ./artifacts/*