Files
2026-09-06 13:36:55 +03:00

71 lines
2.3 KiB
Markdown

# AyuGram Arch Builder for Gitea Actions
This repository automatically checks `AyuGram/AyuGramDesktop` GitHub releases,
builds the latest release as a native Arch Linux package, validates the package,
creates an Arch repository database, and publishes the package/database to a
Nexspence Raw Hosted repository.
## What it does
1. Runs from Gitea Actions on a two-day schedule or manually.
2. Queries the GitHub Releases API for the latest AyuGram release.
3. Uses the official `AyuGramDesktop-<version>-full.tar.gz` release archive.
4. Resolves the exact `tdlib` submodule commit from the upstream release tag.
5. Builds on `archlinux:latest` with `makepkg`.
6. Uses packaged Arch libraries where appropriate.
7. Runs `namcap`, package metadata checks, ELF dependency checks and a smoke test.
8. Creates `noko-arch.db.tar.zst` with `repo-add`.
9. Uploads the package and repository database files to Nexspence Raw.
10. Records the published version in `.current-version`.
## Required Gitea secrets
- `NEXSPENCE_URL` - for example `https://repos.noko.tan`
- `NEXSPENCE_TOKEN` - an `nxs_...` API token
- `NEXSPENCE_REPOSITORY` - `noko-arch`
Optional:
- `TDESKTOP_API_ID`
- `TDESKTOP_API_HASH`
The default API credentials are the same public build credentials used by
several current Linux packaging recipes. For a production/private distribution,
set your own Telegram API credentials as Gitea secrets.
## Arch client
```ini
[noko-arch]
Server = https://repos.noko.tan/repository/noko-arch/$arch
SigLevel = Never
```
Then:
```bash
sudo pacman -Sy
sudo pacman -S ayugram-desktop
```
The repository is intentionally unsigned in this first version. Add repository
signing only after the upload flow is confirmed working.
## Runner
The workflow uses a job-level Arch container, so the Gitea runner needs Docker
execution and a label such as `ubuntu-latest`. Gitea recommends Docker-backed
runner jobs for isolation.
## Important: `libtg_owt`
`libtg_owt` is not necessarily present in the official Arch repositories. The
workflow therefore expects your runner environment (or an internal Arch repo)
to provide it. If `pacman -S libtg_owt` fails, build/install the AUR
`libtg_owt` package on the runner or expose it through your own `noko-arch`
repository before running this workflow.
Do not replace `libtg_owt` with a random prebuilt binary: it is part of the
native build toolchain.