Overview
- Gitea를 통한 CI 파이프라인 구축 (with Nexus)
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로 해주세요.
Nexus 계정 등록
// Secret 키 등록 (Nexus 계정)
USERID, PASSWORD 등록
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 Nexus
run: |
docker login nexus-docker.{Public IP}.sslip.io \
-u ${{ secrets.USERID }} \
-p ${{ secrets.PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
push: true
tags: nexus-docker.{Public IP}.sslip.io/demo:1.0.${{ gitea.run_number }}
$ git push 후 완료
// CI 파이프라인은 다음과 같습니다.
1. Git의 master 브랜치에 push 하는것이 트리거가 되어 Action Runner가 동작을 시작합니다.
2. Check out repository code
3. Login to Docker
4. Build and push (Nexus)
마무리
Gitea와 Nexus를 통한 CI 파이프라인 구축을 진행하였습니다. ArgoCD를 통한 CD 파이프라인 구축은 [Kubernetes] Gitea와 ArgoCD를 통한 CD 파이프라인 구축에서 확인해주시길 바랍니다. 감사합니다.
'Git' 카테고리의 다른 글
[Spring] 소나큐브(SonarQube) CI 파이프라인 구축 (with Gitea) (0) | 2024.07.05 |
---|---|
[Gitea] Gitea를 통한 CI 파이프라인 구축 (with Docker Hub) (0) | 2024.06.05 |
[Git] Docker를 통한 Gitea 구축하기(GitLab과 차이) (0) | 2024.05.31 |