zoxide/.github/workflows/release.yml

121 lines
3.3 KiB
YAML
Raw Normal View History

2021-05-01 21:56:12 +00:00
name: release
2021-05-01 21:49:22 +00:00
on:
push:
2023-01-06 20:01:49 +00:00
branches: [main]
2021-10-29 18:31:25 +00:00
pull_request:
workflow_dispatch:
2022-04-25 09:15:46 +00:00
env:
CARGO_INCREMENTAL: 0
2021-05-01 21:49:22 +00:00
jobs:
2021-10-29 18:31:25 +00:00
release:
name: ${{ matrix.target }}
2022-04-23 01:09:14 +00:00
permissions:
contents: write
2021-05-01 21:49:22 +00:00
runs-on: ${{ matrix.os }}
strategy:
2021-10-29 18:31:25 +00:00
fail-fast: false
2021-05-01 21:49:22 +00:00
matrix:
include:
2021-10-29 18:31:25 +00:00
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
2022-06-25 19:07:44 +00:00
deb: true
2021-10-29 18:31:25 +00:00
- os: ubuntu-latest
target: arm-unknown-linux-musleabihf
- os: ubuntu-latest
target: armv7-unknown-linux-musleabihf
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
2022-06-25 19:07:44 +00:00
deb: true
2021-10-29 18:31:25 +00:00
- os: macos-11
target: x86_64-apple-darwin
- os: macos-11
target: aarch64-apple-darwin
- os: windows-latest
target: x86_64-pc-windows-msvc
- os: windows-latest
target: aarch64-pc-windows-msvc
2021-05-01 21:49:22 +00:00
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
2021-10-29 18:31:25 +00:00
fetch-depth: 0
2022-06-25 19:22:42 +00:00
- name: Get version
id: get_version
2022-10-29 15:58:53 +00:00
run: sed -En 's/^version = "(.*)"/value=\1/p' Cargo.toml >> $GITHUB_OUTPUT
2022-06-25 19:22:42 +00:00
2021-05-01 21:49:22 +00:00
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
2021-10-29 18:31:25 +00:00
2022-04-25 09:15:46 +00:00
- name: Setup cache
uses: Swatinem/rust-cache@v1
2022-08-12 07:13:41 +00:00
with:
key: ${{ matrix.target }}
2022-04-25 09:15:46 +00:00
2021-05-01 21:49:22 +00:00
- name: Build binary
uses: actions-rs/cargo@v1
with:
command: build
2021-10-29 18:31:25 +00:00
args: --release --locked --target=${{ matrix.target }} --color=always --verbose
use-cross: ${{ runner.os == 'Linux' }}
2022-06-25 19:07:44 +00:00
- name: Install cargo-deb
if: ${{ matrix.deb == true }}
2022-06-25 19:22:42 +00:00
uses: actions-rs/install@v0.1
2022-06-25 19:07:44 +00:00
with:
2022-06-25 19:22:42 +00:00
crate: cargo-deb
2022-06-25 19:07:44 +00:00
- name: Build deb
if: ${{ matrix.deb == true }}
uses: actions-rs/cargo@v1
with:
command: deb
args: --no-build --no-strip --output=. --target=${{ matrix.target }}
2021-10-29 18:31:25 +00:00
- name: Package (*nix)
if: runner.os != 'Windows'
run: >
tar -cv
CHANGELOG.md LICENSE README.md
man/
-C contrib/ completions/ -C ../
-C target/${{ matrix.target }}/release/ zoxide
2022-06-25 19:22:42 +00:00
| gzip --best
> 'zoxide-${{ steps.get_version.outputs.value }}-${{ matrix.target }}.tar.gz'
2021-10-29 18:31:25 +00:00
- name: Package (Windows)
if: runner.os == 'Windows'
run: >
2022-06-25 19:22:42 +00:00
7z a 'zoxide-${{ steps.get_version.outputs.value }}-${{ matrix.target }}.zip'
2021-10-29 18:31:25 +00:00
CHANGELOG.md LICENSE README.md
./man/
./contrib/completions/
./target/${{ matrix.target }}/release/zoxide.exe
- name: Upload artifact
2021-05-01 21:49:22 +00:00
uses: actions/upload-artifact@v2
with:
2021-10-29 18:31:25 +00:00
name: ${{ matrix.target }}
path: |
2022-06-25 19:07:44 +00:00
*.deb
2021-10-29 18:31:25 +00:00
*.tar.gz
2022-06-25 19:07:44 +00:00
*.zip
2021-10-29 18:31:25 +00:00
2021-05-01 21:49:22 +00:00
- name: Create release
2022-09-02 08:29:24 +00:00
if: ${{ github.ref == 'refs/heads/main' && startsWith(github.event.head_commit.message, 'chore(release)') }}
2021-05-01 21:49:22 +00:00
uses: softprops/action-gh-release@v1
with:
draft: true
2021-10-29 18:31:25 +00:00
files: |
2022-06-25 19:07:44 +00:00
*.deb
2021-10-29 18:31:25 +00:00
*.tar.gz
2022-06-25 19:07:44 +00:00
*.zip
2022-06-25 19:22:42 +00:00
name: ${{ steps.get_version.outputs.value }}
2022-06-25 19:07:44 +00:00
tag_name: ""