Skip to content

v0.2.1

v0.2.1 #7

name: Release Artifacts
on:
release:
types: [published]
workflow_dispatch:
inputs:
tag:
description: "Release tag to build, for example v0.1.1"
required: true
env:
CARGO_TERM_COLOR: always
permissions:
contents: write
jobs:
linux:
name: Linux x86_64
runs-on: ubuntu-latest
steps:
- name: Resolve tag
id: release
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "tag=${{ inputs.tag }}" >> "$GITHUB_OUTPUT"
else
echo "tag=${{ github.event.release.tag_name }}" >> "$GITHUB_OUTPUT"
fi
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ steps.release.outputs.tag }}
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Build release binary
run: cargo build --release --locked -p runglass
- name: Smoke test release binary
run: |
target/release/runglass --version
target/release/runglass doctor
- name: Package binary
run: |
set -euo pipefail
tag="${{ steps.release.outputs.tag }}"
version="${tag#v}"
target="x86_64-unknown-linux-gnu"
name="runglass-${version}-${target}"
mkdir -p "dist/${name}"
cp target/release/runglass "dist/${name}/"
cp README.md CHANGELOG.md LICENSE "dist/${name}/"
tar -C dist -czf "dist/${name}.tar.gz" "${name}"
sha256sum "dist/${name}.tar.gz" > "dist/${name}.tar.gz.sha256"
- name: Upload release assets
env:
GH_TOKEN: ${{ github.token }}
run: |
tag="${{ steps.release.outputs.tag }}"
gh release upload "${tag}" dist/*.tar.gz dist/*.sha256 --clobber