Переезд с ghcr.io на встроенный Container Registry Gitea
Build & Push Image / Build and push to Gitea Registry (push) Failing after 14s
Build & Push Image / Build and push Caddy (Cloudflare DNS) image (push) Failing after 13s
CI / fmt + clippy + test (push) Has been cancelled

CI (build/deploy) и рантайм самого бэкенда (провижининг новых нод через
NodeService::provision_node_via_ssh — раньше читал GHCR_TOKEN, теперь
GITEA_REGISTRY_TOKEN) теперь используют gitea.netrunner-vpn.com вместо
ghcr.io. .github/workflows остались нетронутыми — та копия для настоящего
GitHub CI, там ghcr.io уместен и дальше (свой GITHUB_TOKEN, не наш секрет).
This commit is contained in:
2026-07-10 20:44:03 +07:00
parent 51788f73ee
commit c617c05233
7 changed files with 54 additions and 39 deletions
+17 -15
View File
@@ -1,9 +1,13 @@
# Копия .github/workflows/build.yml для Gitea Actions. Отличие от оригинала:
# логин на ghcr.io использует secrets.GHCR_TOKEN (настоящий GitHub PAT с
# правами write:packages), а не secrets.GITHUB_TOKEN — автотокен Gitea валиден
# только для самого Gitea (API/пакеты этого инстанса), на ghcr.io им не
# залогиниться. Секрет GHCR_TOKEN нужно завести отдельно в настройках этого
# репозитория/организации в Gitea.
# реестр — встроенный Container Registry самой Gitea (gitea.netrunner-vpn.com),
# не ghcr.io — секрет secrets.GITHUB_TOKEN там валиден только на самом
# GitHub. Логин — токеном Gitea с правом write:package
# (secrets.GITEA_REGISTRY_TOKEN), один и тот же токен используется во всех
# репозиториях, где собираются образы (netrunner-backend/netrunner-landing/
# netrunner-proxy) — пакеты в Gitea принадлежат аккаунту, не конкретному
# репозиторию, заводить по секрету на каждый репозиторий не нужно, но
# значение нужно продублировать в Settings каждого из них (Gitea не даёт
# организационных секретов на уровне всего аккаунта для personal-репозиториев).
name: Build & Push Image
on:
@@ -13,12 +17,12 @@ on:
workflow_dispatch:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository_owner }}/netrunner-control-plane
REGISTRY: gitea.netrunner-vpn.com
IMAGE_NAME: nineap/netrunner-control-plane
jobs:
build:
name: Build and push to GHCR
name: Build and push to Gitea Registry
runs-on: ubuntu-24.04
permissions:
contents: read
@@ -30,12 +34,12 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
- name: Log in to Gitea Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GHCR_TOKEN }}
password: ${{ secrets.GITEA_REGISTRY_TOKEN }}
- name: Extract metadata (tags, labels)
id: meta
@@ -76,12 +80,12 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
- name: Log in to Gitea Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GHCR_TOKEN }}
password: ${{ secrets.GITEA_REGISTRY_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
@@ -90,9 +94,7 @@ jobs:
file: ./Dockerfile.caddy
push: true
# Захардкожено, не ${{ github.repository_owner }}: он резолвится в
# "nineAp" (смешанный регистр), Docker такие теги отклоняет — та же
# причина, по которой deploy.yml тоже хардкодит "nineap" для
# основного образа вместо репозиторного контекста.
# "nineAp" (смешанный регистр), Docker такие теги отклоняет.
tags: ${{ env.REGISTRY }}/nineap/netrunner-caddy-cloudflare:latest
cache-from: type=gha,scope=caddy
cache-to: type=gha,mode=max,scope=caddy