From 1e7aebf6b0a924345b2a24b46fa87ce99454eb6d Mon Sep 17 00:00:00 2001 From: tolelom <98kimsungmin@naver.com> Date: Wed, 18 Mar 2026 17:22:01 +0900 Subject: [PATCH] =?UTF-8?q?ci:=20go=20vet=20+=20go=20test=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20+=20Go=201.25=20=EC=97=85=EA=B7=B8=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EB=93=9C=20+=20=ED=83=9C=EA=B7=B8=20=EB=A6=B4?= =?UTF-8?q?=EB=A6=AC=EC=A6=88=20=EB=B9=8C=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - test job: go vet + build + go test ./... (Windows runner) - release job: 'v*' 태그 push 시 launcher.exe를 GitHub Release에 업로드 - Go 1.24 → 1.25 업그레이드 Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/ci.yml | 43 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index baaec88..3edf5cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,21 +1,56 @@ -name: CI +name: CI/CD on: push: branches: [main] + tags: ['v*'] pull_request: branches: [main] jobs: - build: - # Windows runner required for Win32 API dependencies + # ── 1. 정적 분석 + 빌드 + 테스트 ────────────────────────────────────────── + test: + # Win32 API 의존성으로 Windows runner 필수 runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.24' + go-version: '1.25' + cache: true + + - name: Vet + run: go vet ./... - name: Build run: go build -ldflags="-H windowsgui -s -w" -o launcher.exe . + + - name: Test + run: go test ./... -v + + # ── 2. 릴리즈 빌드 & GitHub Release 업로드 (태그 push 시만) ─────────────── + release: + needs: test + if: startsWith(github.ref, 'refs/tags/v') + runs-on: windows-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version: '1.25' + cache: true + + - name: Build release binary + run: | + $VERSION = "${{ github.ref_name }}" + go build -ldflags="-H windowsgui -s -w -X main.version=$VERSION" -o launcher.exe . + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + files: launcher.exe + generate_release_notes: true