poll-upstream and build-release shared the poll-and-build concurrency
group, which caused cron-triggered poll runs to be queued or dropped
while a build was in progress. Give each workflow its own group and
set cancel-in-progress: true for the poller since stale polls are
redundant.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Build separate packages for each GPU generation instead of a single
cuda13 package:
- mistralrs-ampere (sm_86, RTX 3060)
- mistralrs-ada (sm_89, RTX 4090)
- mistralrs-blackwell (sm_120, RTX 5090)
All use the same CUDA 13.0 toolkit and features (cuda, cudnn, flash-attn,
nccl), varying only the compute capability target.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Poll upstream main branch HEAD alongside release tags. When a new commit
is detected, build and publish prerelease RPMs to a separate unstable
repo at rpm.lair.cafe/fedora/$releasever/$basearch/unstable/.
RPM versioning uses the Fedora snapshot convention (e.g.
0.8.1-0.1.20260511git1a2b3c4.fc43) so stable releases automatically
supersede any installed prerelease.
- RPM spec: conditional Release field via mistralrs_prerelease define
- poll-upstream.yml: new check-prerelease job fetches main HEAD + Cargo.toml version
- build-prerelease.yml: new workflow for commit-based builds without --locked
- UI: fetch both stable/unstable manifests, show channel badges, add
unstable repo setup instructions to home page
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rename the RPM package from mistralrs-server-<flavour> to
mistralrs-<flavour> and the installed binary from mistralrs-server
to mistralrs, matching the upstream CLI binary name.
Adds Obsoletes/Provides for the old package name so dnf will cleanly
replace it on upgrade.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The RPM file existing on the server is not sufficient — the repo
metadata must also reference it. After checking the file exists,
verify repomd.xml is present and dnf repoquery can find the package
in the index. This catches the case where sync succeeded but
createrepo_c failed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ensures package, publish, and poll-upstream jobs are picked up by
Fedora 43 runners specifically.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add fedora_version to build, package, and publish matrices so the
pipeline can target multiple Fedora releases in parallel. Force the
dist tag via --define to ensure RPMs are stamped correctly regardless
of build host. Update poll-upstream to check all fedora/flavour
combinations before triggering a build.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Poll was firing every minute, dispatching new builds that cancelled
the running one. Restore 15-minute cron interval and add shared
concurrency group across both workflows so new polls queue instead
of re-dispatching.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Gitea API requires refs/heads/main (not just main) and
Content-Type: application/json for the dispatch endpoint.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The automatic GITEA_TOKEN cannot trigger other workflows. Use a
dedicated DISPATCH_TOKEN secret (personal access token with
repository read/write scope) instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The automatic GITEA_TOKEN lacks actions:write by default, causing
a 422 when dispatching the build-release workflow.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
--fail causes curl to exit 22 on HTTP errors before --write-out can
capture the response code, breaking the 200/404 branching logic.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move from /var/www/rpm/mistralrs/fedora-43/x86_64/ to
/var/www/rpm/fedora/43/x86_64/ so the repo can host packages
from multiple projects under a conventional hierarchy.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>