chore(cicd): remove obsolete GitHub workflows, update ad links to git.chanpaca.net, and guard tests
This commit is contained in:
parent
d6b7ec2274
commit
c607dff47d
5 changed files with 7 additions and 145 deletions
43
.github/workflows/build.yml
vendored
43
.github/workflows/build.yml
vendored
|
|
@ -1,43 +0,0 @@
|
||||||
name: Build
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [master, main]
|
|
||||||
pull_request:
|
|
||||||
branches: [master, main]
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: windows-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup .NET
|
|
||||||
uses: actions/setup-dotnet@v4
|
|
||||||
with:
|
|
||||||
dotnet-version: 9.0.x
|
|
||||||
|
|
||||||
- name: Setup MSBuild
|
|
||||||
uses: microsoft/setup-msbuild@v2
|
|
||||||
|
|
||||||
- name: Restore + Build solution
|
|
||||||
shell: pwsh
|
|
||||||
run: |
|
|
||||||
dotnet build Everything2Everything.slnx -c Release --nologo
|
|
||||||
|
|
||||||
- name: Build MSIX
|
|
||||||
shell: pwsh
|
|
||||||
run: |
|
|
||||||
./packaging/GenerateAssets.ps1
|
|
||||||
./packaging/BuildMsix.ps1 -Configuration Release -Platform x64
|
|
||||||
|
|
||||||
- name: Upload MSIX artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: Everything2Everything-x64-msix-${{ github.sha }}
|
|
||||||
path: packaging/dist/Everything2Everything-x64.msix
|
|
||||||
retention-days: 14
|
|
||||||
98
.github/workflows/release.yml
vendored
98
.github/workflows/release.yml
vendored
|
|
@ -1,98 +0,0 @@
|
||||||
name: Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- 'v*'
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
tag:
|
|
||||||
description: '릴리즈 태그 (예: v0.1.0)'
|
|
||||||
required: true
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: windows-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup .NET
|
|
||||||
uses: actions/setup-dotnet@v4
|
|
||||||
with:
|
|
||||||
dotnet-version: 9.0.x
|
|
||||||
|
|
||||||
- name: Setup MSBuild
|
|
||||||
uses: microsoft/setup-msbuild@v2
|
|
||||||
|
|
||||||
- name: Generate placeholder logos
|
|
||||||
shell: pwsh
|
|
||||||
run: ./packaging/GenerateAssets.ps1
|
|
||||||
|
|
||||||
- name: Decode PFX (if secret provided)
|
|
||||||
id: pfx
|
|
||||||
shell: pwsh
|
|
||||||
env:
|
|
||||||
PFX_BASE64: ${{ secrets.PFX_BASE64 }}
|
|
||||||
run: |
|
|
||||||
if ($env:PFX_BASE64) {
|
|
||||||
$bytes = [Convert]::FromBase64String($env:PFX_BASE64)
|
|
||||||
$path = Join-Path $env:RUNNER_TEMP 'cert.pfx'
|
|
||||||
[IO.File]::WriteAllBytes($path, $bytes)
|
|
||||||
"pfx_path=$path" >> $env:GITHUB_OUTPUT
|
|
||||||
Write-Host '✅ PFX 디코딩 완료 — 서명 모드로 빌드'
|
|
||||||
} else {
|
|
||||||
Write-Host 'ℹ PFX_BASE64 secret 없음 — unsigned 모드로 빌드'
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: Build MSIX (signed if PFX, else unsigned)
|
|
||||||
shell: pwsh
|
|
||||||
env:
|
|
||||||
PFX_PASSWORD: ${{ secrets.PFX_PASSWORD }}
|
|
||||||
run: |
|
|
||||||
$pfx = '${{ steps.pfx.outputs.pfx_path }}'
|
|
||||||
if ($pfx) {
|
|
||||||
$sec = ConvertTo-SecureString -String $env:PFX_PASSWORD -AsPlainText -Force
|
|
||||||
./packaging/BuildMsix.ps1 -Configuration Release -Platform x64 -Sign -PfxPath $pfx -PfxPassword $sec
|
|
||||||
} else {
|
|
||||||
./packaging/BuildMsix.ps1 -Configuration Release -Platform x64
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: Everything2Everything-x64-msix
|
|
||||||
path: packaging/dist/Everything2Everything-x64.msix
|
|
||||||
|
|
||||||
- name: Create GitHub Release
|
|
||||||
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch'
|
|
||||||
uses: softprops/action-gh-release@v2
|
|
||||||
with:
|
|
||||||
tag_name: ${{ github.event.inputs.tag || github.ref_name }}
|
|
||||||
files: packaging/dist/Everything2Everything-x64.msix
|
|
||||||
generate_release_notes: true
|
|
||||||
body: |
|
|
||||||
## Everything2Everything
|
|
||||||
|
|
||||||
모든 파일을 우클릭 한 번으로 JPEG 로 변환합니다.
|
|
||||||
|
|
||||||
### 설치 방법
|
|
||||||
1. 아래 `Everything2Everything-x64.msix` 다운로드.
|
|
||||||
2. 관리자 PowerShell:
|
|
||||||
```powershell
|
|
||||||
# 자체 서명 인증서를 신뢰 저장소에 등록 (PFX 별도 보유 필요)
|
|
||||||
Import-PfxCertificate -CertStoreLocation Cert:\LocalMachine\TrustedPeople `
|
|
||||||
-FilePath .\Everything2Everything-DevCert.pfx `
|
|
||||||
-Password (ConvertTo-SecureString 'Everything2EverythingDev' -AsPlainText -Force)
|
|
||||||
|
|
||||||
# MSIX 사이드로드
|
|
||||||
Add-AppxPackage -Path .\Everything2Everything-x64.msix -ForceApplicationShutdown
|
|
||||||
```
|
|
||||||
3. PNG/HEIC/PDF 등 파일 우클릭 → "JPEG로 빠른 변환" 또는 "JPEG로 변환…"
|
|
||||||
|
|
||||||
> 이 패키지는 자체 서명입니다. 첫 PC 1회만 인증서 등록이 필요합니다.
|
|
||||||
|
|
||||||
### 변경사항
|
|
||||||
|
|
@ -36,7 +36,7 @@ public class AdService : IAdService
|
||||||
Description = "Everything2Everything 공식 후원 및 제휴 파트너십을 확인하세요.",
|
Description = "Everything2Everything 공식 후원 및 제휴 파트너십을 확인하세요.",
|
||||||
BadgeText = "스폰서",
|
BadgeText = "스폰서",
|
||||||
ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/logo-mark.png",
|
ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/logo-mark.png",
|
||||||
TargetUrl = "https://github.com/yunchan8804/Everything2Everthing",
|
TargetUrl = "https://git.chanpaca.net/yunchan/Everything2Everything",
|
||||||
CtaText = "자세히 보기",
|
CtaText = "자세히 보기",
|
||||||
Type = AdType.Banner,
|
Type = AdType.Banner,
|
||||||
IsActive = true,
|
IsActive = true,
|
||||||
|
|
@ -50,7 +50,7 @@ public class AdService : IAdService
|
||||||
Description = "FFmpeg 및 LibRaw 가속 엔진으로 수천 장의 이미지를 순식간에 처리합니다.",
|
Description = "FFmpeg 및 LibRaw 가속 엔진으로 수천 장의 이미지를 순식간에 처리합니다.",
|
||||||
BadgeText = "AD",
|
BadgeText = "AD",
|
||||||
ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/glyph-video.png",
|
ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/glyph-video.png",
|
||||||
TargetUrl = "https://github.com/yunchan8804/Everything2Everthing#features",
|
TargetUrl = "https://git.chanpaca.net/yunchan/Everything2Everything#features",
|
||||||
CtaText = "가이드 보기",
|
CtaText = "가이드 보기",
|
||||||
Type = AdType.Banner,
|
Type = AdType.Banner,
|
||||||
IsActive = true,
|
IsActive = true,
|
||||||
|
|
@ -65,7 +65,7 @@ public class AdService : IAdService
|
||||||
Description = "개인 및 기업을 위한 고성능 무손실 일괄 변환. 워터마크 없이 100% 무료로 자유롭게 활용하세요.",
|
Description = "개인 및 기업을 위한 고성능 무손실 일괄 변환. 워터마크 없이 100% 무료로 자유롭게 활용하세요.",
|
||||||
BadgeText = "스폰서 추천",
|
BadgeText = "스폰서 추천",
|
||||||
ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/illus-done.png",
|
ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/illus-done.png",
|
||||||
TargetUrl = "https://github.com/yunchan8804/Everything2Everthing",
|
TargetUrl = "https://git.chanpaca.net/yunchan/Everything2Everything",
|
||||||
CtaText = "파트너십 문의",
|
CtaText = "파트너십 문의",
|
||||||
Type = AdType.LargeCard,
|
Type = AdType.LargeCard,
|
||||||
IsActive = true,
|
IsActive = true,
|
||||||
|
|
@ -79,7 +79,7 @@ public class AdService : IAdService
|
||||||
Description = "로컬 LLM과 Tesseract OCR을 결합하여 스캔 문서와 PDF를 즉시 검색 가능한 텍스트로 변환합니다.",
|
Description = "로컬 LLM과 Tesseract OCR을 결합하여 스캔 문서와 PDF를 즉시 검색 가능한 텍스트로 변환합니다.",
|
||||||
BadgeText = "AD",
|
BadgeText = "AD",
|
||||||
ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/glyph-ai.png",
|
ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/glyph-ai.png",
|
||||||
TargetUrl = "https://github.com/yunchan8804/Everything2Everthing",
|
TargetUrl = "https://git.chanpaca.net/yunchan/Everything2Everything",
|
||||||
CtaText = "기능 살펴보기",
|
CtaText = "기능 살펴보기",
|
||||||
Type = AdType.LargeCard,
|
Type = AdType.LargeCard,
|
||||||
IsActive = true,
|
IsActive = true,
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ public class AdServiceTests
|
||||||
Assert.False(string.IsNullOrWhiteSpace(ad.Title));
|
Assert.False(string.IsNullOrWhiteSpace(ad.Title));
|
||||||
Assert.False(string.IsNullOrWhiteSpace(ad.Description));
|
Assert.False(string.IsNullOrWhiteSpace(ad.Description));
|
||||||
Assert.False(string.IsNullOrWhiteSpace(ad.TargetUrl));
|
Assert.False(string.IsNullOrWhiteSpace(ad.TargetUrl));
|
||||||
|
Assert.Contains("git.chanpaca.net", ad.TargetUrl);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -39,6 +40,7 @@ public class AdServiceTests
|
||||||
Assert.False(string.IsNullOrWhiteSpace(ad.Title));
|
Assert.False(string.IsNullOrWhiteSpace(ad.Title));
|
||||||
Assert.False(string.IsNullOrWhiteSpace(ad.Description));
|
Assert.False(string.IsNullOrWhiteSpace(ad.Description));
|
||||||
Assert.False(string.IsNullOrWhiteSpace(ad.TargetUrl));
|
Assert.False(string.IsNullOrWhiteSpace(ad.TargetUrl));
|
||||||
|
Assert.Contains("git.chanpaca.net", ad.TargetUrl);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ public class AgyChatClientTests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void LlmProvider_ResolveClient_AutoSelectsAgyWhenNoKey()
|
public void LlmProvider_ResolveClient_AutoSelectsAgyWhenNoKey()
|
||||||
{
|
{
|
||||||
|
if (!ExternalToolDetector.IsAgyAvailable(out _)) return;
|
||||||
var store = new FakeStore();
|
var store = new FakeStore();
|
||||||
var provider = new LlmProvider(store);
|
var provider = new LlmProvider(store);
|
||||||
var (client, model) = provider.ResolveClientForTesting(new AiOptions { Backend = "agy" });
|
var (client, model) = provider.ResolveClientForTesting(new AiOptions { Backend = "agy" });
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue