Git GitHub GitHub Actions

GitHub Actions

왜 GitHub Actions을 써야하는 이유는 워크플로우를 자동화해준다. Image

다양한 CI/CD 툴스 랜드 스케이프

Jenkins, argo, cicle ci, Travis CI, CI CD, Bamboo TEKTON

깃허브 액션의 장점

시작하기 쉬워요

  • 깃허브만 있으면 깃허브 액션은 즉각 쓸 수 있다.
    • 컴퓨터에 어떤 것을 인스톨 하지 않아도 사용할 수 있다.
    • 세부적인 환경을 신경쓰지 않고 바로 사용할 수 있다.

Image

github 계정의 언어를 분석해 starter-workflow추천해 준다.

저렴한 가격

깃허브 마켓플레이스를 통해 찾을 수 있는 다양한 기능

  • 기업과 커뮤니티가 만든 몇천개가 넘는 액션 플러그인을 찾아볼 수 있다.
    • 보안을 향상시키는 액션도 있음.

GitOps 모델을 따른다.

  • 깃허브 액션은 깃허브 안에 통합 Image
    Image

깃허브 액션이란?

Image
깃허브 액션은 깃허브가 제공하는 워크플로우를 자동화 시켜주는 제품

  • 워크플로우는 YAML파일로 저장
  • 깃허브와 완벽하게 통합
  • 깃허브 이벤트에 반응
  • 라이브 로그와 실행을 시각해 시켜주는 기능
  • 워크플로우는 커뮤니티 활동을 통해 뒷바침
  • 깃허브가 제공하는 기본 설정 러너가 있지만 직접 설치하는 Self-hosted 러너도 만들 수 있음
  • 암호나 비밀값을 저장하는 서비스가 내장

깃허브 마켓플레이스

  • 오픈소스로 되어 있는 다양한 깃허브 액션 플러그인
  • 9000개 이상의 플러그인
  • 기업들이 직접 만든 플러그인
  • 액션들을 바로 사용 가능
  • 깃허브 에디터에 자동 설치

Xcode 와 관련한 Action 들

주요 컴포넌트

Image

아키텍처의 기본적인 것을 나타내는 이미지

  • 이벤트를 실행시키면 워크플로우가 시작된다.
  • 이 잡들은 각각 러너라고 해서, 서플리스 개념으로 일시적으로 시작되었다가 셧다운되는 에이전트 안에서 돌아간다.
  • 각 잡 안에서 여러가지 스탭을 정할 수 있다.
  • 제공되는 라이브 로그를 통해서 진행과정을 실시간으로 확인 할 수 있다.

기본 문법

name: Greet Everyone

on:                                               # 이벤트
  push: 

jobs:                                             # Job 
  lint:
    name: Lint Code Base

    runs-on: ubuntu-latest                        # 러너

    steps:                                        # 스탭
    
      - uses: actions/checkout@v2                 # 액션
      
      - uses: actions/checkout@v3
      env:
        GITHUB_TOKEN: \{\{ secrets.GITHUB_TOKEN \}}   # 시크릿

워크플로우 스타터

깃허브 액션에 내재되어 있는 기능으로 몇번의 클릭으로 스크립트를 자동으로 생성 할 수 있음

  • 상당수 프로그래밍 언어와 프레임워크의 통합
  • 깃허브가 코드를 해석한 후 선택한 프로그래밍 언어와 프레임워크를 인식하고 자동으로 맞는 워크플로우를 추천
  • GHES 3.x: 다양한 스타터 워크플로우 릴리즈를 통해 같이 제공

스케쥴링

name: cron

on:
  schedule:
    # 실제 스케쥴 작업이 시작될 cron을 등록하면 됩니다.
    # 크론은 https://crontab.guru/ 여기서 확인하면 좋을 것 같습니다.
    # 이 크론은 평일 5시 (한국시간 14시)에 실행됩니다.
    - cron: '0 5 * * 1-5'

Events that trigger workflows

  • workflows 의 성공/실패여부를 JobContext로 판단 가능

How to Automate XCTests With GitHub Actions

How to Automate XCTests With GitHub Actions
Learn GitHub Actions
[CI/CD] Github Actions 를 이용한 xcode build & test 자동화

참고

GitHub Actions로 수행하는 CI/CD DevOps, 리포트 만들기, 메시지 보내기 등의 놀라운 작업들

댓글남기기