ci: publish frontend images to Nexus #21
Frontend security / security (push) Successful in 9s
Frontend verify / verify (push) Successful in 3m57s
Conventional commits / commits (pull_request) Failing after 19s
Frontend security / security (pull_request) Successful in 32s
Frontend verify / verify (pull_request) Successful in 3m54s

This commit is contained in:
2026-09-17 20:41:12 +03:00
parent 3f19b3643f
commit 999b8590ec
2 changed files with 12 additions and 9 deletions
+5 -5
View File
@@ -12,7 +12,7 @@ jobs:
publish: publish:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
IMAGE: git.personal.ksv741.ru/wealthledger/frontend IMAGE: nexus.ksv741.keenetic.pro/wealthledger/frontend
RELEASE_TAG: ${{ gitea.ref_name }} RELEASE_TAG: ${{ gitea.ref_name }}
REVISION: ${{ gitea.sha }} REVISION: ${{ gitea.sha }}
DOCKER_CONFIG: ${{ runner.temp }}/wealthledger-frontend-docker DOCKER_CONFIG: ${{ runner.temp }}/wealthledger-frontend-docker
@@ -33,14 +33,14 @@ jobs:
- run: npm run verify - run: npm run verify
env: env:
KNIP_DISABLE_RAW_TRANSFER: '1' KNIP_DISABLE_RAW_TRANSFER: '1'
- name: Login with dedicated package writer - name: Login with dedicated Nexus writer
env: env:
REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} REGISTRY_USERNAME: ${{ secrets.NEXUS_USERNAME }}
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} REGISTRY_TOKEN: ${{ secrets.NEXUS_PASSWORD }}
run: | run: |
test -n "$REGISTRY_USERNAME" && test -n "$REGISTRY_TOKEN" test -n "$REGISTRY_USERNAME" && test -n "$REGISTRY_TOKEN"
install -d -m 700 "$DOCKER_CONFIG" install -d -m 700 "$DOCKER_CONFIG"
printf '%s' "$REGISTRY_TOKEN" | docker login git.personal.ksv741.ru --username "$REGISTRY_USERNAME" --password-stdin printf '%s' "$REGISTRY_TOKEN" | docker login nexus.ksv741.keenetic.pro --username "$REGISTRY_USERNAME" --password-stdin
- name: Publish immutable release tag - name: Publish immutable release tag
run: | run: |
VERSION="${RELEASE_TAG#v}" VERSION="${RELEASE_TAG#v}"
+7 -4
View File
@@ -37,10 +37,13 @@ docker build --target production -t wealthledger-frontend:production .
Gitea `image.yml` запускается на защищённом release tag `vX.Y.Z`, проверяет Gitea `image.yml` запускается на защищённом release tag `vX.Y.Z`, проверяет
package/lock version и canonical gates. Runner `ubuntu-latest` должен иметь package/lock version и canonical gates. Runner `ubuntu-latest` должен иметь
Docker/buildx. Dedicated package writer задаётся Actions secrets Docker/buildx. Образы хранятся в Nexus:
`REGISTRY_USERNAME`/`REGISTRY_TOKEN`; server использует отдельную read-only `nexus.ksv741.keenetic.pro/wealthledger/frontend`. Dedicated Nexus writer
identity. Публикуются semver tags, без `latest`; существующие задаётся Actions secrets `NEXUS_USERNAME`/`NEXUS_PASSWORD`; server использует
release tags не перезаписываются. Production выбирает опубликованный version tag. отдельную read-only identity. Docker endpoint и token realm должны использовать
HTTPS; в `docker-hosted` включается запрет redeploy. Прежние Gitea secrets
сохраняются на время перехода и не передаются в Nexus.
Публикуются semver tags, без `latest`; существующие release tags не перезаписываются. Production выбирает опубликованный version tag.
Compose topology принадлежит workspace, эксплуатационная последовательность — Compose topology принадлежит workspace, эксплуатационная последовательность —
[документация](https://git.personal.ksv741.ru/WealthLedger/docs), [документация](https://git.personal.ksv741.ru/WealthLedger/docs),