[TIL] PR 시 Github Action을 이용한 빌드 테스트

heunghan·2020년 7월 30일
1

Android 단순 기록

목록 보기
2/2

Github Action 추가

Github PR 등록하면 Build 를 돌려 문제가 없는지 확인하는 코드를 추가하였다.

name: Build Test

on:
  pull_request:
    types: [opened, synchronize, reopened, edited, ready_for_review, review_requested]

jobs:
  build:

    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Cache Gradle packages
        uses: actions/cache@v2
        with:
          path: |
            ~/.gradle/caches
            ~/.gradle/wrapper
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
          restore-keys: |
            ${{ runner.os }}-gradle-
      - name: Install NDK
        run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;20.0.5594570"
      - name: Build with Gradle
        run: ./gradlew build

./gradlew build 만 넣고 돌릴 경우 NDK 버전관련 에러가 발생하여 고생했었는데,

      - name: Install NDK
        run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;20.0.5594570"

위의 코드를 추가하여 ndk 설치를 하면 해결된다.

.githbu/workflows/ 경로에 .yml 파일을 만들어 추가하면 PR 등록 시 Build Test가 돌아가는 것을 확인할 수 있다.

Details 버튼을 통해 상세화면으로 이동 가능하다.

토글 버튼을 활용하면 현재 상태 로그들을 확인 가능하다.

Slack 연동

marketplace의 action-slack-notify를 활용하여
fail 했을 경우 slack으로 메세지를 보내는 것도 추가하였다.

      - name: Slack Notify
        if: failure()
        uses: rtCamp/action-slack-notify@v2.1.0
        env:
          SLACK_CHANNEL: group-dev
          SLACK_COLOR: '#FF2D00'
          SLACK_USERNAME: 'Github Action'
          SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
          SLACK_TITLE: Build Failure - ${{ github.event.pull_request.title }}
          SLACK_MESSAGE: PR Url - ${{ github.event.pull_request.url }}
          SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}

만약 failure 이 아니라 항상 보내고 싶다면, if 문을 없애면 되고,
SLACK_COLOR를 '${{ job.status }}' === 'success' ? 를 활용하면 적절히 쓸 수 있을 것이다.
secrets는 Settings > Secrets에서 등록 가능하다.

profile
Digital Nomad를 꿈꾸는 Android Engineer

0개의 댓글