api-id-assigner/.forgejo/workflows/rust.yaml

44 lines
1.5 KiB
YAML

name: Build and upload a binary on tag push
on:
push:
tags:
- 'v*'
jobs:
build-release:
runs-on: docker
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup toolchian
uses: https://github.com/dtolnay/rust-toolchain@stable
- name: Build
run: |
export BIN_NAME="api-id-assigner"
export VER=$(awk -F "=" '/version/ {print $2}' api/axum/Cargo.toml | grep -o -e '[0-9]*\.[0-9]*\.[0-9]*')
cargo build --release
mkdir release
cp target/release/$BIN_NAME release/$BIN_NAME-$VER
chmod +x release/$BIN_NAME-$VER
xz --keep -9 release/$BIN_NAME-$VER
shasum -a 256 release/$BIN_NAME-$VER > release/$BIN_NAME-$VER.sha256
shasum -a 256 release/$BIN_NAME-$VER.xz > release/$BIN_NAME-$VER.xz.sha256
- name: Deb build
run: |
export BIN_NAME="api-id-assigner"
export VER=$(awk -F "=" '/version/ {print $2}' api/axum/Cargo.toml | grep -o -e '[0-9]*\.[0-9]*\.[0-9]*')
cargo install cargo-deb
cargo deb -p $BIN_NAME
cp target/debian/${BIN_NAME}_${VER}-1_amd64.deb release/${BIN_NAME}_${VER}-1_amd64.deb
shasum -a 256 release/${BIN_NAME}_${VER}-1_amd64.deb > release/${BIN_NAME}_${VER}-1_amd64.deb.sha256
- name: Upload release
uses: actions/forgejo-release@v1
with:
direction: upload
url: https://git.technoduck.me
token: ${{secrets.app_token}}
release-dir: release
verbose: true