Github Actions를 이용하여 CI를 진행하고 이에 대한 결과를 Slack으로 알릴 수 있게 해보았다.
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()
.github/workflows
폴더 아래에 위치한 YAML 파일로 설정on:
push:
branches: [main]
pull_request:
branches: [main]
main
브랜치에 push 또는 PR이 머지 되는 경우 workflow가 실행되도록 하고 있다.build
가 작업 식별자이다.command
, script
, action
으로 이루어진다.command
, script
실행시는 run
속성을 사용action
은 실행시 uses
속성을 사용actions/checkout
이 Actionactions/checkout
는 레파지토리로 부터 코드를 작업 실행 환경으로 내려받는 것GitHub Actions의 소개와 핵심 개념
Github Action을 사용한 Spring boot & gradle CI/CD 구축 - 1
Github Action과 Slack 연동해서 빌드 결과 받기