# Ratune Arch Builder for Gitea Actions Builds the latest official [Ratune](https://github.com/acmagn/ratune) GitHub Release as a native Arch Linux package (`ratune`), tests it, and publishes it to the Nexspence Raw Hosted repository `noko-arch`. ## Pipeline 1. Runs every two days or via **Actions → Build and Publish Ratune → Run workflow**. 2. Queries GitHub's `releases/latest` API and compares the tag with `.current-version`. 3. Updates `pkgver` in `PKGBUILD` and builds with `makepkg` inside `archlinux:latest`. 4. Runs `cargo test --workspace`, package metadata checks, `namcap`, ELF dependency checks, and `ratune --version`. 5. Creates an Arch repository database with `repo-add`. 6. Uploads the package and database objects to Nexspence using HTTP `PUT`. 7. Records the published tag in `.current-version`. ## Gitea secrets Configure these repository Actions secrets: - `NEXSPENCE_URL` — Nexspence base URL, e.g. `https://repos.noko.tan` - `NEXSPENCE_TOKEN` — Nexspence bearer/API token (`nxs_...` in the current setup) The workflow hardcodes `NEXSPENCE_REPOSITORY=noko-arch` as requested. The publish script also supports the environment variable for manual runs. ## Arch client configuration Add this to `/etc/pacman.conf`: ```ini [noko-arch] Server = https://repos.noko.tan/repository/noko-arch/$arch SigLevel = Never ``` Then install: ```sh sudo pacman -Sy sudo pacman -S ratune ``` The repository is unsigned, matching the current `ayugram-builder` setup. `SigLevel = Never` disables package signature verification for this repository; consider adding package signing once the upload path is confirmed. ## Runtime dependencies The package declares `alsa-lib`, `dbus`, `gcc-libs`, and `glibc`. The application needs ALSA and D-Bus libraries at runtime. `pkgconf`, `rust`, and `base-devel` are build dependencies. ## Local build On an Arch Linux host or inside the supplied Docker image: ```sh sudo pacman -S --needed base-devel git curl jq namcap pacman-contrib \ rust pkgconf alsa-lib dbus zstd ./scripts/check-release.sh ./scripts/build.sh 0.17.0 v0.17.0 ./scripts/test.sh ``` For local manual publishing, set `NEXSPENCE_URL`, `NEXSPENCE_TOKEN`, and `NEXSPENCE_REPOSITORY=noko-arch`, then run `./scripts/publish.sh`. ## Notes - `.current-version` is updated only after successful publication. - The workflow uses `actions/checkout@v4`; ensure your Gitea Actions runner can resolve that action (or replace it with your existing internal checkout action). - The package is built from the official release tag's source archive, not from an arbitrary branch head. - `sha256sums=('SKIP')` is intentional for this first dynamic-release scaffold; for stricter supply-chain verification, add release-specific checksum verification before publishing.