-
-
Save alexanderbazo/227476190ef5ab655795e34ec0d314d6 to your computer and use it in GitHub Desktop.
name: Minimal Android CI Workflow | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- 'v*' | |
jobs: | |
test: | |
name: Run Unit Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v1 | |
- name: Setup JDK | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- name: Run Tests | |
run: bash ./gradlew test --stacktrace | |
apk: | |
name: Generate APK | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v1 | |
- name: Setup JDK | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 1.8 | |
- name: Build APK | |
run: bash ./gradlew assembleDebug --stacktrace | |
- name: Upload APK | |
uses: actions/upload-artifact@v1 | |
with: | |
name: apk | |
path: app/build/outputs/apk/debug/app-debug.apk | |
release: | |
name: Release APK | |
needs: apk | |
if: startsWith(github.ref, 'refs/tags/v') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download APK from build | |
uses: actions/download-artifact@v1 | |
with: | |
name: apk | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: Release ${{ github.ref }} | |
- name: Upload Release APK | |
id: upload_release_asset | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: apk/app-debug.apk | |
asset_name: MensaApp.apk | |
asset_content_type: application/zip |
I'm wondering why you release your app with a debug apk? Even without signing the apk ?
I'm wondering why you release your app with a debug apk? Even without signing the apk ?
This is not a production-ready example ;) It's used in a programming class to show how Github Actions can be used for Continuous Intergration pipelines, not how Android apps should properly be signed and shipped.
where should I download the APK built by the work flow created in my project?
At the bottom of the workflow summary page, there is a dedicated section for artifacts.
I'm not sure where the apk will appear after gradle build, how can i find it ? In which build.gradle
?
Thanks so much! This helped me understand Github actions better. Just a note, on line 40 be sure the path points to your own app module. Had to change the path since my app module was not named 'app'.
Can you please provide an example for the variable in
upload_url: ${{ steps.create_release.outputs.upload_url }}
? Is this uploading to android console, or what?