CI\CD/GitHub Actions

    [GitHub Actions] Push 할 때 마다 테스트 실행하는 Workflow 만들기

    이번 시간의 목표 안드로이드에서 저장소에 push가 되었을 때, Test를 자동으로 돌아가도록 만들어 Test가 성공했는지 확인한다. 간단한 테스트 만들기 GitHub Action에서 테스트를 돌리기 위해 app/src/test/java/com/lecture/githubaction 경로에 GitHubActionTest.kt 파일을 만든다. 이 테스트는 아래와 같이 하나는 성공(testSuccess)하고 하나는 실패(testFail)하도록 만든다. package com.lecture.githubaction import org.junit.Test internal class GitHubActionTest { @Test fun testSuccess() { assert(true) } @Test fun testFa..

    [GitHub Actions] Action이란 무엇인가? checkout 사용해 코드 내려받기

    Action이란 무엇인가? Action이란 GitHub Actions에서 미리 정의된 명령어의 집합이다. Action은 복잡하고 자주 반복되는 작업을 간단하게 수행할 수 있도록 해준다. checkout Action으로 코드 내려받기 예를 들어 GitHub 저장소에서 코드를 내려받아 실행 중인 Machine에 저장하는 작업은 간단해보이지만 매우 복잡하다. 따라서 만약 이 작업을 이전 글에서 다룬 run: 블록을 통해 커멘드 라인으로 실행해야 한다면 매우 여러 줄의 코드를 써야될 것이다. 하지만 uses: 블록으로 Action을 사용하면 단 한 줄의 step으로 모든 checkout을 수행한다. 뒤에 붙은 @v3은 checkout Action의 세번째 버전을 사용한다는 것이다. * 글의 작성 시점을 기준으로..

    [GitHub Action] 첫 Workflow 만들고 실행하기

    이전까지 내용 요약 이전까지 name:을 사용해 Work Flow의 이름을 정하고, on:을 사용해 Work Flow의 Trigger Event를 설정했으며, jobs: 에 first-job이라 불리는 첫 Job을 설정하고 이 Job의 runs-on: 에 ubuntu-latest를 설정해 GitHub Action에서 제공하는 가장 최신 우분투 버전에서 실행되도록 만들었다. # WorkFlow의 이름 설정 name: First Action # on: Work Flow가 언제 실행되어야 하는지 설정 # workflow_dispatch : 유저가 직접 실행하도록 설정하는 옵션 on: workflow_dispatch #jobs: workflow에 포함된 job들을 정의 jobs: #[Job 이름]: 으로 Job..

    GitHub Action에서 사용할 수 있는 Virtual Machine 종류와 사양, 미리 설치된 소프트 웨어 알아보기 : runs-on에 Runner 설정하기

    GitHub에서 호스팅하는 Runner GitHub Action을 사용하는 기업들에서는 보통 직접 Runner을 만들어서 사용하지만, 일반적인 사용자는 그런 환경을 만들기 쉽지 않다. 따라서 보통 기본으로 제공되는 Virtual Machine을 사용한다. GitHub Action을 서비스하는 GitHub는 GitHub Actions를 위해 다양한 Virtual Machine을 제공 한다. 사용할 수 있는 Runner는 다양한데 글을 쓰는 날짜를 기준으로 아래와 같은 Runner들을 사용할 수 있다. Deprecated된 것들은 제외했다. Runner image YAML workflow label Notes Windows Server 2022 windows-latest or windows-2022 The ..

    GitHub Actions의 세가지 구성요소 : Workflows, Jobs, Steps

    GitHub Action의 세가지 구성요소 GitHub Actions는 Workflow, Job, Step 세가지 구성요소로 이루어진다. Step은 Job에 포함되고, Job은 Workflow에 포함된다. 즉, Workflow가 가장 큰 작업 단위이고, 그 아래 Job이 있고, Job 아래에는 Step이 있다. 이를 그림으로 나타내면 아래와 같다. 이 세가지를 잘 활용하면, 많은 작업들을 자동화 할 수 있다. 이제 이들 각각이 무엇인지 알아보자. Workflows Workflow는 GitHub Repository에 들어가는 작업 단위이다. 보통 Repository의 /.github/workflows/ 경로에 존재하며, 확장자는 .yml 이다. 예를 들어 위의 그림에서는 first_action.yml이라는..