4.4 KiB
4.4 KiB
Milestone: Jenkins 얇은 빌드와 artifact 다운로드
위치
- Roadmap:
agent-roadmap/ROADMAP.md - Phase:
agent-roadmap/phase/security-distribution/PHASE.md
목표
OTO 없이 Jenkins job만 얇게 구성해 AppSok 인증 ZIP을 반복 빌드하고, Jenkins artifact 링크로 바로 다운로드할 수 있게 한다. Jenkins에는 빌드 지식을 최소한으로 두고, 현재 프로젝트의 기존 인증 빌드 스크립트를 실행하는 thin launcher 역할만 부여한다.
상태
[계획]
승격 조건
- 없음
구현 잠금
- 상태: 잠금
- 결정 필요: 아래 체크리스트
- Jenkins job 생성/갱신은 사용자 제공 Jenkins API credential을 사용한다. 원격 SOPS 저장과 Jenkins API 인증 확인을 완료했다.
- artifact 다운로드를 Jenkins 로그인 사용자에게만 허용할지, 별도 공개 다운로드 경로를 마련할지 결정한다.
- build trigger를 수동 실행만으로 시작할지, Git push webhook 또는 polling까지 포함할지 결정한다.
- job 이름과 artifact 보관 개수 기본값을 확정한다. 기본 후보는
appsok-macos-certified, 최근 20개 build/artifact 보관이다.
범위
- AppSok 전용 Jenkins job 생성 또는 갱신
macbook-ultraJenkins node에서 기존 인증 빌드 스크립트 실행- 최종 ZIP과 checksum을 Jenkins archived artifact로 노출
- 최신 성공 빌드 artifact 다운로드 URL 확인
- Jenkins credential/API token을 tracked 파일에 남기지 않는 운영 절차
기능
Epic: [job] Jenkins thin job
Jenkins job은 AppSok 빌드 스크립트를 호출하고 artifact를 보관하는 얇은 launcher로 유지한다.
- [job-config]
macbook-ultranode, AppSok SCM,mainbranch, shell build step을 포함한 Jenkins job config를 만든다. - [script-call] job build step이
./scripts/build-certified-macos.sh를 호출하고 secret 원문을 job config나 repository에 남기지 않는다. - [artifact-copy]
AppSok-certified.zip과sha256값을 Jenkins workspace의 archive 대상 경로로 모은다. - [archive] Jenkins archived artifact 설정으로 ZIP과 checksum을 보관한다.
- [retention] build log와 artifact 보관 정책을 AppSok 1차 운영 기준에 맞춘다.
Epic: [access] 빌드 실행과 다운로드 확인
사용자가 Jenkins에서 빌드를 실행하고 최신 성공 artifact를 확인할 수 있게 한다.
- [trigger] 1차 trigger 방식을 적용한다.
- [download-url]
lastSuccessfulBuild/artifact/.../AppSok-certified.zip다운로드 URL을 확인하고 문서화한다. - [auth-policy] Jenkins artifact 다운로드 권한 정책을 결정 사항에 맞게 반영한다.
- [smoke] Jenkins build를 1회 실행하고 archived ZIP과 checksum을 다운로드 가능한 상태로 검증한다. 검증: Jenkins 최신 성공 빌드의 artifact URL이 인증된 사용자 기준으로 ZIP 응답을 반환한다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증 충족 후 기록한다.
- 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 없음
범위 제외
- OTO runner 또는 OTO Server를 Jenkins 대체 실행 주체로 도입하는 작업
- workspace 공통 Jenkins 가이드 또는 별도 agent skill 작성
- Jenkins plugin, Auth Broker, 중앙 감사 서버 구현
- 공용 Jenkins API token을 앱이나 repository에 내장하는 방식
- AppSok 앱 코드에서 Jenkins artifact 소비 흐름을 변경하는 작업
작업 컨텍스트
- 관련 경로:
scripts/build-certified-macos.sh,docs/macos-certified-build.md,agent-roadmap/phase/security-distribution/ - 표준선(선택): Jenkins는 1차로 thin launcher와 artifact archive만 담당하고, 빌드 절차의 source of truth는 AppSok repository의 스크립트와 문서에 둔다.
- 표준선(선택): Jenkins API token, SSH credential, Apple credential, Keychain password 원문은 tracked 파일, task log, 최종 응답에 기록하지 않는다.
- 선행 작업: macOS 빌드 CI와 인증 빌드
- 후속 작업: macOS 배포와 sandbox 검증, 향후 OTO 기반 CI/CD 마이그레이션 후보
- 확인 필요: Jenkins API token 또는 reload 권한, artifact 다운로드 권한 정책, trigger 방식, job 이름과 보관 정책