Files
netrunner-proxy/.gitea/workflows/build.yml
T
nineap c835ac983a Gitea Actions: сборка образа + деплой на список прокси-нод
- .gitea/workflows/build.yml — cargo build --release + docker build/push в
  ghcr.io/nineap/netrunner-proxy:latest (Dockerfile сам не компилирует Rust,
  ждёт уже готовый target/release/netrunner-server).
- .gitea/workflows/deploy.yml — только вручную (workflow_dispatch), параметр
  target: имя ноды из nodes.json или "all". Job "resolve" фильтрует список,
  job "deploy" — matrix по результату, каждая нода видна в прогоне отдельной
  строкой. Деплой пересоздаёт контейнер (pull+rm+run), не просто restart —
  иначе новый образ не подхватится.
- nodes.json — список нод (name/host/proxy_port/decoy_host), шаблон с
  CHANGE_ME — заполнить реальными IP.

Нужные секреты: GHCR_TOKEN (тот же, что и в остальных репо), PROXY_NODES_SSH_KEY
(общий master-ключ на все ноды), PROXY_INTERNAL_SECRET, BACKEND_URL (те же
значения, что уже настроены у бэкенда).
2026-07-09 15:27:18 +07:00

49 lines
1.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Собирает netrunner-server (release-бинарник) и пушит Docker-образ в ghcr.io.
# Dockerfile сам не компилирует Rust — он просто копирует уже готовый
# target/release/netrunner-server (см. Dockerfile), поэтому cargo build идёт
# отдельным шагом перед docker build, не внутри него.
#
# Нужен секрет GHCR_TOKEN — настоящий GitHub PAT с правом write:packages
# (автотокен Gitea для ghcr.io не годится, см. остальные .gitea/workflows/
# в других репозиториях — та же причина).
name: Build & Push Proxy Image
on:
push:
branches: [main]
tags: ["v*"]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Build release binary
run: cargo build --release -p netrunner-server
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
tags: ghcr.io/nineap/netrunner-proxy:latest