ci: 첫 파이프라인 실패 2건 수정 — alpha 채널 감지 차단 + mac sox 자동 설치
- detectUpdateChannel:false — prerelease 버전이 alpha.yml을 만들어 latest.yml 글롭/가드에 안 걸리던 문제 (electron-updater 기본 채널 latest와 정렬) - artifacts 글롭 *.yml로 방어적 확장, publish 스크립트 메타데이터 regex 확장 - package-macos: sox 미설치 시 brew install sox 폴백
This commit is contained in:
parent
c6fd8c9a9a
commit
3e6e392920
3 changed files with 11 additions and 4 deletions
|
|
@ -111,7 +111,8 @@ package-windows:
|
|||
# expose_as는 와일드카드와 병행 불가라 제거. Artifacts 링크는 Job 페이지에서 접근.
|
||||
paths:
|
||||
- apps/desktop/release/*/*.exe
|
||||
- apps/desktop/release/*/latest.yml
|
||||
# latest.yml — detectUpdateChannel:false로 채널 고정. *.yml로 방어적 매치.
|
||||
- apps/desktop/release/*/*.yml
|
||||
- apps/desktop/release/*/*.blockmap
|
||||
expire_in: 90 days
|
||||
rules:
|
||||
|
|
@ -151,6 +152,8 @@ package-macos:
|
|||
- apps/desktop/sidecar/.venv-ci/bin/pip install -r apps/desktop/sidecar/requirements.txt
|
||||
- apps/desktop/sidecar/.venv-ci/bin/python apps/desktop/scripts/build-sidecar.py
|
||||
# 2) SoX 번들 (brew sox → resources/sox/ 복사 + dylib rpath 재배치)
|
||||
# runner에 sox 미설치면 user-level brew로 설치 (idempotent)
|
||||
- command -v sox >/dev/null 2>&1 || brew install sox
|
||||
- bash apps/desktop/scripts/install-sox.sh
|
||||
# 3) Ollama 다운로드 (darwin tgz)
|
||||
- bash apps/desktop/scripts/download-ollama.sh
|
||||
|
|
@ -161,7 +164,7 @@ package-macos:
|
|||
paths:
|
||||
- apps/desktop/release/*/*.dmg
|
||||
- apps/desktop/release/*/*.zip
|
||||
- apps/desktop/release/*/latest-mac.yml
|
||||
- apps/desktop/release/*/*.yml
|
||||
- apps/desktop/release/*/*.blockmap
|
||||
expire_in: 90 days
|
||||
rules:
|
||||
|
|
|
|||
|
|
@ -27,6 +27,10 @@ publish:
|
|||
provider: generic
|
||||
url: "https://gitlab.twentyoz.kr:8443/api/v4/projects/1172/packages/generic/d3ro-voice/latest"
|
||||
|
||||
# prerelease 버전(0.1.1-alpha)에서 채널을 "alpha"로 감지해 alpha.yml을 만드는 동작 차단 —
|
||||
# electron-updater(기본 채널 latest)가 latest.yml을 찾으므로 항상 latest 채널로 고정.
|
||||
detectUpdateChannel: false
|
||||
|
||||
# native 모듈은 asar 외부에 배치
|
||||
asarUnpack:
|
||||
- "node_modules/better-sqlite3/**"
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ if (!/^\d+\.\d+\.\d+(-[0-9A-Za-z.-]+)?$/.test(version)) {
|
|||
const releaseDirectory = fileURLToPath(new URL(`../../apps/desktop/release/${version}/`, import.meta.url));
|
||||
|
||||
// 업로드 대상 수집 — 설치파일 + 업데이터 메타데이터만 (unpacked 디렉토리 제외)
|
||||
const ASSET_PATTERN = /(\.exe|\.dmg|\.zip|\.blockmap|^latest(-mac|-linux)?\.yml)$/;
|
||||
const ASSET_PATTERN = /(\.exe|\.dmg|\.zip|\.blockmap|^(latest|alpha|beta)(-mac|-linux)?\.yml)$/;
|
||||
|
||||
const files = [];
|
||||
for (const name of await readdir(releaseDirectory)) {
|
||||
|
|
@ -130,7 +130,7 @@ function safeAssetName(name) {
|
|||
}
|
||||
|
||||
function isUpdateMetadata(name) {
|
||||
return /(?:\.blockmap$|^latest(?:-mac|-linux)?\.yml$)/.test(name);
|
||||
return /(?:\.blockmap$|^(?:latest|alpha|beta)(?:-mac|-linux)?\.yml$)/.test(name);
|
||||
}
|
||||
|
||||
async function buildDescription() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue