diff --git a/.github/workflows/build-specified-target.yml b/.github/workflows/build-specified-target.yml new file mode 100644 index 0000000..862c364 --- /dev/null +++ b/.github/workflows/build-specified-target.yml @@ -0,0 +1,72 @@ +name: Build Specified Target + +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-pc-windows-gnu + - i686-pc-windows-msvc + - 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 + - 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 + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ ubuntu-latest ] + rust: [ stable ] + + steps: + - name: Checkout + uses: actions/Checkout@v4 + - 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: Archive + run: tar -czvf ./target/${{ github.event.inputs.target }}/release/ratisui-${{ github.event.inputs.target }}.tar.gz LICENSE README.md -C ./target/${{ github.event.inputs.target }}/release ratisui + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: ratisui-${{ github.event.inputs.target }}.tar.gz + path: | + ./target/${{ github.event.inputs.target }}/release/ratisui-${{ github.event.inputs.target }}.tar.gz +