From cd1f6dcc7e924ad66fce925455ca6c31b7d34d32 Mon Sep 17 00:00:00 2001 From: Ivan Fontosh Date: Mon, 11 May 2026 23:13:51 +0800 Subject: [PATCH] ci: single release job, drop GitHub upload-artifact on Gitea Co-authored-by: Cursor --- .gitea/workflows/release.yml | 48 +++++++++++------------------------- docs/GITEA_AUTO_UPDATE.md | 4 +-- 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index d59fdd0..ba98b1d 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -4,6 +4,9 @@ # Не используем windows-latest/macos-latest — это только GitHub-hosted. # По умолчанию: одна Linux-сборка Win+NSIS (Wine). macOS — когда будет раннер (см. комментарий в build-macos). # +# Один job без actions/upload-artifact: официальный upload-artifact@v4 с GitHub на Gitea +# падает (GHESNotSupportedError). Сборка и sync-update-feed идут в одном окружении. +# # Secrets: DND_UPDATE_FEED_URL, DND_UPDATES_SERVER, UPDATES_REPO, DND_UPDATES_PUSH_TOKEN — docs/GITEA_AUTO_UPDATE.md name: Release @@ -17,8 +20,7 @@ env: CSC_IDENTITY_AUTO_DISCOVERY: 'false' jobs: - # Сборка Windows-установщика на Linux (типичный self-hosted Gitea без облачных раннеров). - build-windows: + release: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 @@ -81,50 +83,23 @@ jobs: --config.publish.provider=generic \ --config.publish.url="${DND_UPDATE_FEED_URL}" - - name: Собрать артефакты win + - name: Каталог артефактов для feed (_win) shell: bash run: | - mkdir -p _artifact_win + mkdir -p _win shopt -s nullglob || true for f in release/*; do [[ -f "$f" ]] || continue base=$(basename "$f") case "$base" in - *.yml|*.yaml|*.exe|*.blockmap|*.zip) cp -v "$f" _artifact_win/ ;; + *.yml|*.yaml|*.exe|*.blockmap|*.zip) cp -v "$f" _win/ ;; esac done - ls -la _artifact_win - - - uses: actions/upload-artifact@v4 - with: - name: eb-win - path: _artifact_win/ - - # Когда появится macOS-раннер: раскомментируй job и выставь runs-on под метку раннера; - # в publish-update-feed добавь needs: [build-windows, build-macos] и download eb-mac. - # - # build-macos: - # runs-on: macos-14 - # steps: ... - - publish-update-feed: - runs-on: ubuntu-22.04 - needs: [build-windows] - steps: - - uses: actions/checkout@v4 - - - uses: actions/download-artifact@v4 - with: - name: eb-win - path: _win + ls -la _win - name: Пустой каталог mac (пока нет сборки mac в CI) run: mkdir -p _mac - - uses: actions/setup-node@v4 - with: - node-version: '22' - - name: Push в публичный репозиторий updates env: DND_UPDATES_SERVER: ${{ secrets.DND_UPDATES_SERVER }} @@ -134,3 +109,10 @@ jobs: ARTIFACT_MAC: ${{ github.workspace }}/_mac GIT_COMMIT_TAG: ${{ github.ref_name }} run: node scripts/sync-update-feed.mjs + + # Когда появится macOS-раннер: отдельный job build-macos, копирование eb-mac в _mac перед sync + # или расширить шаг «Каталог артефактов»; сейчас всё в одном job `release`. + # + # build-macos: + # runs-on: macos-14 + # steps: ... diff --git a/docs/GITEA_AUTO_UPDATE.md b/docs/GITEA_AUTO_UPDATE.md index 15c413e..8a1a496 100644 --- a/docs/GITEA_AUTO_UPDATE.md +++ b/docs/GITEA_AUTO_UPDATE.md @@ -332,7 +332,7 @@ git push origin v1.0.1 (ветка может быть не `main` — подставь свою.) -3. Открой в Gitea **«Действия»** у приватного репо — должен появиться запуск **Release**. Дождись успеха job’ов **build-windows** и **publish-update-feed** (после появления раннера, см. раздел выше). +3. Открой в Gitea **«Действия»** у приватного репо — должен появиться запуск **Release**. Дождись успеха job **`release`** (после появления раннера, см. раздел выше). 4. После успеха открой **публичный** `DndGamePlayerUpdates` → ветка **`updates`** — в корне должны появиться `latest.yml`, установщики и т.д. @@ -346,7 +346,7 @@ git push origin v1.0.1 2. В **DndGamePlayerUpdates** есть хотя бы один коммит (не пустой репо). 3. В приватном репо заданы **все четыре** секрета из таблицы шага 2 (имена **не** начинаются с `GITEA_`). 4. В репо с кодом есть **`.gitea/workflows/release.yml`**. -5. Релиз: пуш тега `v*` → в Actions job’ы **build-windows** и **publish-update-feed**; в публичном репо появляется ветка **`updates`** с `latest.yml` и установщиками (нужен online-раннер, см. раздел про act_runner). +5. Релиз: пуш тега `v*` → в Actions job **`release`** (сборка Win + push feed в одном job, без GitHub `upload-artifact`); в публичном репо появляется ветка **`updates`** с `latest.yml` и установщиками (нужен online-раннер, см. раздел про act_runner). 6. В приложении: обновления только **`app.isPackaged`** и при **активной лицензии** (см. `app/main/update/installAutoUpdater.ts`). ---