Github Actions Self-Hosted-Runner

2023. 5. 24. 11:52·⚙️ Ops/CI & CD

Self Hosted Runner

Self Hosted Runner를 사용하는 이유는 Private Repo의 경우 빌드 시 분당 요금이 나가기 때문에

Github Actions의 Runner를 로컬에 설치해 로컬에서 Runner를 돌리는 것입니다.

그 이유는 Private Repofkeh Runner를 로컬로 돌리면 무료로 Github Actions를 이용 가능합니다.


Github Repository Setting -> Actions -> Runner -> New Self-Hosted Runner 클릭

설정하고자 하는 로컬 머신에 해당되는 OS를 선택하면 OS 별로 설정하는 방법이 Download와 Configure란에 설명되어 있습니다.


Mac 기준

Self-Hosted-Runner로 등록하고자 하는 기기에서 폴더 생성

mkdir actions-runner && cd actions-runner

가장 최신의 Runner 패키지 다운로드

curl -o actions-runner-osx-arm64-2.304.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.304.0/actions-runner-osx-arm64-2.304.0.tar.gz

Hash 유효성 검사 (선택사항)

echo "789fc57af2f0819d470fcc447e2970f201cfc8aa1d803d4e5b748ec4c5d10db8  actions-runner-osx-arm64-2.304.0.tar.gz" | shasum -a 256 -c

다운로드 받은 압축파일 압축해제

tar xzf ./actions-runner-osx-arm64-2.304.0.tar.gz

저장소 연결

Github가 로컬머신에 접속하는 방식이 아닌 로컬머신에서 Github 저장소로 접근하기 떄문에 주소와 토큰을 설정해야 합니다.

토큰의 경우 개인 계정 - Settings - Developer Setting - Personal Access Tokens - Generate New Token에서

admin:enterprise - manage_runners:enterprise 로 발급받을 수 있습니다.

./config.sh --url [저장소 주소] --token [토큰값]

# 예시 
./config.sh --url https://github.com/spacedustz/Query-Builder --token WDFJ789WFJW7889JFJWJF

토큰과 Repository 주소를 등록하면 이 창이 뜨게 됩니다.

  1. Enter the name of runner group to add this runner to -> Enter 입력 (Default)
  2. Enter the name of runner -> Runner 이름 지정
  3. This Runner will have the following labels -> Enter 입력 (라벨 지정 X)
  4. Enter name of work folder -> Runner 폴더명 지정

정상적으로 Github에 등록이 되면 Github의 Runners에서도 목록을 확인할 수 있습니다.

등록한 Self-Hosted-Runner를 활성화시키기 위해서는 해당 로컬 기기의 Actions-Runner 폴더에서 run.sh 프로그램을 실행시킵니다.

./run.sh

run 스크립트를 실행하고 Runner가 Idling 중인 상태

img


그 후, Spring Boot Server 내부의 Yaml Work Flow 파일 안에 Self-Hosted-Runner를 통해 빌드되도록 설정해주면 됩니다.

runs on: self-hosted

Push를 하고 Self Hosted Runner가 잘 동작중인 모습

img


Self-Hosted-Runner가 만약 여러개인 경우

runs on: [ self-hosted, linux, x64 ]
저작자표시 (새창열림)

'⚙️ Ops > CI & CD' 카테고리의 다른 글

[Jenkins] Jenkins 기본 설정 (On Container)  (0) 2023.05.26
[Jenkins] AWS LightSail 설정  (0) 2023.05.26
Work flow Commit Message Filter  (0) 2023.05.24
Compress/Upload Error Report & Cache Gradle  (1) 2023.05.23
CI & CD Tool 선정  (0) 2023.05.23
'⚙️ Ops/CI & CD' 카테고리의 다른 글
  • [Jenkins] Jenkins 기본 설정 (On Container)
  • [Jenkins] AWS LightSail 설정
  • Work flow Commit Message Filter
  • Compress/Upload Error Report & Cache Gradle
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      React #Markdown
      GStreamer #Pipeline
      Lock #Thread #Concurrency
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    Github Actions Self-Hosted-Runner
    상단으로

    티스토리툴바