first commit
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user