HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
♥️
2기 최종 프로젝트 팀별 공간
/
[팀 BackFro💯] ArtZip: 세상 모든 전시회를 한 번에
[팀 BackFro💯] ArtZip: 세상 모든 전시회를 한 번에
/
☠️
백엔드 기술 문서
/
📝
Github Actions를 이용한 CI
📝

Github Actions를 이용한 CI

Github Actions를 이용하여 CI를 진행하고 이에 대한 결과를 Slack으로 알릴 수 있게 해보았다.
 

GitHub Actions

GitHub에서 제공되는 CI/CD 서비스이다. 레파지토리에서 어떤 이벤트가 발생했을 때 특정한 작업이 일어나도록 하거나 주기적으로 작업을 반복하도록 설정할 수 있다.
 

사용 예시

.github/workflows/gradle-ci.yml
name: Spring Boot & Gradle CI/CD on: push: branches: [main] pull_request: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle run: ./gradlew clean build --stacktrace - name: action-slack uses: 8398a7/action-slack@v3 with: status: ${{ job.status }} author_name: CI Practice fields: repo,message,commit,author,action,eventName,ref,workflow,job,took env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} if: always()

Workflows

  • GitHub Actions에서 가장 상위 개념으로서 자동화 해놓은 작업 과정
  • .github/workflows 폴더 아래에 위치한 YAML 파일로 설정

on

on: push: branches: [main] pull_request: branches: [main]
  • workflow가 실행되는 시점을 지정
  • 위의 경우 main 브랜치에 push 또는 PR이 머지 되는 경우 workflow가 실행되도록 하고 있다.

jobs

  • 독립된 가상 머신(machine) 또는 컨테이너(container)에서 돌아가는 하나의 처리 단위
  • 하나의 workflow는 여러개의 작업으로 구성되며 적어도 하나의 작업은 있어야 한다.
    • 여러 작업을 구분할 때는 식별자를 이용하는데 위의 경우 build가 작업 식별자이다.
  • 그리고 모든 작업은 기본적으로 동시에 실행되며 필요 시 작업 간에 의존 관계를 설정하여 작업이 실행되는 순서를 제어할 수도 있다.

runs-on

  • 작업이 수행될 실행 환경을 지정

Steps

  • 하나의 작업은 하나 이상의 단계로 모델링 된다.
  • 작업은 command, script, action으로 이루어진다.
    • command, script 실행시는 run 속성을 사용
    • action은 실행시 uses 속성을 사용

Actions

  • 빈번하게 필요한 반복 단계를 재사용하기 용이하도록 제공되는 일종의 작업 공유 메커니즘
  • 대표적으로 위에서 사용하고 있는 actions/checkout 이 Action
    • actions/checkout 는 레파지토리로 부터 코드를 작업 실행 환경으로 내려받는 것
 
 
GitHub Actions의 소개와 핵심 개념
GitHub가 Microsoft에 인수된 이후 야심차게 출시한 GitHub Actions는 CI/CD 시장에 자각변동을 일으키고 있는데요. 전세계에 대부분의 개발자들이 이미 GitHub 계정이 있다고 해도 과언이 아닌 유리한 상황에서, GitHub Actions의 약진은 Jenkins, Circle CI, Travis CI와 같은 기존에 유수의 서비스까지도 위협하고 있습니다.
GitHub Actions의 소개와 핵심 개념
https://www.daleseo.com/github-actions-basics/
GitHub Actions의 소개와 핵심 개념
Github Action을 사용한 Spring boot & gradle CI/CD 구축 - 1
본 포스팅은 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스, 이동욱'의 내용을 기반으로 작성한 내용입니다. Github Action을 사용한 Spring boot & gradle CI/CD 구축 - 1 Github Action을 사용한 Spring boot & gradle CI/CD 구축 - 2 Github Action을 사용한 Spring boot & gradle CI/CD 구축 - 3 Github Action을 사용한 Spring boot & gradle CI/CD 구축 - 4 서비스 기능 개발 이후에는 빌드, 테스트, 소스 병합, 릴리즈, 배포라는 일련의 과정을 거친다.
Github Action을 사용한 Spring boot & gradle CI/CD 구축 - 1
https://stalker5217.netlify.app/devops/github-action-aws-ci-cd-1/
Github Action을 사용한 Spring boot & gradle CI/CD 구축 - 1
velog.io
https://velog.io/@tigger/Github-Action-Slack%EA%B3%BC-%EC%97%B0%EB%8F%99%ED%95%B4%EC%84%9C-%EB%B9%8C%EB%93%9C-%EA%B2%B0%EA%B3%BC-%EB%B0%9B%EA%B8%B0