ffetch 0.7.0

Fast, minimal & Rust-powered system fetcher
Documentation
name: Release

on:
  push:
    tags:
      - 'v*.*.*'
  workflow_dispatch:

permissions:
  contents: write

jobs:
  release:
    runs-on: ubuntu-latest
    
    steps:
    - name: Checkout
      uses: actions/checkout@v4
      
    - name: Setup Rust
      uses: dtolnay/rust-toolchain@stable
      
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y pkg-config libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxcb-shm0-dev libx11-dev
        
    - name: Build
      run: cargo build --release
      
    - name: Get binary name and version
      id: get_info
      run: |
        BINARY_NAME=$(grep '^name = ' Cargo.toml | head -1 | cut -d '"' -f2)
        VERSION=${GITHUB_REF#refs/tags/}
        echo "binary_name=$BINARY_NAME" >> $GITHUB_OUTPUT
        echo "version=$VERSION" >> $GITHUB_OUTPUT
        echo "archive_name=$BINARY_NAME-$VERSION-linux-x86_64.tar.gz" >> $GITHUB_OUTPUT
        
    - name: Create archive
      run: |
        mkdir -p release
        cp target/release/${{ steps.get_info.outputs.binary_name }} release/
        [ -f README.md ] && cp README.md release/ || true
        [ -f LICENSE ] && cp LICENSE release/ || true
        [ -f CHANGELOG.md ] && cp CHANGELOG.md release/ || true
        tar -czf ${{ steps.get_info.outputs.archive_name }} -C release .
        
    - name: Create Release
      uses: softprops/action-gh-release@v2
      with:
        files: ${{ steps.get_info.outputs.archive_name }}
        body_path: CHANGELOG.md
        draft: false
        prerelease: false
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}