안녕하세요! 👋
오늘은 개인 프로젝트를 진행 하며 GitHub에서 제공하는 GitHub Action을 통해 CI환경을 구축했던 경험에 대해서 공유 해보려고 합니다!
Continuous Integration의 약자로 코드를 푸시되거나 Pull Request가 생성될 때 자동으로 빌드, 테스트, 정적 분석을 수행하는 프로세스를 의미합니다.
.github/workflows 를 만듭니다.${filename}.yml 파일을 생성합니다.

New repository secret 버튼을 클릭하여 local.properties에 저장된 정보들을 세팅 해줍니다.
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
- main 브랜치에 push 또는 PR이 생길 때 자동 실행됩니다.
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
cache: gradle
- Temurin JDK 17 설치
- Gradle 의존성 캐시 자동 관리
run: chmod +x gradlew
- gradlew 권한 부여
run: |
cat <<'EOF' > local.properties
secret_key=${{ secrets.${GitHub Secret Value} }}
EOF
GitHub Secrets 값으로 local.properties를 직접 생성합니다.
./gradlew lint testDebugUnitTest assembleDebug
- lint: 코드 스타일 및 XML, Manifest 정적 분석
- testDebugUnitTest: JVM 단위 테스트 실행
- assembleDebug: Debug APK 빌드
uses: actions/upload-artifact@v4
with:
name: app-debug-apk
path: app/build/outputs/apk/debug/*.apk
빌드 성공 시 Artifacts 탭에 APK 자동 업로드

대부분의 개인 프로젝트가 GitHub 위에서 진행되다 보니,
이렇게 간단하게 CI 환경을 만들 수 있다는 게 정말 매력적으로 느껴졌습니다.
앞으로 저는 여기서 한 걸음 더 나아가, CD 환경까지 직접 구축해보는 것을 목표로 하고 있습니다!
이 글이 여러분의 프로젝트에도 도움이 되었길 바라며,
오늘도 즐코하세요 🙏