본문 바로가기
C.W.K.
Stream
Lesson 05 of 07 · published

아이콘 & CI/CD (tauri-action)

~13 min · tauri, icons, ci, github-actions

Level 0웹 관광객
0 XP0/56 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete
"소스 아이콘 하나로 모든 플랫폼 크기를. git 태그 하나로 모든 플랫폼 설치 파일을. 지루하고 실수 잦은 쪽을 기계한테 넘겨."

아이콘은 소스 하나에서

플랫폼마다 앱 아이콘을 크기랑 포맷별로 잔뜩 원해. macOS는 .icns, Windows는 .ico, Linux랑 트레이는 PNG 여러 장. 이걸 손으로 만들지 마. tauri icon path/to/icon.png가 고해상도 정사각형 원본 하나(1024×1024면 안전해)를 받아서 아이콘 세트 전체를 src-tauri/icons/에 만들고 설정에까지 엮어줘. 로고가 바뀔 때마다 다시 돌려. 개별 크기를 손으로 고치는 일은 절대 하지 말고.

내 손에 없는 OS용 빌드는 CI가 해줘

OS별 설치 파일은 그 OS에서 빌드해야 한다고 했지. 깔끔한 답이 CI 매트릭스야. macOS랑 Windows랑 Linux 러너를 둔 GitHub Actions(나 비슷한 것)에서, 각 러너가 같은 커밋으로 자기 네이티브 설치 파일을 만드는 거지. 공식 tauri-action이 이걸 감싸줘 — 러너마다 앱을 빌드하고, 원하면 설치 파일을 전부 붙인 draft GitHub Release까지 만들어줘서 네가 확인하고 publish만 하면 돼. 태그 하나 붙인 커밋이 크로스 플랫폼 릴리스 전체가 되는 거야.

실제로 돌아가게 만드는 건 시크릿이야

CI 워크플로가 네 서명 신원이랑 updater 키가 암호화된 시크릿으로 사는 곳이고, 빌드할 때 환경 변수로 들어가. 그래서 CI가 알아서 서명하고 notarize하고 업데이트에 서명할 수 있는 거지 — '릴리스 내기'가 기계 한 대에 매달린 위태로운 수작업에서 언제든 똑같이 돌아가는 파이프라인으로 바뀌는 거야. 필요해 보이기 전에 미리 엮어둬. 릴리스 압박 속에서 CI에 서명을 끼워 넣는 건 정말 괴로운 일이거든.

Code

tauri icon: 원본 하나, 크기는 전부·bash
# 1024x1024 PNG 하나에서 모든 플랫폼 아이콘 생성.
npm run tauri icon path/to/app-icon.png
# → src-tauri/icons/ 작성 (.icns, .ico, PNG) + 설정 갱신
tauri-action: 한 번에 전부 뽑는 매트릭스·text
# .github/workflows/release.yml (스케치) — 태그 하나로 모든 OS에서 빌드.
strategy:
  matrix:
    platform: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
  - uses: actions/checkout@v4
  - uses: tauri-apps/tauri-action@v0
    env:
      APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
      TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_UPDATER_KEY }}
    with:
      tagName: app-v__VERSION__
      releaseDraft: true       # 모든 설치 파일을 draft 릴리스에 붙임

External links

Exercise

1024x1024 PNG에 tauri icon을 돌리고 src-tauri/icons/에 뭐가 생겼는지 전부 봐. 그다음 (종이든 yml이든) 네가 고른 타깃을 빌드할 CI 매트릭스를 스케치하고, 필요한 시크릿(서명 신원, notarization 자격증명, updater 키)을 적어. 마지막 1마일을 자동으로 돌게 이어붙인 거야. 원본 아이콘 하나, 태그 하나, 어디서나 서명된 설치 파일.
Hint
tauri icon이 원본 하나에서 .icns랑 .ico랑 PNG를 만들어. CI 매트릭스는 내보낼 OS마다 러너가 필요하고, 시크릿은 Apple 자격증명이랑 TAURI updater 비공개 키를 tauri-action 스텝에 환경 변수로 넘기면 돼.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.