71 lines
2.3 KiB
Markdown
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.
|