1. github - secrets에 application.yml을 등록해둠 - > base64로 인코딩해서 등록
2. gradel.yml 작성
- JDK 설치
- 해당 폴더 만들고 secrets에서 APPLICATION 읽어와서
- build
# gradle.yml
name: Java CI with Gradle
on:
push:
branches: [ "main" ] // main 브랜치에서 push 이벤트가 일어날 때
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
- uses: actions/checkout@v2
- run: mkdir ./src/main/resources
- run: touch ./src/main/resources/application.yml
- run: echo "${{ secrets.APPLICATION }}" | base64 --decode > ./src/main/resources/application.yml
- uses: actions/upload-artifact@v2
with:
name: application.yml
path: ./src/main/resources/application.yml
- name: Build with Gradle
run: ./gradlew clean build
Jenkins | GitHub Actions | AWS Codes | NCP Sources | |
---|---|---|---|---|
개요 | 오픈소스 | 깃허브에서 제공하는 완전관리형 서비스 | AWS에서 제공하는 완전관리형 서비스 | 네이버에서 제공하는 완전관리형 서비스 |
서버구성 | 서버 설치 필요 | 클라우드가 있으므로, 별도 설치 필요없음 | 클라우드가 있으므로, 별도 설치 필요없음 | 클라우드가 있으므로, 별도 설치 필요없음 |
비동기 | 동기적으로 배포하기 때문에 많은 시간이 소요 | |||
(비동기 파이프라인 구성이 없다) | 비동기 CI / CD | 비동기 CI / CD | 비동기 CI / CD | |
구성 | 모든작업에 대해서 계정 및 트리거를 기반으로 동작하며 모두 Pipeline 형태로 구성되어있다. | Github 내부 이벤트와 연동하여 yml 코드를 통해 편집, 재사용, 공유 및 분기 처리가 가능하다. | Code Commit > Build > Deploy > Pipeline 순서대로 개별 또는 통합 구성을 지원합니다. | Source Commit > Build > Deploy > Pipeline 순서로 개별 또는 통합 구성을 지원합니다. |
Github 연동 | REST API 트리거를 기준으로 구성되어 있어서 github의 모든 이벤트 연동을 하지는 못한다. | 모든 github 이벤트에 대한 작업을 제공하고 다양한 언어와 프레임 워크를 지원합니다. | REST API 트리거를 기준으로 구성되어 있어서 github의 모든 이벤트 연동을 하지는 못한다. | REST API 트리거를 기준으로 구성되어 있어서 github의 모든 이벤트 연동을 하지는 못한다. |
호환성 | 환경 호환성을 위해 도커 이미지에서 실행해야 함 (물리서버 비추천) | 모든 환경과 호환 | 모든 환경과 호환 | 모든 환경과 호환 |
캐싱 | 캐싱 플러그인 지원 | 캐싱 메커니즘 작성 필요 | 캐싱 기능 지원 | 캐싱 기능 지원 |
공유 | 공유기능 없음 | github 마켓 플레이스를 통해 공유 가능 | AWS 마켓플레이스를 통해 공유 가능 | 공유기능 없음 |
보안 | 서버 보안 스펙과 동일🔒🔒 | 일부 보안기능 지원 🔒 | 대부분 영역에서 보안기능 지원 🔒🔒🔒🔒 | 다양한 영역에서 보안기능 지원 🔒🔒🔒 |
레퍼런스 | 전세계많은 사람들이 이용하여 문서가 다양 | 신규 서비스로 문서 및 적용 사례가 상대적으로 적음 | AWS 영문 가이드 및 국내/해외 적용 사례 다수 | Naver 국문 가이드 및 국내 적용 사례 다수 |
알맞는 규모 | 중대형 프로젝트 | 소형 프로젝트 | 중대형 프로젝트 | 중대형 프로젝트 |
적용사 | 페이스북, 삼성SDS, 넥플릭스, 쿠팡, 카페24, 11번가 등... | 업스테이지 AI, Be pro 등... | 직방, 토스 페이먼츠, 당근마켓 등… | 네이버, 라인, 스노우, 제페토, 위버스ㄱ 등… |
CI/CD란? - RedHat
Github Actions란? - MyAeroCode github
Github Actions - Workflow (secrets)
base64로 인코딩