GitHub 운영 섹션이 있는 현대 안드로이드 애플리케이션 배포 - 나
사진은 Bernd Dittrich 에서 Unsplash
얘들아, 얘들아.👋우선, 나는 모두가 평안하기를 바란다.이제 구축/배포 주기에 대한 몇 가지 질문을 드리겠습니다.
현대 안드로이드 버전과 GitHub 조작에 관한 두 부분으로 구성된 시리즈입니다.GitHub 작업을 통해 애플리케이션 배포를 자동화할 수 있습니다.시작합시다.
This blog assumes that you are well versed with GitHub Actions. If not then I highly recommend exploring it and come back.
이 부분에서 우리는 내부 응용 프로그램을 통해 내부 응용 프로그램을 공유하고 자동화하는 방법을 연구할 것이다.
내부 애플리케이션 공유를 통한 내부 애플리케이션 배포 자동화
Internal App Sharing는 게임 컨트롤러의 우수한 도구로 QA와 다른 이해관계자와 내부에서 aab/apk를 공유할 수 있습니다.BookMyShow 에서는 QA와 기능을 공유하여 구축하고 통합합니다.전체 체험은playstore에서 프로그램을 설치하는 것처럼 좋으며, 단지 화이트 리스트의 전자메일에만 한정됩니다.더 많은 사이드 캐리어가 필요하지 않습니다. 만약 이것이 충분하지 않다면, 작업 흐름에 통합할 수도 있습니다. apk/aab를 내부 응용 프로그램 공유(IAS)에 업로드한 후에 여가 시간에 공유할 수도 있습니다.
고위층에서 볼 때, 우리는 이 점을 주목하고 있다
구축 --> aab/apk를 IAS--> 공유 링크에 업로드합니다. 이전부터 시작합니다.
우리의 업무 흐름을 구축합시다.
워크플로우를 트리거할 이벤트를 결정해야 합니다.특정 지점에 대한 푸시 이벤트 또는 some other event 일 수 있습니다.대부분의 경우 공유 내부에서 QA로 구축된 지점의 푸시 이벤트입니다.우선 그것을 설정합시다.
name: Build, Upload to IAS and share on slack.
on:
push:
branches:
# Specify branch from where you are sharing build
- [branch_name]
이제 우리가 앞에서 토론한 구축 절차를 어떻게 설정하는지 봅시다.
jobs:
build:
name: Building app
runs-on: ubuntu-latest
steps:
- name: Checking out branch
uses: actions/checkout@v2
with:
# Specify branch from where you are sharing build
ref: '[branch_name]'
- name: Settting up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Runing build command
# Run your own gradle command to generate build.
run: ./gradlew bundleRelease
- name: Uploading build
uses: actions/upload-artifact@v2
with:
name: bundle
path: app/build/outputs/bundle/release/app-release.aab
보시다시피 구축 작업은 네 가지 임무가 있습니다.우리가 지정한 바와 같이, 이 작업은 Linux 기계의 실례에서 실행된다.새 기계에 지점을 서명하는 것처럼, 여기에서 같은 방식으로 항목을 설정할 때, 구축하고자 하는 곳에서 지점을 서명해야 한다.첫 번째 단계는 사용자 정의 작업actions/checkout@v2
을 사용하여 완료합니다.다음은 프로젝트를 컴파일하기 위해 JDK를 설정해야 합니다.두 번째 단계는 사용자 정의 작업actions/setup-java@v1
을 사용하여 완료합니다.
현재 우리의 가상 Linux 실례는 모든 설정을 준비했다.Gradle 명령을 실행하여bundle를 만들 때입니다. (bundle를 사용하지 않으면apk를 만들 수도 있습니다.)다음 단계는 이렇게 하고 묶음 파일을 만드는 것이다.마지막으로, 다음 작업에서 잠시 후에 접근할 수 있도록 생성된 패키지를 업로드합니다. 나중에 인용할 수 있도록 "bundle"이라는 부품의 이름을 입력하십시오.이 밖에 업로드할 패키지의 파일 경로도 언급했다.만약 당신이 작업을 뛰어넘어 파일을 공유하고 싶다면, 이것이 바로 당신이 실현할 수 있는 방식이다.사용자 지정 작업actions/upload-artifact@v2
을 사용합니다.
좋습니다. 우리는 이미 절반의 작업 절차를 완성했습니다. 지금까지 우리는 다음 작업에서 그것을 사용할 수 있도록 공작물에 우리의 가방을 구축하고 저장하는 데 성공했습니다.
다음 일을 계속합시다. 하지만 그 전에...
나는 KitKat가 나에게 돈을 지불하지 않았다고 보증한다🤞
준비했어그럼 우리 계속합시다!
마지막 작업이 상당히 복잡하기 때문에, 우리는 점차 분해할 것이다.
각 작업은 Linux 기기의 다양한 인스턴스에서 실행됩니다.우리가 이전에 작업을 설정한 방식과 같이 이 작업도 Linux 실례에서 실행된다.
아래 세 번째 줄의 특수한'요요'라벨을 주의하십시오.이 작업은 지정된 이름에 의존한다는 것을 GitHub에 알려줍니다.우리의 예에서, 그것은 구축 작업이다.
우리의 최종 업무는 세 가지 절차가 있다.우선, 우리는 이전 작업의 마지막 단계에 저장된 구축을 다운로드합니다.우리는'bundle'라는 이름을 통해 그것을 다운로드하려고 하는 공작물을 가리킨다.
upload_to_internal_app_sharing:
name: Uploading build to IAS
needs: build
runs-on: ubuntu-latest
steps:
- name: Downloading build
uses: actions/download-artifact@v2
with:
name: bundle
일단 우리가 묶음이 생기면, 그것을 내부 응용 프로그램에 올려 공유할 때가 된다.그 밖에 파렴치한 플러그를 할 때가 되었다🙈
BookMyShow의 동료들과 사용자 정의 GitHub 작업을 작성하여 구축을 내부 응용 프로그램에 업로드하여 공유할 수 있도록 합니다.자세한 내용👇
사가르 비라디아
/
내부 애플리케이션 공유 작업
GitHub에서 aab/apk를 Play 콘솔에 업로드하는 내부 애플리케이션 공유 작업
지금까지 우리가 본 다른 사용자 정의 작업과 같이, 우리는 그것을 사용하여 구축을 내부 응용 프로그램에 업로드하여 공유할 것이다.
이 작업은 구축을 IAS에 업로드하려면 세 가지가 필요합니다.
name: Build, Upload to IAS and share on slack.
on:
push:
branches:
# Specify branch from where you are sharing build
- [branch_name]
jobs:
build:
name: Building app
runs-on: ubuntu-latest
steps:
- name: Checking out branch
uses: actions/checkout@v2
with:
# Specify branch from where you are sharing build
ref: '[branch_name]'
- name: Settting up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Runing build command
# Run your own gradle command to generate build.
run: ./gradlew bundleRelease
- name: Uploading build
uses: actions/upload-artifact@v2
with:
name: bundle
path: app/build/outputs/bundle/release/app-release.aab
upload_to_internal_app_sharing:
name: Uploading build to IAS
needs: build
runs-on: ubuntu-latest
steps:
- name: Downloading build
uses: actions/download-artifact@v2
with:
name: bundle
동작 출력 3개
downloadUrl
- 업로드된 가공소재에 대한 다운로드 URL입니다.certificateFingerprint
- 생성된 가공소재에 서명하는 인증서의 SHA256 지문입니다.sha256
- 공작물의 SHA-256 해시. - name: Uplaoding to IAS
id: ias
uses: sagar-viradiya/[email protected]
with:
# Your service account JSON GitHub secret
serviceAccountJsonPlainText: ${{ secrets.[your-github-service-acc-json-secret] }}
# Your package name
packageName: '[your-package-name]'
aabFilePath: 'app-release.aab'
우리의 다음 단계이자 마지막 단계에서, 우리는 상술한 단계의 출력을 통지한다.사용자 정의 작업downloadUrl
을 다시 사용합니다.다음을 언급해야 합니다.rtCamp/[email protected]
는 앞의 출력이다. - name: Sharing on slack
uses: rtCamp/[email protected]
env:
# Your slack webhook GitHub secret
SLACK_WEBHOOK: ${{ secrets.[your-slack-webhook] }}
# Slack channel where you want to notify
SLACK_CHANNEL: [your-channel]
SLACK_USERNAME: "JARVIS"
SLACK_TITLE: "Internal testing build"
SLACK_MESSAGE: ${{ steps.ias.outputs.downloadUrl }}
워라!내부 응용 프로그램을 통해 자동으로 생성되고 배포되는 워크플로가 준비되었습니다!다음은 전체 작업 절차의 요점이다👇
다음 버전에서 우리는 당신의 생산 버전을 어떻게 자동화하는지 탐색할 것입니다.
제2부분 참조👋
안전 유지
Thanks for proofreading this.
Reference
이 문제에 관하여(GitHub 운영 섹션이 있는 현대 안드로이드 애플리케이션 배포 - 나), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sagarviradiya/modern-android-app-distribution-with-github-actions-part-i-5pp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)