Skip to content

feat: update

feat: update #74

Workflow file for this run

name: release
on:
push:
branches:
- main
- next
pull_request:
workflow_dispatch:
env:
CARGO_INCREMENTAL: 0
jobs:
release:
name: ${{ matrix.target }}
permissions:
contents: write
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
release-target: linux-amd64
deb: true
- os: ubuntu-latest
target: arm-unknown-linux-musleabihf
release-target: linux-arm
- os: ubuntu-latest
target: armv7-unknown-linux-musleabihf
release-target: linux-arm7
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
release-target: linux-arm64
deb: true
- os: macos-11
target: x86_64-apple-darwin
release-target: darwin-amd64
- os: macos-11
target: aarch64-apple-darwin
release-target: darwin-arm64
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth:
0
# - name: Semantic Release
# id: semantic
# uses: cycjimmy/semantic-release-action@v3
# with:
# semantic_version: 16
# # you can set branches for semantic-release above v16.
# branches: |
# [
# '+([0-9])?(.{+([0-9]),x}).x',
# 'main',
# 'next',
# 'next-major',
# {
# name: 'beta',
# prerelease: true
# },
# {
# name: 'alpha',
# prerelease: true
# }
# ]
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
#
# - name: Releasing
# if: steps.semantic.outputs.new_release_published == 'true'
# run: |
# echo ${{ steps.semantic.outputs.new_release_version }}
#
# - name: Install semantic-release-cargo
# if: steps.semantic.outputs.new-release-published == 'true'
# uses: taiki-e/install-action@v1
# with:
# tool: semantic-release-cargo@2
#
# - name: Prepare semantic-release for Rust
# if: steps.semantic.outputs.new-release-published == 'true'
# run: semantic-release-cargo prepare ${{ steps.semantic.outputs.new-release-version }}
- name: Get version
id: get_version
run: sed -En 's/^version = "(.*)"/value=\1/p' Cargo.toml >> $GITHUB_OUTPUT
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Setup cache
uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.target }}
- name: Build binary
uses: actions-rs/cargo@v1
with:
command: build
args: --release --locked --target=${{ matrix.target }} --color=always --verbose
use-cross: ${{ runner.os == 'Linux' }}
- name: Install cargo-deb
if: ${{ matrix.deb == true }}
uses: actions-rs/[email protected]
with:
crate: cargo-deb
- name: Build deb
if: ${{ matrix.deb == true }}
uses: actions-rs/cargo@v1
with:
command: deb
args: --no-build --no-strip --output=. --target=${{ matrix.target }}
- name: Package (*nix)
if: runner.os != 'Windows'
run: >
tar -cv
LICENSE README.md
man/
-C target/${{ matrix.target }}/release/ toolkit
| gzip --best
> 'toolkit-${{ steps.get_version.outputs.value }}-${{ matrix.release-target }}.tar.gz'
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.release-target }}
path: |
*.deb
*.tar.gz
*.zip
- name: Create release
if: ${{ github.ref == 'refs/heads/main' && startsWith(github.event.head_commit.message, 'chore(release)') }}
uses: softprops/action-gh-release@v1
with:
draft: true
files: |
*.deb
*.tar.gz
*.zip
name: v${{ steps.get_version.outputs.value }}
tag_name: v${{ steps.get_version.outputs.value }}