plzy의 개발 블로그

Github 꿀같은 .github 속성에 대해 알아보자. 본문

카테고리 없음

Github 꿀같은 .github 속성에 대해 알아보자.

plzyhappy 2022. 5. 11. 16:37

협업을 하던중 merge후 자동으로 branch를 삭제하는 기능이 있었으면 좋겠다고 생각하던 찰나

같이 개발자는 팀원이 .gihub에 .yml를 추가하면 된다고 했다.

이렇게 편리한 기능이 있었다니. 어떤것들이 있는지 알아보도록하겠다.

merge후 branch를 자동으로 삭제해주기.

이 기능을 사용하려면 .github에 delete-merged-branch-config.yml를 추가해주면 된다.

exclude:
  - main
  - develop
  - release
delete_closed_pr: true

이 코드를 추가해주면 .merge 시 자동으로 branch를 삭제해 준다.

pr시 자동으로 reviewr 추가해주기

이 기능을 사용할려면 .github에 CODEOWNERS 를 추가해주면 된다.

/src/ @ckrudals @patrick0422

@뒤에 리뷰어 이름을 붙여주면 된다.

github action ci 사용하기

이 기능을 사용할려면 workflow안에 android.yml를 추가해주면 된다.

name: Android CI
on:
  pull_request:
    branches: [ develop ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Setup JDK 11
        uses: actions/setup-java@v3
        with:
          distribution: "zulu"
          java-version: 11

      - name: Setup Android SDK
        uses: android-actions/setup-android@v2

      - name: Cache Gradle packages
        uses: actions/cache@v2
        with:
          path: |
            ~/.gradle/caches
            ~/.gradle/wrapper
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/buildSrc/**/*.kt') }}
          restore-keys: |
            ${{ runner.os }}-gradle-
      - name: Grant execute permission for gradlew
        run: chmod +x gradlew

      - name: Decrypt secrets.tar.gpg
        run: gpg --quiet --batch --yes --always-trust --decrypt --passphrase="$SECRET_GPG_PASSWORD" --output secrets.tar secrets.tar.gpg
        env:
          SECRET_GPG_PASSWORD: ${{ secrets.SECRET_GPG_PASSWORD }}

      - name: Unzip secrets.tar
        run: tar xvf secrets.tar

      - name: Run ktlint
        run: ./gradlew ktlintCheck

      - name: Run detekt
        run: ./gradlew detekt

      - name: Run unit tests
        run: ./gradlew testDebugUnitTest

      - name: Build assemble release apk
        run: ./gradlew assembleRelease

      - name: Create android test report
        uses: asadmansr/android-test-report-action@v1.2.0
        if: ${{ always() }}

      - name: Build assemble release apk
        run: ./gradlew assembleRelease  

추가사항이 있으면 업데이트 해야겠다.