Skip to content

Instantly share code, notes, and snippets.

@alexanderbazo
Created December 6, 2019 16:07
Show Gist options
  • Star 59 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
  • Save alexanderbazo/227476190ef5ab655795e34ec0d314d6 to your computer and use it in GitHub Desktop.
Save alexanderbazo/227476190ef5ab655795e34ec0d314d6 to your computer and use it in GitHub Desktop.
Github Actions: Build and Release Android-APK
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/upload-release-asset@v1.0.1
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
@melchoir55
Copy link

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?

@thaiphandinh
Copy link

I'm wondering why you release your app with a debug apk? Even without signing the apk ?

@alexanderbazo
Copy link
Author

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.

@tonyctsiu
Copy link

where should I download the APK built by the work flow created in my project?

@brianraila
Copy link

At the bottom of the workflow summary page, there is a dedicated section for artifacts.

@zhangjing-GitHub-Code
Copy link

I'm not sure where the apk will appear after gradle build, how can i find it ? In which build.gradle?

@oliviadodge
Copy link

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'.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment