1
0
Fork 0
Everything2Everything/.github/workflows/release.yml
Yun Chan d24cb90ed2 ci: build.yml + release.yml 보강 (서명 옵션 + workflow_dispatch)
- build.yml 추가: PR/push 시 솔루션 빌드 + MSIX 산출 검증, 14일 보관
- release.yml: PFX_BASE64 / PFX_PASSWORD secrets 있으면 자동 서명, 없으면
  unsigned. workflow_dispatch로 수동 트리거도 가능.
- 릴리즈 본문에 인증서 등록 + 사이드로드 가이드 inline 포함.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:13:03 +09:00

98 lines
3.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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: EverythingToJpeg-x64-msix
path: packaging/dist/EverythingToJpeg-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/EverythingToJpeg-x64.msix
generate_release_notes: true
body: |
## EverythingToJpeg
모든 파일을 우클릭 한 번으로 JPEG 로 변환합니다.
### 설치 방법
1. 아래 `EverythingToJpeg-x64.msix` 다운로드.
2. 관리자 PowerShell:
```powershell
# 자체 서명 인증서를 신뢰 저장소에 등록 (PFX 별도 보유 필요)
Import-PfxCertificate -CertStoreLocation Cert:\LocalMachine\TrustedPeople `
-FilePath .\EverythingToJpeg-DevCert.pfx `
-Password (ConvertTo-SecureString 'EverythingToJpegDev' -AsPlainText -Force)
# MSIX 사이드로드
Add-AppxPackage -Path .\EverythingToJpeg-x64.msix -ForceApplicationShutdown
```
3. PNG/HEIC/PDF 등 파일 우클릭 → "JPEG로 빠른 변환" 또는 "JPEG로 변환…"
> 이 패키지는 자체 서명입니다. 첫 PC 1회만 인증서 등록이 필요합니다.
### 변경사항