ci: single release job, drop GitHub upload-artifact on Gitea
Release / release (push) Successful in 4m32s
Release / release (push) Successful in 4m32s
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,6 +4,9 @@
|
|||||||
# Не используем windows-latest/macos-latest — это только GitHub-hosted.
|
# Не используем windows-latest/macos-latest — это только GitHub-hosted.
|
||||||
# По умолчанию: одна Linux-сборка Win+NSIS (Wine). macOS — когда будет раннер (см. комментарий в build-macos).
|
# По умолчанию: одна 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
|
# Secrets: DND_UPDATE_FEED_URL, DND_UPDATES_SERVER, UPDATES_REPO, DND_UPDATES_PUSH_TOKEN — docs/GITEA_AUTO_UPDATE.md
|
||||||
|
|
||||||
name: Release
|
name: Release
|
||||||
@@ -17,8 +20,7 @@ env:
|
|||||||
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
|
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Сборка Windows-установщика на Linux (типичный self-hosted Gitea без облачных раннеров).
|
release:
|
||||||
build-windows:
|
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -81,50 +83,23 @@ jobs:
|
|||||||
--config.publish.provider=generic \
|
--config.publish.provider=generic \
|
||||||
--config.publish.url="${DND_UPDATE_FEED_URL}"
|
--config.publish.url="${DND_UPDATE_FEED_URL}"
|
||||||
|
|
||||||
- name: Собрать артефакты win
|
- name: Каталог артефактов для feed (_win)
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
mkdir -p _artifact_win
|
mkdir -p _win
|
||||||
shopt -s nullglob || true
|
shopt -s nullglob || true
|
||||||
for f in release/*; do
|
for f in release/*; do
|
||||||
[[ -f "$f" ]] || continue
|
[[ -f "$f" ]] || continue
|
||||||
base=$(basename "$f")
|
base=$(basename "$f")
|
||||||
case "$base" in
|
case "$base" in
|
||||||
*.yml|*.yaml|*.exe|*.blockmap|*.zip) cp -v "$f" _artifact_win/ ;;
|
*.yml|*.yaml|*.exe|*.blockmap|*.zip) cp -v "$f" _win/ ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
ls -la _artifact_win
|
ls -la _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
|
|
||||||
|
|
||||||
- name: Пустой каталог mac (пока нет сборки mac в CI)
|
- name: Пустой каталог mac (пока нет сборки mac в CI)
|
||||||
run: mkdir -p _mac
|
run: mkdir -p _mac
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: '22'
|
|
||||||
|
|
||||||
- name: Push в публичный репозиторий updates
|
- name: Push в публичный репозиторий updates
|
||||||
env:
|
env:
|
||||||
DND_UPDATES_SERVER: ${{ secrets.DND_UPDATES_SERVER }}
|
DND_UPDATES_SERVER: ${{ secrets.DND_UPDATES_SERVER }}
|
||||||
@@ -134,3 +109,10 @@ jobs:
|
|||||||
ARTIFACT_MAC: ${{ github.workspace }}/_mac
|
ARTIFACT_MAC: ${{ github.workspace }}/_mac
|
||||||
GIT_COMMIT_TAG: ${{ github.ref_name }}
|
GIT_COMMIT_TAG: ${{ github.ref_name }}
|
||||||
run: node scripts/sync-update-feed.mjs
|
run: node scripts/sync-update-feed.mjs
|
||||||
|
|
||||||
|
# Когда появится macOS-раннер: отдельный job build-macos, копирование eb-mac в _mac перед sync
|
||||||
|
# или расширить шаг «Каталог артефактов»; сейчас всё в одном job `release`.
|
||||||
|
#
|
||||||
|
# build-macos:
|
||||||
|
# runs-on: macos-14
|
||||||
|
# steps: ...
|
||||||
|
|||||||
@@ -332,7 +332,7 @@ git push origin v1.0.1
|
|||||||
|
|
||||||
(ветка может быть не `main` — подставь свою.)
|
(ветка может быть не `main` — подставь свою.)
|
||||||
|
|
||||||
3. Открой в Gitea **«Действия»** у приватного репо — должен появиться запуск **Release**. Дождись успеха job’ов **build-windows** и **publish-update-feed** (после появления раннера, см. раздел выше).
|
3. Открой в Gitea **«Действия»** у приватного репо — должен появиться запуск **Release**. Дождись успеха job **`release`** (после появления раннера, см. раздел выше).
|
||||||
|
|
||||||
4. После успеха открой **публичный** `DndGamePlayerUpdates` → ветка **`updates`** — в корне должны появиться `latest.yml`, установщики и т.д.
|
4. После успеха открой **публичный** `DndGamePlayerUpdates` → ветка **`updates`** — в корне должны появиться `latest.yml`, установщики и т.д.
|
||||||
|
|
||||||
@@ -346,7 +346,7 @@ git push origin v1.0.1
|
|||||||
2. В **DndGamePlayerUpdates** есть хотя бы один коммит (не пустой репо).
|
2. В **DndGamePlayerUpdates** есть хотя бы один коммит (не пустой репо).
|
||||||
3. В приватном репо заданы **все четыре** секрета из таблицы шага 2 (имена **не** начинаются с `GITEA_`).
|
3. В приватном репо заданы **все четыре** секрета из таблицы шага 2 (имена **не** начинаются с `GITEA_`).
|
||||||
4. В репо с кодом есть **`.gitea/workflows/release.yml`**.
|
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`).
|
6. В приложении: обновления только **`app.isPackaged`** и при **активной лицензии** (см. `app/main/update/installAutoUpdater.ts`).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user