[DevOps] GithubActions & Jenkins

홍건의·2024년 9월 16일
0

DevOps

목록 보기
1/4

GithubActions

개요

젠킨스는 규모가 작은 프로젝트에서는 설정하는데 많은 리소스가 발생하기에 GithubActions가 툴로 합리적이다.

CI

code를 커밋하고 빌드했을 때, 정상적으로 작동하는지 반복적으로 검증해 Application의 신뢰성을 높이는 작업.

CI를 마쳤으면 Application은 신뢰할 수 있는 상태를 의미한다.

빌드 -> 테스트 -> Jar 파일 생성 까지를 보통 CI 영역으로 여기며, 이후 패키징하고 배포는 CD 영역으로 본다.

기본 구성

1. Workflow

여러 Job으로 구성되고, Event에 의해 트리거될 수 있는 자동화된 프로세스.
Workflow 파일은 YAML 파일로 작성되고, Github Repository의 .github/workflows 폴더 아래에 저장된다.

2. Event

workflow를 trigger하는 특정 활동이나 규칙
예를 들면
i) 특정 branch로 push / PR하거나
ii) 특정 시간대에 반복하거나
iii) WebHook을 사용해 외부 이벤트에 의해 실행하거나 등등

3. Job

Job은 여러 step으로 구성되고 가상 환경 인스턴스에서 실행된다.
다른 Job에 의존관계를 가질 수 있고, 독립적으로 병렬 실행도 가능하다.

4. Step

Task들의 집합으로 커맨드를 날리거나 action을 수행할 수 있다.

5. Action

Workflow의 가장 작은 블럭.
Job을 만들기 위해 step들을 연결할 수 있다.

6. Runner

Github Action Runner 어플리케이션이 설치된 머신으로 Workflow가 실행될 인스턴스
Github에서 호스팅해주는 Github-hosted runner와 직접 호스팅하는 self-hosted runner로 나뉜다.

YAML 작성 예시

name: helloGithubAction
on: [push]
jobs:
    build:
        runs-on: ununtu-latest
        steps:
            - uses:
            
            - name:
              run: 

onevent. 어떤 이벤트가 발생했을 때 이하 Job을 실행할 것인지 기술한다. 다중 이벤트는 []를 붙인다.
jobsworkflow
내부에 다수의 job 가능하며, 병렬적으로 처리한다. 이러한 job을 실행하는 환경이 Runner
build는 작업단위
runs-on 어디에서 실행할 것인지
steps 이걸해야 실행가능해진다. 이게 없으면 아무것도 없는 OS에서 실행하게 된다.
uses 다른 사람이 만들어놓은 action을 쓸 때

사실상 .github/workflows/~~.yaml 이것들을 작성함을 의미

Jenkins

개요

Java Runtime Environment에서 동작한다. 다양한 플러그인들을 활용해서 각종 자동화 작업을 처리할 수 있다.

여러 플러그인

Credentials Plugin

젠킨스는 그냥 단지 서버일 뿐이기에 배포에 필요한 각종 리소스에 접근하기 위해서는 중요한 정보들을 저장하고 있어야 한다. 이런 중요한 정보들을 저장해주는 플러그인.

Docker Plugin & Docker Pipeline

Docker Agent를 사용하고 Jenkins에서 도커를 사용하기 위함.

Pipeline syntax

Environment

어떤 pipeline이나 stage scope의 환경변수 설정.

parameter

파이프라인 실행 시 파리미터 받음

Triggers

어떤 형태로 trigger되는지

When

언제 실행되는지

profile
Backend Developer

0개의 댓글

관련 채용 정보