익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
GitHub Actions
편집하기 (부분)
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
==워크플로 문법과 구조== GitHub Actions의 워크플로 파일은 `.github/workflows/` 디렉터리에 위치하며, YAML 문법으로 작성된다. 워크플로는 크게 다음과 같은 구조로 이루어진다: *name: 워크플로의 이름 * on: 워크플로를 트리거하는 이벤트 (예: push, pull_request, schedule 등) *jobs: 실행할 작업(Job)들의 집합 예시:<syntaxhighlight lang="yaml"> name: Example Workflow on: push: branches: [ "main" ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run test run: echo "Hello, world" </syntaxhighlight> === 트리거(on:) === 워크플로를 어떤 이벤트에서 실행할지 정의한다. 주요 이벤트는 다음과 같다: * push: 특정 브랜치로 푸시될 때 실행 *pull_request: PR 생성 또는 변경 시 실행 *schedule: cron 표현식 기반의 정기 실행 *workflow_dispatch: 수동 실행을 허용 (UI에서 버튼 클릭) *repository_dispatch: 외부 시스템에서 API 호출로 실행 복수 이벤트를 조합할 수도 있다. === 잡(Jobs) === jobs 아래에는 하나 이상의 작업 단위(Job)가 정의되며, 각 job은 독립적인 실행 환경에서 병렬 실행된다. Job 내부에는 다음을 포함할 수 있다: *runs-on: 해당 작업을 실행할 러너 환경 (예: ubuntu-latest) *needs: 다른 job이 완료된 후 실행되도록 설정 * steps: 각 job에서 실행될 구체적인 명령 또는 액션 === 매트릭스 전략 === matrix 키워드를 사용하면 하나의 job을 다양한 변수 조합으로 반복 실행할 수 있다. 주로 Python, Node.js 등 다양한 런타임 버전에서 테스트를 수행할 때 활용된다.<syntaxhighlight lang="yaml"> strategy: matrix: python-version: [3.9, 3.10, 3.11] </syntaxhighlight> === 러너(Runners) === 러너는 워크플로를 실제로 실행하는 머신이다. GitHub에서는 다음을 지원한다: *GitHub 호스팅 러너: GitHub에서 제공하는 가상 머신 * 자체 호스팅 러너: 사용자가 직접 구성한 서버 또는 환경 러너는 매 실행마다 클린 환경으로 시작되며, 각 job은 독립적으로 수행된다. === 스텝(Steps) === 각 job은 여러 개의 step으로 구성되며, step은 순차적으로 실행된다. step은 다음 중 하나를 실행할 수 있다: *run: 셸 명령 실행 *uses: 기존에 등록된 액션을 불러와 실행 *with / env: 액션 또는 명령 실행 시 사용할 인자 또는 환경 변수 설정 예:<syntaxhighlight lang="yaml"> - name: Run tests run: pytest env: DATABASE_URL: postgresql://localhost/test </syntaxhighlight> === 액션(Actions) === GitHub Actions에서는 steps에서 `uses` 키워드를 사용해 재사용 가능한 액션을 호출할 수 있다. *actions/checkout: 저장소 코드를 체크아웃 *actions/setup-python: 파이썬 런타임 설정 *codecov/codecov-action: 테스트 커버리지 업로드 마켓플레이스에서 수천 개의 액션을 제공하며, 사용자가 직접 정의한 커스텀 액션도 사용할 수 있다. === 환경 변수와 시크릿 === 워크플로에서 민감한 정보를 다뤄야 할 경우, GitHub의 Secrets 기능을 활용한다. *`env:`를 통해 환경 변수를 직접 설정하거나 *`secrets.MY_SECRET` 형식으로 GitHub 저장소 설정에 등록된 시크릿 값을 참조할 수 있다 예:<syntaxhighlight lang="yaml"> env: API_KEY: ${{ secrets.API_KEY }} </syntaxhighlight> === 조건 실행 (조건문) === 워크플로, job, step 단위에서 조건을 설정할 수 있다. 예:<syntaxhighlight lang="yaml"> if: github.event_name == 'push' </syntaxhighlight>또는 테스트가 실패해도 다음 단계를 실행하게 하고 싶을 때:<syntaxhighlight lang="yaml"> continue-on-error: true </syntaxhighlight> === 재사용 가능한 워크플로 === workflow_call 이벤트를 사용하면 다른 워크플로를 호출할 수 있다. 예를 들어 공통 빌드, 배포, 테스트 단계를 재사용 워크플로로 만들어 둘 수 있다.<syntaxhighlight lang="yaml"> on: workflow_call: inputs: app_name: required: true type: string </syntaxhighlight> === 워크플로 디버깅 === 실행 로그는 GitHub Actions UI에서 확인할 수 있으며, 각 step의 실행 결과 및 출력이 기록된다. `run: echo` 등을 활용해 중간 변수나 상태를 출력하며 디버깅할 수 있다.
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록