젠킨스는 규모가 작은 프로젝트에서는 설정하는데 많은 리소스가 발생하기에 GithubActions가 툴로 합리적이다.
code를 커밋하고 빌드했을 때, 정상적으로 작동하는지 반복적으로 검증해 Application의 신뢰성을 높이는 작업.
CI를 마쳤으면 Application은 신뢰할 수 있는 상태를 의미한다.
빌드 -> 테스트 -> Jar 파일 생성 까지를 보통 CI 영역으로 여기며, 이후 패키징하고 배포는 CD 영역으로 본다.
여러 Job으로 구성되고, Event에 의해 트리거될 수 있는 자동화된 프로세스.
Workflow 파일은 YAML 파일로 작성되고, Github Repository의 .github/workflows 폴더 아래에 저장된다.
workflow를 trigger하는 특정 활동이나 규칙
예를 들면
i) 특정 branch로 push / PR하거나
ii) 특정 시간대에 반복하거나
iii) WebHook을 사용해 외부 이벤트에 의해 실행하거나 등등
Job은 여러 step으로 구성되고 가상 환경 인스턴스에서 실행된다.
다른 Job에 의존관계를 가질 수 있고, 독립적으로 병렬 실행도 가능하다.
Task들의 집합으로 커맨드를 날리거나 action을 수행할 수 있다.
Workflow의 가장 작은 블럭.
Job을 만들기 위해 step들을 연결할 수 있다.
Github Action Runner 어플리케이션이 설치된 머신으로 Workflow가 실행될 인스턴스
Github에서 호스팅해주는 Github-hosted runner와 직접 호스팅하는 self-hosted runner로 나뉜다.
name: helloGithubAction
on: [push]
jobs:
build:
runs-on: ununtu-latest
steps:
- uses:
- name:
run:
on은 event. 어떤 이벤트가 발생했을 때 이하 Job을 실행할 것인지 기술한다. 다중 이벤트는 []를 붙인다.
jobs가 workflow
내부에 다수의 job 가능하며, 병렬적으로 처리한다. 이러한 job을 실행하는 환경이 Runner
build는 작업단위
runs-on 어디에서 실행할 것인지
steps 이걸해야 실행가능해진다. 이게 없으면 아무것도 없는 OS에서 실행하게 된다.
uses 다른 사람이 만들어놓은 action을 쓸 때
사실상 .github/workflows/~~.yaml 이것들을 작성함을 의미
Java Runtime Environment에서 동작한다. 다양한 플러그인들을 활용해서 각종 자동화 작업을 처리할 수 있다.
젠킨스는 그냥 단지 서버일 뿐이기에 배포에 필요한 각종 리소스에 접근하기 위해서는 중요한 정보들을 저장하고 있어야 한다. 이런 중요한 정보들을 저장해주는 플러그인.
Docker Agent를 사용하고 Jenkins에서 도커를 사용하기 위함.
어떤 pipeline이나 stage scope의 환경변수 설정.
파이프라인 실행 시 파리미터 받음
어떤 형태로 trigger되는지
언제 실행되는지