From c607dff47d4efa64874553de271d0cfbf71c4ef5 Mon Sep 17 00:00:00 2001 From: Yun Chan Date: Tue, 8 Sep 2026 03:33:54 +0900 Subject: [PATCH] chore(cicd): remove obsolete GitHub workflows, update ad links to git.chanpaca.net, and guard tests --- .github/workflows/build.yml | 43 -------- .github/workflows/release.yml | 98 ------------------- .../Ads/AdService.cs | 8 +- .../AdServiceTests.cs | 2 + .../AgyChatClientTests.cs | 1 + 5 files changed, 7 insertions(+), 145 deletions(-) delete mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 5ecc2b0..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -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 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index f4fdbad..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -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회만 인증서 등록이 필요합니다. - - ### 변경사항 diff --git a/src/Everything2Everything.Core/Ads/AdService.cs b/src/Everything2Everything.Core/Ads/AdService.cs index a76eb3d..27955ef 100644 --- a/src/Everything2Everything.Core/Ads/AdService.cs +++ b/src/Everything2Everything.Core/Ads/AdService.cs @@ -36,7 +36,7 @@ public class AdService : IAdService Description = "Everything2Everything 공식 후원 및 제휴 파트너십을 확인하세요.", BadgeText = "스폰서", ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/logo-mark.png", - TargetUrl = "https://github.com/yunchan8804/Everything2Everthing", + TargetUrl = "https://git.chanpaca.net/yunchan/Everything2Everything", CtaText = "자세히 보기", Type = AdType.Banner, IsActive = true, @@ -50,7 +50,7 @@ public class AdService : IAdService Description = "FFmpeg 및 LibRaw 가속 엔진으로 수천 장의 이미지를 순식간에 처리합니다.", BadgeText = "AD", 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 = "가이드 보기", Type = AdType.Banner, IsActive = true, @@ -65,7 +65,7 @@ public class AdService : IAdService Description = "개인 및 기업을 위한 고성능 무손실 일괄 변환. 워터마크 없이 100% 무료로 자유롭게 활용하세요.", BadgeText = "스폰서 추천", ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/illus-done.png", - TargetUrl = "https://github.com/yunchan8804/Everything2Everthing", + TargetUrl = "https://git.chanpaca.net/yunchan/Everything2Everything", CtaText = "파트너십 문의", Type = AdType.LargeCard, IsActive = true, @@ -79,7 +79,7 @@ public class AdService : IAdService Description = "로컬 LLM과 Tesseract OCR을 결합하여 스캔 문서와 PDF를 즉시 검색 가능한 텍스트로 변환합니다.", BadgeText = "AD", ImageUrl = "pack://application:,,,/Everything2Everything;component/Assets/glyph-ai.png", - TargetUrl = "https://github.com/yunchan8804/Everything2Everthing", + TargetUrl = "https://git.chanpaca.net/yunchan/Everything2Everything", CtaText = "기능 살펴보기", Type = AdType.LargeCard, IsActive = true, diff --git a/src/Everything2Everything.Tests/AdServiceTests.cs b/src/Everything2Everything.Tests/AdServiceTests.cs index 05118b2..0ebad0b 100644 --- a/src/Everything2Everything.Tests/AdServiceTests.cs +++ b/src/Everything2Everything.Tests/AdServiceTests.cs @@ -22,6 +22,7 @@ public class AdServiceTests Assert.False(string.IsNullOrWhiteSpace(ad.Title)); Assert.False(string.IsNullOrWhiteSpace(ad.Description)); 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.Description)); Assert.False(string.IsNullOrWhiteSpace(ad.TargetUrl)); + Assert.Contains("git.chanpaca.net", ad.TargetUrl); }); } diff --git a/src/Everything2Everything.Tests/AgyChatClientTests.cs b/src/Everything2Everything.Tests/AgyChatClientTests.cs index cd52331..f5a3986 100644 --- a/src/Everything2Everything.Tests/AgyChatClientTests.cs +++ b/src/Everything2Everything.Tests/AgyChatClientTests.cs @@ -37,6 +37,7 @@ public class AgyChatClientTests [Fact] public void LlmProvider_ResolveClient_AutoSelectsAgyWhenNoKey() { + if (!ExternalToolDetector.IsAgyAvailable(out _)) return; var store = new FakeStore(); var provider = new LlmProvider(store); var (client, model) = provider.ResolveClientForTesting(new AiOptions { Backend = "agy" });