본문 바로가기
개발

[github action] create-release, upload-release-asset - warning 제거하기

by jonghoonpark 2023. 5. 19.

의도치 않게 어제 작성한 Github Action을 이용하여 자동으로 signed apk 빌드하기 (23년 5월 기준) 에서 이어지는 글을 작성하게 되었다.

 

어제 workflow를 구축하고 잘 릴리즈가 되고 있었다.
근데 다시 한 번 확인해 보니 빌드과정중에 warning이 뜨는걸 볼 수 있었고
개인적으로 평소에 deprecated 된 걸 최대한 안쓰려 하는 편이라 저걸 제거해 봐야 겠다는 생각이 들었다.

 

Node.js 12 actions are deprecated. Please update the following actions to use Node.js 16: actions/create-release@v1, actions/upload-release-asset@v1.0.1.

 

우선 actions/create-release@v1, actions/upload-release-asset@v1.0.1 는 현재 repository가 readonly 상태이다.

그러면 어떻게 대체할 수 있을까를 확인해봐야 하는데 repository를 보면 대체 할 수 있는 레포지토리 들을 소개해 주고 있다는 것을 확인할 수 있다.

이 중 softprops/action-gh-release 를 선택하였는데 그 이유는 create-release의 기능과 upload-release-asset의 기능 두 가지를 모두 대체 가능하며 가장 많은 사람들이 사용하고 있었기 때문이다.

 

이에 따라 바뀐 release-apk.yml 은 다음과 같다.

name: release apk

on:
  push:
    branches:
      - main

jobs:
  apk:
    name: Generate and Release APK
    runs-on: ubuntu-latest
    permissions: write-all
    steps:
      - name: Checkout
        uses: actions/checkout@v1
      - name: Setup JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'temurin'
      - name: Generate Keystore file from Github Secrets
        run: |
          echo "${{ secrets.APP_KEYSTORE_BASE64 }}" > ./keystore.b64
          base64 -d -i ./keystore.b64 > ./${{ secrets.KEYFILE }}
          cp ./${{ secrets.KEYFILE }} ./app/${{ secrets.KEYFILE }}
      - name: Build Signed APK
        run: |
          bash ./gradlew assembleRelease \
            -Pandroid.injected.signing.store.file=${{ secrets.KEYFILE }} \
            -Pandroid.injected.signing.store.password=${{ secrets.STORE_PASSWORD }} \
            -Pandroid.injected.signing.key.alias=${{ secrets.KEY_ALIAS }} \
            -Pandroid.injected.signing.key.password=${{ secrets.KEY_PASSWORD }} \
            --stacktrace
      - name: set now
        run: |
          echo "now=v$(date +'%Y.%m.%d.%H%M')" >> $GITHUB_ENV
      - name: Create Release
        id: create_release
        uses: softprops/action-gh-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ env.now }}
          files: |
            app/build/outputs/apk/release/app-release.apk

job을 하나로 통일해서 처리해 주었다.


이렇게 수정하면 아래 아무런 warning 없이 깔끔하게 성공하는 것을 확인 할 수 있다.

댓글