mirror of
https://github.com/TECHNOFAB11/tmux-copyrat.git
synced 2025-12-12 16:10:07 +01:00
163 lines
5.2 KiB
YAML
163 lines
5.2 KiB
YAML
name: Release
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
jobs:
|
|
prepare-artifacts:
|
|
name: Prepare release artifacts
|
|
# if: github.ref == 'refs/heads/main'
|
|
runs-on: '${{ matrix.os }}'
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: macos-latest
|
|
target: aarch64-apple-darwin
|
|
rust: stable
|
|
suffix: ''
|
|
archive_ext: zip
|
|
- os: macos-latest
|
|
target: x86_64-apple-darwin
|
|
rust: stable
|
|
suffix: ''
|
|
archive_ext: zip
|
|
- os: ubuntu-latest
|
|
target: x86_64-unknown-linux-gnu
|
|
rust: stable
|
|
suffix: ''
|
|
archive_ext: tar.xz
|
|
# - os: windows-latest
|
|
# target: x86_64-pc-windows-msvc
|
|
# rust: stable
|
|
# suffix: .exe
|
|
# archive_ext: zip
|
|
steps:
|
|
- name: Rust install
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ matrix.rust }}
|
|
components: rustfmt, clippy
|
|
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Cache crates from crates.io
|
|
uses: actions/cache@v3
|
|
continue-on-error: false
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
target/
|
|
key: '${{ runner.os }}-${{ matrix.target }}-cargo-${{ matrix.rust }}-hash-${{ hashFiles(''**/Cargo.lock'') }}'
|
|
|
|
- name: Build Release
|
|
run: cargo build --release
|
|
|
|
- name: Compress to zip (macOS)
|
|
if: ${{ matrix.os == 'macos-latest' }}
|
|
run:
|
|
zip -A ${{ github.event.repository.name }}-${{ matrix.target }}.${{ matrix.archive_ext }} target/release/${{ github.event.repository.name }}
|
|
|
|
- name: Compress to zip (Windows)
|
|
if: ${{ matrix.os == 'windows-latest' }}
|
|
run:
|
|
Compress-Archive target/release/${{ github.event.repository.name }}${{ matrix.suffix }} ${{ github.event.repository.name }}-${{ matrix.target }}.${{ matrix.archive_ext }}
|
|
|
|
- name: Compress to tar.xz (Linux)
|
|
if: ${{ matrix.os == 'ubuntu-latest' }}
|
|
run:
|
|
tar Jcf ${{ github.event.repository.name }}-${{ matrix.target }}.${{ matrix.archive_ext }} target/release/${{ github.event.repository.name }}
|
|
|
|
- name: List files
|
|
run: |
|
|
ls -alF .
|
|
ls -alF target/release/
|
|
shell: bash
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ github.event.repository.name }}-${{ matrix.target }}.${{ matrix.archive_ext }}
|
|
path: ${{ github.event.repository.name }}-${{ matrix.target }}.${{ matrix.archive_ext }}
|
|
|
|
release:
|
|
name: Create a GitHub Release
|
|
# if: github.ref == 'refs/heads/main'
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
needs:
|
|
- prepare-artifacts
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
# convco needs all history to create the changelog
|
|
fetch-depth: 0
|
|
|
|
- name: Extract version
|
|
id: extract-version
|
|
run: |
|
|
printf "::set-output name=%s::%s\n" tag-name "${GITHUB_REF#refs/tags/}"
|
|
|
|
- name: Download convco
|
|
run: |
|
|
git show-ref
|
|
curl -sSfLO https://github.com/convco/convco/releases/latest/download/convco-ubuntu.zip
|
|
unzip convco-ubuntu.zip
|
|
chmod +x convco
|
|
|
|
- name: Use convco to create the changelog
|
|
run: |
|
|
./convco changelog --max-versions 1 --include-hidden-sections > CHANGELOG.md
|
|
rm convco convco-ubuntu.zip
|
|
|
|
- uses: actions/download-artifact@v3
|
|
with:
|
|
name: ${{ github.event.repository.name }}-x86_64-unknown-linux-gnu.tar.xz
|
|
- uses: actions/download-artifact@v3
|
|
with:
|
|
name: ${{ github.event.repository.name }}-aarch64-apple-darwin.zip
|
|
- uses: actions/download-artifact@v3
|
|
with:
|
|
name: ${{ github.event.repository.name }}-x86_64-apple-darwin.zip
|
|
# - uses: actions/download-artifact@v3
|
|
# with:
|
|
# name: ${{ github.event.repository.name }}-x86_64-pc-windows-msvc.zip
|
|
|
|
- uses: ncipollo/release-action@v1
|
|
with:
|
|
artifacts: "*.zip,*.tar.xz"
|
|
bodyFile: "CHANGELOG.md"
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
homebrew:
|
|
name: Bump Homebrew formula
|
|
# if: github.ref == 'refs/heads/main'
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- release
|
|
steps:
|
|
- name: Extract version
|
|
id: extract-version
|
|
run: |
|
|
printf "::set-output name=%s::%s\n" tag-name "${GITHUB_REF#refs/tags/}"
|
|
|
|
- uses: mislav/bump-homebrew-formula-action@v2
|
|
if: "!contains(github.ref, '-')" # skip prereleases
|
|
with:
|
|
formula-name: tmux-copyrat
|
|
homebrew-tap: graelo/homebrew-tap
|
|
# base-branch: main
|
|
create-pullrequest: true
|
|
download-url: https://github.com/graelo/tmux-copyrat/archive/refs/tags/${{ steps.extract-version.outputs.tag-name }}.tar.gz
|
|
commit-message: |
|
|
{{formulaName}} {{version}}
|
|
|
|
Created by https://github.com/mislav/bump-homebrew-formula-action
|
|
env:
|
|
COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}
|