76 lines
2.2 KiB
YAML
76 lines
2.2 KiB
YAML
|
name: Release Build
|
||
|
|
||
|
on:
|
||
|
push:
|
||
|
paths-ignore:
|
||
|
- "*.md"
|
||
|
- "compose.*"
|
||
|
branches:
|
||
|
- "main"
|
||
|
|
||
|
env:
|
||
|
CARGO_TERM_COLOR: always
|
||
|
|
||
|
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc
|
||
|
CC_aarch64_unknown_linux_musl: aarch64-linux-gnu-gcc
|
||
|
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_LINKER: arm-linux-gnueabihf-gcc
|
||
|
CC_armv7_unknown_linux_musleabihf: arm-linux-gnueabihf-gcc
|
||
|
|
||
|
jobs:
|
||
|
build:
|
||
|
name: Rust project - latest
|
||
|
runs-on: ubuntu-latest
|
||
|
strategy:
|
||
|
matrix:
|
||
|
target:
|
||
|
- x86_64-unknown-linux-musl
|
||
|
- aarch64-unknown-linux-musl
|
||
|
- armv7-unknown-linux-musleabihf
|
||
|
steps:
|
||
|
- uses: actions/checkout@v4
|
||
|
|
||
|
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||
|
with:
|
||
|
target: ${{ matrix.target }}
|
||
|
|
||
|
- if: matrix.target == 'x86_64-unknown-linux-musl'
|
||
|
run: |
|
||
|
sudo apt-get update
|
||
|
sudo apt-get install -y --no-install-recommends musl-tools
|
||
|
|
||
|
- if: matrix.target == 'armv7-unknown-linux-musleabihf'
|
||
|
run: |
|
||
|
sudo apt update
|
||
|
sudo apt install -y gcc-arm-linux-gnueabihf musl-tools
|
||
|
|
||
|
- if: matrix.target == 'aarch64-unknown-linux-musl'
|
||
|
run: |
|
||
|
sudo apt update
|
||
|
sudo apt install -y gcc-aarch64-linux-gnu musl-tools
|
||
|
|
||
|
- name: Versions
|
||
|
id: version
|
||
|
run: echo "VERSION=$(cargo metadata --format-version 1 --no-deps | jq .packages[0].version -r | sed 's/^/v/')" >> "$GITHUB_OUTPUT"
|
||
|
|
||
|
- name: Build
|
||
|
run: cargo build --release --target ${{ matrix.target }}
|
||
|
|
||
|
- name: Package release
|
||
|
run: tar czf redlib-${{ matrix.target }}.tar.gz -C target/${{ matrix.target }}/release/ redlib
|
||
|
|
||
|
- name: Upload release
|
||
|
uses: softprops/action-gh-release@v1
|
||
|
if: github.base_ref != 'main' && github.event_name == 'release'
|
||
|
with:
|
||
|
tag_name: ${{ steps.version.outputs.VERSION }}
|
||
|
name: ${{ steps.version.outputs.VERSION }} - ${{ github.event.head_commit.message }}
|
||
|
draft: true
|
||
|
files: |
|
||
|
redlib-${{ matrix.target }}.tar.gz
|
||
|
body: |
|
||
|
- ${{ github.event.head_commit.message }} ${{ github.sha }}
|
||
|
generate_release_notes: true
|
||
|
|
||
|
|
||
|
|