first commit

This commit is contained in:
2026-10-26 22:50:57 +03:00
commit 4bdaa9048f
+79
View File
@@ -0,0 +1,79 @@
# 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.