80 lines
2.7 KiB
Markdown
80 lines
2.7 KiB
Markdown
# 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.
|