Skip to content

Release v1.2.3

Release v1.2.3 #19

Workflow file for this run

name: 'Release'
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ${{ matrix.job.os }}
env:
PROJECT_NAME: "omekasy"
strategy:
fail-fast: false
matrix:
job:
- { target: x86_64-unknown-linux-gnu, os: ubuntu-20.04 }
- { target: x86_64-apple-darwin, os: macos-latest }
- { target: x86_64-pc-windows-msvc, os: windows-2019 }
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
toolchain: stable
target: ${{ matrix.job.target }}
- name: Get the release version from the tag
shell: bash
id: project_version
run: |
echo "PROJECT_VERSION=${GITHUB_REF#refs/tags/v}" >> "$GITHUB_OUTPUT"
- name: Build release
run: cargo build --locked --verbose --release --target=${{ matrix.job.target }}
- name: Set up path
shell: bash
id: set_bin_path
run: |
EXE_SUFFIX=""
[ "${{ matrix.job.target }}" = "x86_64-pc-windows-msvc" ] && EXE_SUFFIX=".exe"
BIN_PATH="target/${{ matrix.job.target }}/release/omekasy${EXE_SUFFIX}"
echo "BIN_PATH=${BIN_PATH}" >> "$GITHUB_OUTPUT"
- name: Strip binary
shell: bash
run: |
STRIP="strip"
[ "${{ matrix.job.target }}" = "x86_64-pc-windows-msvc" ] && STRIP=""
if [ -n "${STRIP}" ]; then
"${STRIP}" "${{ steps.set_bin_path.outputs.BIN_PATH }}"
fi
- name: Create tarball
shell: bash
id: create_tarball
run: |
PKG_SUFFIX=".tar.gz" ; case "${{ matrix.job.target }}" in *-pc-windows-*) PKG_SUFFIX=".zip" ;; esac;
PKG_BASENAME="${PROJECT_NAME}-v${{ steps.project_version.outputs.PROJECT_VERSION }}-${{ matrix.job.target }}"
PKG_PATH="${PKG_BASENAME}${PKG_SUFFIX}"
echo "PKG_PATH=${PKG_PATH}" >> "${GITHUB_OUTPUT}"
PKG_DIR="archive"
mkdir -p "${PKG_DIR}"
cp {README.md,LICENSE} "$PKG_DIR"
cp "${{ steps.set_bin_path.outputs.BIN_PATH }}" "${PKG_DIR}"
if [ "${{ matrix.job.os }}" = "windows-2019" ]; then
7z a "${PKG_PATH}" "${PKG_DIR}"
else
tar czf "${PKG_PATH}" "${PKG_DIR}"
fi
if [ "$(command -v sha256sum)" ]; then
sha256sum "${PKG_PATH}"
fi
- name: Publish
if: ${{ contains(github.ref, '/tags/') }}
uses: softprops/action-gh-release@v1
with:
files: ${{ steps.create_tarball.outputs.PKG_PATH }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
cargo-publish:
runs-on: ubuntu-20.04
needs: release
steps:
- uses: actions/checkout@v3
- name: Cargo publish
run: |
git config --global user.email "[email protected]"
git config --global user.name "Github Action"
cargo publish --allow-dirty --token ${{ secrets.CRATES_IO_TOKEN }}