name: release_cli
run-name: release cli
on:
push:
tags:
- "v*"
jobs:
check_version:
runs-on: ubuntu-latest
steps:
- name: Check if tag is a valid version
run: |
if [[ "${{ github.ref_name }}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
exit 0
fi
exit 1
cargo_test:
runs-on: ubuntu-latest
steps:
- name: Check out main branch
uses: actions/checkout@v3
with:
ref: main
- uses: actions-rs/cargo@v1
with:
command: test
release_cli:
runs-on: ubuntu-latest
steps:
- name: Check out main branch
uses: actions/checkout@v3
with:
ref: main
- name: Install cross for build
uses: actions-rs/cargo@v1
with:
command: install cross --git https://github.com/cross-rs/cross -Zscript
- name: Build
run: make gen-release-bin-on-m1-mac
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref_name }}
release_name: ${{ github.ref_name }}
body: |
Release ${{ github.ref_name }}
draft: true
- name: Upload aarch64-apple-darwin
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./dist/aarch64-apple-darwin-${{ github.ref_name }}.tar.gz
asset_name: aarch64-apple-darwin-${{ github.ref_name }}.tar.gz
asset_content_type: application/gzip
- name: Upload x86_64-pc-windows-gnu
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./dist/x86_64-pc-windows-gnu-${{ github.ref_name }}.tar.gz
asset_name: x86_64-pc-windows-gnu-${{ github.ref_name }}.tar.gz
asset_content_type: application/gzip
- name: Upload x86_64-unknown-linux-musl
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./dist/x86_64-unknown-linux-musl-${{ github.ref_name }}.tar.gz
asset_name: x86_64-unknown-linux-musl-${{ github.ref_name }}.tar.gz
asset_content_type: application/gzip
- name: Publish to crates.io
uses: actions-rs/cargo@v1
with:
command: publish
args: --token ${{ secrets.CRATES_IO_TOKEN }}