下記のようなyamlファイルをAndroidプロジェクトのリポジトリに置きます。
.github/workflows/manual-build.yml
name: Manual build
on:
workflow_dispatch:
inputs:
variant:
description: 'Build variant'
required: true
ref:
description: 'branch name|tag name|commit SHA'
required: true
default: master
jobs:
build:
name: Build
runs-on: ubuntu-18.04
steps:
- name: Check out
uses: actions/checkout@v2
with:
ref: ${{ github.event.inputs.ref }}
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Restore gradle cache
uses: actions/cache@v2
with:
path: ~/.gradle
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}-${{ hashFiles('**/*.gradle.kts') }}
- name: Run Android Lint
run: ./gradlew lint${{ github.event.inputs.variant }}
- name: Run unit test
run: ./gradlew test${{ github.event.inputs.variant }}UnitTest
- name: Build with Gradle
run: |
# 署名まわり。https://qiita.com/hkusu/items/cadb572c979c4d729567 を参照
if [[ -n '${{ secrets.KEYSTORE_BASE64 }}' ]]; then
echo '${{ secrets.KEYSTORE_BASE64 }}' | base64 -d > release.keystore
export KEYSTORE_PASSWORD='${{ secrets.KEYSTORE_PASSWORD }}'
export KEY_ALIAS='${{ secrets.KEY_ALIAS }}'
export KEY_PASSWORD='${{ secrets.KEY_PASSWORD }}'
fi
./gradlew assemble${{ github.event.inputs.variant }}
- name: Get apk path
id: apk-path
run: |
path=$(find **/build/outputs/apk -name '*.apk' -type f | head -1)
echo "::set-output name=path::$path"
- name: Upload apk file
uses: actions/upload-artifact@v2
with:
name: apk
path: ${{ steps.apk-path.outputs.path }}
そうすると、下図のように GitHub の画面からワークフローを実行してアプリがビルドできるようになります。
apk ファイルは、下図のように結果画面からダウンロードできます。