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
- Runs from Gitea Actions on a two-day schedule or manually.
- Queries the GitHub Releases API for the latest AyuGram release.
- Uses the official
AyuGramDesktop-<version>-full.tar.gzrelease archive. - Resolves the exact
tdlibsubmodule commit from the upstream release tag. - Builds on
archlinux:latestwithmakepkg. - Uses packaged Arch libraries where appropriate.
- Runs
namcap, package metadata checks, ELF dependency checks and a smoke test. - Creates
noko-arch.db.tar.zstwithrepo-add. - Uploads the package and repository database files to Nexspence Raw.
- Records the published version in
.current-version.
Required Gitea secrets
NEXSPENCE_URL- for examplehttps://repos.noko.tanNEXSPENCE_TOKEN- annxs_...API tokenNEXSPENCE_REPOSITORY-noko-arch
Optional:
TDESKTOP_API_IDTDESKTOP_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
[noko-arch]
Server = https://repos.noko.tan/repository/noko-arch/$arch
SigLevel = Never
Then:
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.