Workflow CI гоняет gofmt, vet, тесты и сборку на каждый push в main; workflow Release по тегу v* собирает бинарники под linux/amd64 и arm64, считает контрольные суммы и публикует релиз через API Gitea. Оба workflow забирают код через git, а не actions/checkout: это JS-действие, которому нужен Node внутри контейнера, а в образе golang его нет. Заодно сборка перестала зависеть от доступности github.com, что для self-hosted инстанса существенно. Скрипт deploy/get.sh ставит последний релиз одной командой: определяет архитектуру, забирает файлы релиза, сверяет sha256 (бинарник ставится с правами root) и передаёт управление install.sh. Обновление — та же команда. Версия сборки попадает в бинарник через ldflags, доступна как `pzmanager version` и видна в панели на вкладке «Настройки»: без неё нельзя понять, какой релиз стоит на сервере. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -127,6 +127,7 @@ type managerConfigDTO struct {
|
||||
BackupKeep int `json:"backup_keep"`
|
||||
BackupStopServer bool `json:"backup_stop_server"`
|
||||
ConfigPath string `json:"config_path"`
|
||||
Version string `json:"version"`
|
||||
}
|
||||
|
||||
func (s *Server) handleGetManagerConfig(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -145,6 +146,7 @@ func (s *Server) handleGetManagerConfig(w http.ResponseWriter, r *http.Request)
|
||||
BackupKeep: c.Backup.Keep,
|
||||
BackupStopServer: c.Backup.StopServer,
|
||||
ConfigPath: c.Path(),
|
||||
Version: s.version,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user