Overview
- Gitea를 통한 CI 파이프라인 구축 (with Docker Hub)
Prerequisite
Action Runner 생성
// Create Actions Runner Config
// act_runner 버전은 현재 기준으로 0.2.10이 최신입니다.
$ docker run --entrypoint="" --rm -it gitea/act_runner:0.2.10 act_runner generate-config > config.yaml
// Create Actions Runner
// ${INSTANCE_URL} = http://xx.xx.xx.xx:3000/
// ${REGISTRATION_TOKEN} = Gitea > 설정 > Actions > Runners > Create new Runner > Token 확인
// ${RUNNER_NAME} = 이름 설정
// ${RUNNER_LABELS} = 라벨 설정
$ vi runner-compose.yaml
version: "3.8"
services:
runner:
image: gitea/act_runner:0.2.10
environment:
CONFIG_FILE: /config.yaml
GITEA_INSTANCE_URL: "${INSTANCE_URL}"
GITEA_RUNNER_REGISTRATION_TOKEN: "${REGISTRATION_TOKEN}"
GITEA_RUNNER_NAME: "${RUNNER_NAME}"
GITEA_RUNNER_LABELS: "${RUNNER_LABELS}"
volumes:
- ./config.yaml:/config.yaml
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock
$ docker-compose -f runner-compose.yaml up -d
// Container 이미지 중 gitea/act_runner:0.2.10이 실행되어있는 것을 확인
$ docker ps
Gitea UI에서 그림과 같이 나온다면 성공적으로 Runner를 생성한 것 입니다.
테스트 애플리케이션
// 테스트할 간단한 Spring Boot 코드
$ git clone https://github.com/hyunkwanko/demo.git
// .git 파일 제거
$ cd demo && rm -rf .git
// Gitea 저장소 생성 후 Push
// Branch는 Master로 해주세요.
Docker Hub 연동
// Secret 키 등록
DOCKERHUB_USERNAME, DOCKERHUB_TOKEN 등록
Gitea CI
// demo 애플리케이션 진입
$ cd demo
// Action Runner는 .gitea 디렉토리를 바라보고 있다.
$ mkdir -p ./.gitea/workflows && cd ./.gitea/workflows
// CI 파이프라인 구축
$ vi gitea-ci.yaml
name: Build And Test
run-name: ${{ gitea.actor }} is runs ci pipeline
on:
push:
branches:
- master
jobs:
Gitea-Docker-Build-Push:
runs-on: ubuntu-22.04
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
push: true
tags: {계정명}/demo:${{ gitea.run_number }}
$ git push 후 완료
// CI 파이프라인은 다음과 같습니다.
1. Git의 master 브랜치에 push 하는것이 트리거가 되어 Action Runner가 동작을 시작합니다.
2. Check out repository code
3. Login to DockerHub
4. Build and push
마무리
Gitea와 Docker Hub를 통한 CI 파이프라인 구축을 진행하였습니다.
다음 글에서 이어서 ArgoCD를 통한 CD 파이프라인 구축을 진행하도록 하겠습니다. 감사합니다.
'Git' 카테고리의 다른 글
[Spring] 소나큐브(SonarQube) CI 파이프라인 구축 (with Gitea) (0) | 2024.07.05 |
---|---|
[Gitea] Gitea를 통한 CI 파이프라인 구축 (with Nexus) (0) | 2024.06.14 |
[Git] Docker를 통한 Gitea 구축하기(GitLab과 차이) (0) | 2024.05.31 |