// 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 연동
로그인 후 오른쪽 상단 계정 클릭 > Account Settings 클릭왼쪽 탭의 Security 클릭 > New Access Token 생성Gitea > Settings > Actions > SecretsSecret 키 생성
// 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 > Actions 탭 확인Docker Hub에 Docker Image 저장 확인
마무리
Gitea와 Docker Hub를 통한 CI 파이프라인 구축을 진행하였습니다. 다음 글에서 이어서 ArgoCD를 통한 CD 파이프라인 구축을 진행하도록 하겠습니다. 감사합니다.