Skip to content

.github/workflows/linux.yml #1

.github/workflows/linux.yml

.github/workflows/linux.yml #1

Workflow file for this run

on:
workflow_dispatch:
workflow_call:
env:
CARGO_TERM_COLOR: always
jobs:
build-linux:
runs-on: ubuntu-latest
permissions:
contents: write
strategy:
matrix:
target:
- x86_64-unknown-linux-gnu
- aarch64-unknown-linux-gnu
- armv7-unknown-linux-gnueabihf
steps:
- uses: actions/checkout@v4
- name: Install target for ${{ matrix.target }}
run: rustup target add ${{ matrix.target }}
- name: Install cross-compilation tools
run: |
if [[ "${{ matrix.target }}" == "armv7-unknown-linux-gnueabihf" ]]; then
sudo apt-get update
sudo apt-get install -y gcc-arm-linux-gnueabihf
fi
- name: Build for ${{ matrix.target }}
run: |
cargo build --release --verbose --target ${{ matrix.target }}
env:
TARGET: ${{ matrix.target }}
- name: install cargo-deb
run: cargo install cargo-deb
- name: install cargo-generate-rpm
run: cargo install cargo-generate-rpm
- name: Generate DEB package
run: cargo deb
- name: Generate RPM package
run: cargo generate-rpm
- name: Generate DEB package
run: |
if [[ "${{ matrix.target }}" == "x86_64-unknown-linux-gnu" ]]; then
cargo deb --target ${{ matrix.target }}
elif [[ "${{ matrix.target }}" == "aarch64-unknown-linux-gnu" ]]; then
cargo deb --target ${{ matrix.target }}
elif [[ "${{ matrix.target }}" == "armv7-unknown-linux-gnueabihf" ]]; then
cargo deb --target ${{ matrix.target }}
fi
- name: Generate RPM package
run: |
if [[ "${{ matrix.target }}" == "x86_64-unknown-linux-gnu" ]]; then
cargo generate-rpm --target ${{ matrix.target }}
elif [[ "${{ matrix.target }}" == "aarch64-unknown-linux-gnu" ]]; then
cargo generate-rpm --target ${{ matrix.target }}
elif [[ "${{ matrix.target }}" == "armv7-unknown-linux-gnueabihf" ]]; then
cargo generate-rpm --target ${{ matrix.target }}
fi
- name: get version
id: get_version
run: echo "version=$(./target/release/cim -v)" >> $GITHUB_ENV
- name: Rename bin
run: mv target/release/cim target/release/cim-${{ matrix.target }}
- name: Upload release assets
uses: AButler/upload-release-assets@v3.0
with:
files: "target/debian/cim*.deb;target/generate-rpm/cim*.rpm;target/release/cim-*"
repo-token: ${{ github.token }}
release-tag: "v${{ env.version }}"