Hyeyeon blog

[Android] Github Actions으로 Android CI 구현하기 본문

개발/Android

[Android] Github Actions으로 Android CI 구현하기

Hyeyeon.P 2023. 1. 4. 05:05
반응형

1. Docker Desktop 다운로드 및 설치 

Docker 홈페이지 에서 Docker Desktop을 다운받아 설치합니다.

 

Docker: Accelerated, Containerized Application Development

Docker is a platform designed to help developers build, share, and run modern applications. We handle the tedious setup, so you can focus on the code.

www.docker.com

설치 후 Docker Desktop을 실행하면 아직 컨테이너가 없기 때문에 아래와 같은 화면이 표시됩니다.

2. "act" 설치 

터미널로 아래의 명령어를 실행하여 act를 설치합니다. 

$ brew install act

3. Github Repository의 .github/workflows에 .yml 파일 추가 

방법 1. 직접 파일 생성하기 

방법 2. Github Repository의 Actions에서 android 템플릿을 검색해서 사용

     1) Repository의 "Actions" 메뉴를 클릭합니다.

     2) 검색창에 "android" 를 검색합니다. 

     3) 등록하려는 workflow의 "Cofigure"를 클릭하면 해당 Repository에 .yml을 등록하는 에디터로 전환됩니다.
  내용을 적절히 수정한 후 Commit 합니다. 

  🔎 android.yml 들여다보기

# workflow 이름 
name: Android CI

on:
  # master 브랜치에 push 시 수행 
  push:
    branches: [ "master" ]
    
  # master 브랜치에 pull request 시 수행 
  pull_request:
    branches: [ "master" ]

# workflow의 실행 동작 (각 job은 병렬로 실행됨)
jobs:
  build: # job 이름 (build-job 등 원하는 대로 변경) 
    # 어느 환경에서 돌아갈 지 지정   
    runs-on: ubuntu-latest

    # 수행할 동작 (순서대로 수행) 
    steps:
    - uses: actions/checkout@v3
    - name: set up JDK 11
      uses: actions/setup-java@v3
      with:
        java-version: '11'
        distribution: 'temurin'
        cache: gradle

    - name: Grant execute permission for gradlew
      run: chmod +x gradlew
    - name: Build with Gradle
      run: ./gradlew buildf

4. act 실행 

방법 1. Artifact 사용 

Artifact란, workflow가 수행하며 생성한 파일을 나타내며 --artifact-server-path 옵션으로 act와 연결합니다. 

     1) 로컬의 원하는 위치에 actifacts 폴더를 생성합니다. 

$ mkdir /tmp/artifacts

     2)  actifacts 폴더를 연결하여 act를 실행합니다. 

Git이 연결된 프로젝트 폴더의 최상단로 이동하여 아래의 명령어를 입력합니다. 

$ act --artifact-server-path /tmp/artifacts

방법 2. Artifact 없이 실행하기

$ act

5. 실행 결과

act를 실행한 후 Docker Desktop에서 컨테이너가 생성된 것을 확인할 수 있습니다.  
workflow는 생성된 Docker 컨테이너에서 실행됩니다. 

android.yml 내용에 따라 master 브랜치로 푸시하면 workflow가 실행됩니다.  
workflow의 이름(커밋 메시지)을 클릭하면 상세 페이지로 이동합니다. 

worflow의 상세 페이지에서 수행한 Job의 상세 내용을 확인할 수 있습니다. 

 

 

728x90
Comments