Update tdlib_ping workflow to build TDLib from source, enhancing compatibility and removing dependency on libtdjson-dev. Revise README to clarify build process and artifact structure, including new tarball format for releases and CI artifacts.
Publish mtproxy_checker Docker image / test (push) Successful in 8s
Build tdlib_ping (linux/amd64) / build-tdlib-ping (push) Failing after 6m23s
Publish mtproxy_checker Docker image / build-and-push (push) Successful in 51s

This commit is contained in:
Denozordec
2026-04-11 16:31:50 +07:00
parent 07e35c5c87
commit 76e752fc26
2 changed files with 62 additions and 28 deletions
+11 -6
View File
@@ -8,21 +8,26 @@
## Сборка в CI (Gitea)
В репозитории есть workflow **`.gitea/workflows/tdlib_ping.yaml`** (те же триггеры, что и у публикации Docker: push по **любой ветке** и **любому тегу**, плюс `workflow_dispatch`):
В репозитории есть workflow **`.gitea/workflows/tdlib_ping.yaml`** (те же триггеры, что и у публикации Docker: push по **любой ветке** и **любому тегу**, плюс `workflow_dispatch`). **TDLib собирается из исходников** (тег задаётся в workflow, переменная `TDLIB_REF`), пакета `libtdjson-dev` в apt не требуется.
- при push **тега** собирается **`tdlib_ping-linux-amd64`** и прикрепляется к **релизу** с этим тегом (релиз создаётся автоматически, если его ещё нет);
- при push **ветки** или ручном запуске — только **артефакт** прогона в Actions.
В релиз и в артефакты попадает архив **`tdlib_ping-linux-amd64.tar.gz`**: внутри бинарник **`tdlib_ping-linux-amd64`** и **`libtdjson.so*`** с `rpath=$ORIGIN` (всё в одной папке после распаковки).
Скачайте бинарник со страницы релиза или из вкладки Actions → нужный run → Artifacts. На сервере положите в каталог вроде `/usr/local/bin`, выставьте `chmod +x`, задайте `MTPROXY_TDLIB_HELPER`.
```bash
mkdir -p /opt/tdlib-ping && tar -xzf tdlib_ping-linux-amd64.tar.gz -C /opt/tdlib-ping
chmod +x /opt/tdlib-ping/tdlib_ping-linux-amd64
export MTPROXY_TDLIB_HELPER=/opt/tdlib-ping/tdlib_ping-linux-amd64
```
При push **тега** архив прикрепляется к **релизу** (релиз создаётся при отсутствии); при push **ветки** или `workflow_dispatch` — только артефакт прогона в Actions.
## Сборка
Linux (Debian/Ubuntu), установите заголовки и библиотеку, например:
**Важно:** в **Ubuntu 24.04 (Noble)** пакета **`libtdjson-dev` в официальном apt нет** (ошибка `Unable to locate package`). Используйте **22.04 (Jammy)** / **Debian bookworm** или [сборку TDLib из исходников](https://github.com/tdlib/td#building).
**Важно:** в **Ubuntu 24.04 (Noble)** и на части окружений **Jammy** пакета **`libtdjson-dev` в apt может не быть**. Тогда [соберите TDLib из исходников](https://github.com/tdlib/td#building) или возьмите готовый **`tdlib_ping-linux-amd64.tar.gz`** из CI (см. выше).
```bash
sudo apt-get install -y libtdjson-dev # Jammy/Bookworm и др.; имя может отличаться по дистрибутиву
sudo apt-get install -y libtdjson-dev # если пакет есть в вашем дистрибутиве
export CGO_ENABLED=1
go build -tags=tdlib -o tdlib_ping ./cmd/tdlib_ping
```