1 Commits

Author SHA1 Message Date
Eric Coissac 1f0233d033 refactor: make hwlocality optional and streamline release workflow
Release / create-release (push) Successful in 2m13s
Release / build-linux-x86_64 (push) Successful in 8m14s
Release / build-macos-arm64 (push) Failing after 4m33s
Extracts release creation into a dedicated `create-release` job that outputs a shared `release_id`, allowing downstream build jobs to upload binaries directly and ensuring atomic initialization. Introduces a `numa` feature flag for `obikindex` to make `hwlocality` optional, providing graceful fallbacks like a synthetic UMA node when disabled. Also bumps `obikmer` to 1.1.16.
2026-06-23 08:53:37 +02:00
5 changed files with 6 additions and 14 deletions
+2 -1
View File
@@ -1,8 +1,9 @@
name: CI name: CI
on: on:
pull_request: push:
branches: ['main'] branches: ['main']
pull_request:
jobs: jobs:
build: build:
+1 -6
View File
@@ -11,10 +11,6 @@ jobs:
outputs: outputs:
release_id: ${{ steps.create.outputs.release_id }} release_id: ${{ steps.create.outputs.release_id }}
steps: steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Create Gitea release - name: Create Gitea release
id: create id: create
env: env:
@@ -22,12 +18,11 @@ jobs:
TAG: ${{ github.ref_name }} TAG: ${{ github.ref_name }}
run: | run: |
sudo apt-get update -qq && sudo apt-get install -y -qq jq sudo apt-get update -qq && sudo apt-get install -y -qq jq
body=$(git for-each-ref --format='%(contents)' "refs/tags/$TAG")
release_id=$(curl -s -X POST \ release_id=$(curl -s -X POST \
"${{ github.server_url }}/api/v1/repos/${{ github.repository }}/releases" \ "${{ github.server_url }}/api/v1/repos/${{ github.repository }}/releases" \
-H "Authorization: token $GITEA_TOKEN" \ -H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\",\"body\":$(echo "$body" | jq -Rs .)}" | jq -r '.id') -d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\"}" | jq -r '.id')
echo "release_id=$release_id" >> $GITHUB_OUTPUT echo "release_id=$release_id" >> $GITHUB_OUTPUT
build-linux-x86_64: build-linux-x86_64:
+1 -5
View File
@@ -90,9 +90,5 @@ release: bump-version
@jj git push --change @ @jj git push --change @
@new_version=$$(grep '^version = ' $(CARGO_TOML) | head -n 1 | sed 's/version = "\(.*\)"/\1/'); \ @new_version=$$(grep '^version = ' $(CARGO_TOML) | head -n 1 | sed 's/version = "\(.*\)"/\1/'); \
git_hash=$$(jj log -r @ --no-graph -T 'commit_id'); \ git_hash=$$(jj log -r @ --no-graph -T 'commit_id'); \
commits=$$(jj log -r 'latest(tags())..@' --no-graph -T 'description ++ "\n"' 2>/dev/null || \ git tag "v$$new_version" "$$git_hash" && \
jj log --no-graph -T 'description ++ "\n"' --limit 30); \
notes=$$(printf 'Write concise markdown release notes for obikmer (a Rust kmer genomics tool). Be technical and direct. Base them strictly on these commit messages:\n\n%s' "$$commits" | aichat 2>/dev/null); \
tag_msg="$${notes:-Release v$$new_version}"; \
git tag -a "v$$new_version" -m "$$tag_msg" "$$git_hash" && \
git push origin "v$$new_version" git push origin "v$$new_version"
+1 -1
View File
@@ -1704,7 +1704,7 @@ dependencies = [
[[package]] [[package]]
name = "obikmer" name = "obikmer"
version = "1.1.20" version = "1.1.16"
dependencies = [ dependencies = [
"clap", "clap",
"csv", "csv",
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "obikmer" name = "obikmer"
version = "1.1.20" version = "1.1.16"
edition = "2024" edition = "2024"
[[bin]] [[bin]]