on: push: tags: - 'v*' name: Release jobs: changelog: permissions: contents: write name: Generate Changelog runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Generate changelog uses: orhun/git-cliff-action@v2 id: git-cliff with: args: -vv --latest --strip header - name: Create release uses: softprops/action-gh-release@v1 with: body: ${{ steps.git-cliff.outputs.content }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} publish: permissions: contents: write name: ${{ matrix.name }} (${{ matrix.target }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: target: - x86_64-unknown-linux-gnu - x86_64-unknown-linux-musl - x86_64-apple-darwin - x86_64-unknown-freebsd - x86_64-pc-windows-gnu - aarch64-apple-darwin - aarch64-linux-android - aarch64-unknown-linux-musl - armv7-unknown-linux-gnueabihf include: - os: ubuntu-latest name: Linux GNU x86_64 target: x86_64-unknown-linux-gnu artifact_name: target/x86_64-unknown-linux-gnu/release/pfetch release_name: pfetch-linux-gnu-x86_64.tar.gz cross: false strip: true - os: ubuntu-latest name: Linux musl x86_64 target: x86_64-unknown-linux-musl artifact_name: target/x86_64-unknown-linux-musl/release/pfetch release_name: pfetch-linux-musl-x86_64.tar.gz cross: true strip: true - os: macos-latest name: macOS x86_64 target: x86_64-apple-darwin artifact_name: target/x86_64-apple-darwin/release/pfetch release_name: pfetch-macos-x86_64.tar.gz cross: false strip: true - os: macos-latest name: macOS aarch64 target: aarch64-apple-darwin artifact_name: target/aarch64-apple-darwin/release/pfetch release_name: pfetch-macos-aarch64.tar.gz cross: false strip: true - os: ubuntu-latest name: freeBSD x86_64 target: x86_64-unknown-freebsd artifact_name: target/x86_64-unknown-freebsd/release/pfetch release_name: pfetch-freebsd-x86_64.tar.gz cross: true strip: true - os: ubuntu-latest name: Android target: aarch64-linux-android artifact_name: target/aarch64-linux-android/release/pfetch release_name: pfetch-android-aarch64.tar.gz cross: true strip: true - os: ubuntu-latest name: Linux musl aarch64 target: aarch64-unknown-linux-musl artifact_name: target/aarch64-unknown-linux-musl/release/pfetch release_name: pfetch-linux-musl-aarch64.tar.gz cross: true strip: true - os: ubuntu-latest name: Linux ARMv7 target: armv7-unknown-linux-gnueabihf artifact_name: target/armv7-unknown-linux-gnueabihf/release/pfetch release_name: pfetch-linux-gnueabihf-armv7.tar.gz cross: true strip: true - os: windows-latest name: Windows x86_64 target: x86_64-pc-windows-gnu artifact_name: target/x86_64-pc-windows-gnu/release/pfetch.exe release_name: pfetch-windows-x86_64.exe cross: false strip: true steps: - name: Checkout uses: actions/checkout@v2 - name: Bootstrap uses: actions-rs/toolchain@v1 with: toolchain: stable target: ${{ matrix.target }} - name: Build uses: actions-rs/cargo@v1 with: command: build args: --target=${{ matrix.target }} --release use-cross: ${{ matrix.cross }} - name: Compress binaries run: if [ "$RUNNER_OS" != "Windows" ]; then tar cfzv ${{ matrix.release_name }} -C "$(dirname ${{ matrix.artifact_name}})" "$(basename ${{ matrix.artifact_name }})"; else mv ${{ matrix.artifact_name }} ${{ matrix.release_name }}; fi shell: bash - name: Upload binaries uses: softprops/action-gh-release@v1 with: files: ${{ matrix.release_name }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}