added ci
This commit is contained in:
1 parent
7f60661eef
commit
25fa51c76d
12 files changed
+350
-3
No files matched your search
@@ -0,0 +1,17 @@
|
||||
# Проверка изменения CI
|
||||
|
||||
2026-10-20. Изменяется только CI, упаковка Docker и документация; Rust source
|
||||
и версия0.8.0 не менялись. Предыдущие293 теста относятся к этому Rust source.
|
||||
|
||||
Локально успешно:
|
||||
|
||||
- actionlint1.7.7: `.github/workflows/ci.yml` без ошибок;
|
||||
- bash -n для всех трёх CI shell scripts;
|
||||
- Python compile и проверка генерации default-branch/version/SHA tags;
|
||||
- отклонение чужой ветки, несовпадающей версии, URL вместо hostname,
|
||||
некорректного image path и отсутствующего token;
|
||||
- SHA-256 bundled reference archive совпадает с ожидаемым.
|
||||
|
||||
Docker daemon отсутствует; GitHub Actions и реальный push в Gitea здесь
|
||||
не запускались. Результат следует проверить первым workflow run после
|
||||
добавления репозитория, variables и secrets по GITHUB-ACTIONS.md.
|
||||
@@ -0,0 +1,66 @@
|
||||
# GitHub Actions → private Gitea Registry
|
||||
|
||||
Workflow: `.github/workflows/ci.yml`. Push, pull request и ручной запуск выполняют
|
||||
проверки; публикация разрешена только для основной ветки репозитория и тегов
|
||||
`v<версия Cargo.toml>`. PR, включая PR из forks, не получает registry credentials.
|
||||
|
||||
## Настройка GitHub
|
||||
|
||||
Settings → Secrets and variables → Actions:
|
||||
|
||||
| Тип | Имя | Значение |
|
||||
|---|---|---|
|
||||
| Variable | `GITEA_REGISTRY` | `gitea.example.org` или `gitea.example.org:5000`, без `https://` и пути |
|
||||
| Variable | `GITEA_IMAGE` | `owner/rust-xmpp`, lowercase, без registry и тега |
|
||||
| Secret | `GITEA_REGISTRY_USERNAME` | Имя пользователя Gitea с правом публикации пакетов owner |
|
||||
| Secret | `GITEA_REGISTRY_TOKEN` | Personal access token с правом записи packages |
|
||||
|
||||
Создайте private owner/organization и проверьте права чтения пакета в Gitea:
|
||||
аутентифицированный push сам по себе не меняет публичность owner/package.
|
||||
Registry должен быть доступен GitHub-hosted runner по HTTPS с доверенным CA.
|
||||
Для registry только в LAN потребуется runner с доступом к этой сети; настройки
|
||||
runs-on для image job можно заменить на labels доверенного self-hosted runner.
|
||||
Не запускайте PR-код на привилегированном self-hosted runner без изоляции.
|
||||
|
||||
## Проверки и результат
|
||||
|
||||
Job `verify` на Ubuntu24.04 ставит Rust из `rust-toolchain.toml`, Python3.12,
|
||||
Lua5.4, OpenSSL/ICU и собирает оригинальную bundled Prosody cafd74b9c5ea.
|
||||
MinIO собирается из unmodified upstream RELEASE.2025-04-22T22-12-26Z,
|
||||
Go1.24.3, с проверкой SHA-256 исходного архива. Sandbox adapter не применяется.
|
||||
|
||||
`scripts/ci/verify-all.sh` запускает:
|
||||
|
||||
- fmt, все обычные Rust tests, Clippy и release build;
|
||||
- все сетевые проверки из verify-local.sh, native module/storage и federation;
|
||||
- обе нагрузки500TLS, в том числе MUC+SM SIGKILL/resume;
|
||||
- оставшиеся ignored tests: AF_UNIX admin socket и archive>128MiB;
|
||||
- реальные10GiB PUT/GET через MinIO и через local HTTPS backend, последовательно.
|
||||
|
||||
Таким образом отсутствие native reference или MinIO является ошибкой, а не skip.
|
||||
Нужно не менее20GiB свободного диска перед проверками. На одноразовом hosted runner
|
||||
удаляются неиспользуемые Android/.NET/GHC SDK; Go caches очищаются после сборки MinIO.
|
||||
Тесты могут занимать десятки минут. Timeout verify job —90минут.
|
||||
|
||||
Artifact `rust-xmpp-linux-amd64`: проверенный release executable и SHA256SUMS.
|
||||
Artifact `test-results`: полный лог и JSON-отчёты, также при ошибке теста.
|
||||
Job `image` скачивает именно этот executable, проверяет checksum и собирает
|
||||
Docker target `ci-runtime`. В образе выполняются `rust-xmpp --version` и
|
||||
`prosodyctl --version`, затем извлечённый executable сравнивается побайтно с artifact.
|
||||
Image smoke проходит и на PR. Только после успеха выполняются login/push.
|
||||
|
||||
Теги:
|
||||
|
||||
- `sha-<полный40символьныйcommit>` — каждый публикуемый commit;
|
||||
- `latest` — только основная ветка;
|
||||
- `v0.8.0` — пример version tag; он должен совпадать с Cargo.toml.
|
||||
|
||||
Version tag не меняет latest; prerelease также не перезаписывает latest.
|
||||
Собирается Linux amd64, не multiarch. Локальный `docker build .` по-прежнему
|
||||
собирает source target `runtime`; CI target использует уже проверенный binary.
|
||||
|
||||
Workflow добавлен и проверен локально как конфигурация. Реальный GitHub-run,
|
||||
Docker daemon и push в ваш Gitea здесь не выполнялись; для этого нужны репозиторий
|
||||
и перечисленные настройки. CI намеренно останавливает публикацию при любой ошибке.
|
||||
|
||||
Документация registry: https://docs.gitea.com/usage/packages/container/
|
||||
@@ -1,8 +1,15 @@
|
||||
9c4e46e42c549436c503a4cd70f90efd8f7754ce8c2103a6d1352cd34174aac0 .github/workflows/ci.yml
|
||||
7136ea911bb6b6d352f703f80efeebde921028ea9dc39cd0d2cd55ea465f8c37 examples/config.json
|
||||
8a65739eb5c24f10b9f2c509f0bd050fb1115706e6a41fdf804b9e0e44f583fd examples/config.toml
|
||||
ca86274bcf4dc5daebbf69c9f003854afca92954719aff068f810e0a3d615dea examples/config.yaml
|
||||
bbc2591581d382fef5fb918a480e6c338c7e3e3f2025df5509f51708534631e7 examples/converse-origin.fragment.yaml
|
||||
66ea9e2b58f6a39b70911b9981cae5e99625483af7a41168e24923464de8ae56 examples/reverse-proxy.fragment.yaml
|
||||
c08bd5923906f4d2163a258c8b68dbef39ea6a3e07032f67e5c12d3d9ca81c5e scripts/ci/image-tags.py
|
||||
8820d262f8018a822b27eb9e5f0d3b9ca0c1272001164ca8a59fcd13911a5426 scripts/ci/prepare-minio.sh
|
||||
5bcd646c6c9159bbdce3a4eadce4d80d6c7422748e47c6ad04e5769efb4f2920 scripts/ci/prepare-reference.sh
|
||||
cb44f2692aefd618872153aed2658a7ab5c1a420802592e3240553b1f8da5ea5 scripts/ci/vendor/README.md
|
||||
1e558d3d2211ea0228596aced2b71306503190c454ec4cb44f172045b3513c34 scripts/ci/vendor/prosody-cafd74b9c5ea.tar.gz
|
||||
7ae11639143308ed4acd30ef6f99f55c7575893e5f6dce819d1f9d7da00cc29c scripts/ci/verify-all.sh
|
||||
16e476e50c5802efcbb7d1aa68141c183c60f5ab17037d697dce720c209141f4 scripts/docker-entrypoint.sh
|
||||
6fcb8a4977fee840d826951b0c30a3f2477c55d00860c79e99f635ca6e215e2b scripts/filter-android-pep-log.py
|
||||
a83cfdb6d910af1add9a14df7b0bd43fb0e2a23342f1a1eec831d47c659bba6f scripts/integration_http.py
|
||||
|
||||
Reference in new issue
Block a user