Skip to content

on.push

on.push #20

Workflow file for this run

name: "Release"
on:
push:
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-latest,
binary-extension: "",
package-extension: ".tar.gz",
}
- {
target: x86_64-apple-darwin,
os: macos-latest,
binary-extension: "",
package-extension: ".tar.gz",
}
- {
target: x86_64-pc-windows-msvc,
os: windows-latest,
binary-extension: ".exe",
package-extension: ".zip",
}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Build release
run: cargo build --locked --verbose --release --target=${{ matrix.job.target }}
- name: Create tarball
shell: bash
id: create_tarball
run: |
PKG_DIR="archive"
mkdir -p "${PKG_DIR}"
cp {README.md,LICENSE} "${PKG_DIR}"
cp "target/${{ matrix.job.target }}/release/omekasy${{ matrix.job.binary-extension }}" "${PKG_DIR}"
PROJECT_VERSION=${GITHUB_REF#refs/tags/v}
TARBALL_PATH="${PROJECT_NAME}-v${PROJECT_VERSION}-${{ matrix.job.target }}${{ matrix.job.package-extension }}"
echo "TARBALL_PATH=${TARBALL_PATH}" >> "${GITHUB_OUTPUT}"
if [ "${{ matrix.job.os }}" = "windows-2019" ]; then
7z a "${TARBALL_PATH}" "${PKG_DIR}"
else
tar czf "${TARBALL_PATH}" "${PKG_DIR}"
fi
- name: Publish
if: ${{ contains(github.ref, '/tags/') }}
uses: softprops/action-gh-release@v1
with:
files: ${{ steps.create_tarball.outputs.TARBALL_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 }}