Moved tips to a feature (#566) #290
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: LinUtil Release | |
on: | |
push: | |
branches: ["main"] | |
workflow_dispatch: | |
permissions: | |
contents: write | |
packages: write | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
linutil_build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache Cargo registry | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cargo/registry | |
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-cargo-registry- | |
- name: Cache Cargo index | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cargo/git | |
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-cargo-index- | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: x86_64-unknown-linux-musl | |
- name: Install cross-rs for cross-compilation | |
run: cargo install cross | |
- name: Build x86_64 binary | |
run: cargo build --target-dir=build --release --verbose --target=x86_64-unknown-linux-musl --all-features | |
- name: Build aarch64 binary | |
run: cross build --target-dir=build --release --verbose --target=aarch64-unknown-linux-musl --all-features | |
- name: Move binaries to build directory | |
run: | | |
mv build/x86_64-unknown-linux-musl/release/linutil build/linutil | |
mv build/aarch64-unknown-linux-musl/release/linutil build/linutil-aarch64 | |
- name: Pull latest changes | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "GitHub Actions" | |
git pull origin main | |
- uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: Commit Linutil | |
file_pattern: "build/linutil build/linutil-aarch64" | |
add_options: '--force' | |
if: success() | |
- name: Extract Version | |
id: extract_version | |
run: | | |
version=$(date +"%Y.%m.%d") | |
echo "version=$version" >> $GITHUB_ENV | |
shell: bash | |
- name: Generate Release Notes | |
id: generate_notes | |
uses: release-drafter/release-drafter@v6 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
config-name: release-drafter.yml | |
version: ${{ env.version }} | |
- name: Create and Upload Release | |
id: create_release | |
uses: softprops/action-gh-release@v2 | |
with: | |
tag_name: ${{ env.version }} | |
name: Pre-Release ${{ env.version }} | |
body: | | |
${{ steps.generate_notes.outputs.body }} | |
![GitHub Downloads (specific asset, specific tag)](https://img.shields.io/github/downloads/ChrisTitusTech/linutil/${{ env.version }}/linutil) | |
![GitHub Downloads (specific asset, specific tag)](https://img.shields.io/github/downloads/ChrisTitusTech/linutil/${{ env.version }}/linutil-aarch64) | |
append_body: false | |
files: | | |
./build/linutil | |
./build/linutil-aarch64 | |
./start.sh | |
./startdev.sh | |
prerelease: true | |
env: | |
version: ${{ env.version }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |