Skip to content

chore: initialize project #1

chore: initialize project

chore: initialize project #1

Workflow file for this run

name: 🚀 Release
on:
push:
tags:
- 'v*'
jobs:
tag-check:
name: 🏷️ Tag Check
runs-on: ubuntu-latest
steps:
- name: Check tag
run: echo "${{ github.ref_name }}" | grep -qE '^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9]+(\.[0-9]+)?)?$'
check:
name: 🧐 Pre-release check
runs-on: ubuntu-latest
needs: tag-check
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup toolchain
run: rustup component add clippy rustfmt
- name: Build
run: cargo build --verbose
- name: Test
run: cargo test --verbose
- name: Lint
run: cargo clippy --verbose
- name: Format check
run: cargo fmt -- --check
release:
name: 🆕 New release
runs-on: ubuntu-latest
needs: check
steps:
- name: Create release via GitHub CLI
env:
GITHUB_TOKEN: ${{ secrets.ACTIONS_PERSONAL_ACCESS_TOKEN }}
tag: ${{ github.ref_name }}
run: gh release create "$tag" --repo="$GITHUB_REPOSITORY" --title="${GITHUB_REPOSITORY#*/} v${tag#v}" --generate-notes