git-igitt 0.1.21

Interactive Git terminal application to browse and visualize Git history graphs arranged for your branching model
Documentation
name: Release

on:
  push:
    branches: ["**"]
  release:
    types: [ created ]

permissions:
  contents: write

env:
  CARGO_TERM_COLOR: always
  REPO: git-igitt

jobs:
  release:
    name: Release for ${{ matrix.target }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            bin_extension: ""
            target: "x86_64-unknown-linux-gnu"
            os_name: "linux-amd64"
          - os: ubuntu-latest
            bin_extension: ""
            target: "x86_64-unknown-linux-musl"
            os_name: "linux-amd64-musl"
            requires_musl: "true"
          - os: windows-latest
            bin_extension: ".exe"
            target: "x86_64-pc-windows-msvc"
            os_name: "windows-amd64"
          - os: macos-latest
            bin_extension: ""
            target: "x86_64-apple-darwin"
            os_name: "macos-amd64"

    steps:
      - uses: actions/checkout@v5
      - name: Get tag
        run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
        shell: bash

      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true

      - name: Install target
        run: |
          rustup target add ${{ matrix.target }}
      - name: Install musl
        if: ${{ matrix.requires_musl }}
        run: |
          sudo apt-get -y install musl musl-tools

      - name: Build
        run: |
          cargo build --locked --target ${{ matrix.target }} --release
      - name: Compress
        run: |
          cp -f target/${{ matrix.target }}/release/$REPO${{ matrix.bin_extension }} .
          tar -czf release.tar.gz $REPO${{ matrix.bin_extension }}
        shell: bash
      - name: Archive artifacts
        uses: actions/upload-artifact@v5
        with:
          name: build-${{ matrix.os_name }}
          path: |
            release.tar.gz
      - name: Upload binaries to release
        if: success() && github.event_name == 'release' && github.event.action == 'created'
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: release.tar.gz
          asset_name: ${{ env.REPO }}-${{ env.RELEASE_VERSION }}-${{ matrix.os_name }}.tar.gz
          tag: ${{ github.ref }}