Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
package

GitHub Action

Buildozer action

v1.0.0

Buildozer action

package

Buildozer action

Build Python package with Kivy Buildozer

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Buildozer action

uses: ArtemSBulgakov/buildozer-action@v1.0.0

Learn more about this action in ArtemSBulgakov/buildozer-action

Choose a version

Buildozer action

Build workflow Build (with Buildozer master) workflow

Build your Python/Kivy applications for Android with Buildozer. This action uses official Buildozer Docker image, but adds some features and patches to use in GitHub Actions.

Inputs

command

Required Command to start Buildozer.

  • Default: buildozer android debug (iOS and OSX is not supported because Docker cannot run on MacOS).
  • For more commands use ; as delimiter: python3 setup.py build_ext --inplace; buildozer android debug.

workdir

Required Working directory where buildozer.spec is located.

  • Default: . (top directory).
  • Set to src if buildozer.spec is in src directory.

buildozer_version

Required Version of Buildozer to install.

  • Default: stable (latest release on PyPI, pip install buildozer).
  • Set to master to use master branch (pip install git+https://github.com/kivy/buildozer.git@master).
  • Set to tag name 1.2.0 to use specific release (pip install git+https://github.com/kivy/buildozer.git@1.2.0).
  • Set to commit hash 94cfcb8 to use specific commit (pip install git+https://github.com/kivy/buildozer.git@94cfcb8).
  • Set to git+ address git+https://github.com/username/buildozer.git@master to use fork.
  • Set to directory name ./my_buildozer to install from local path (pip install ./my_buildozer).
  • Set to nothing '' to not install buildozer

Outputs

filename

Filename of built package relative to repository root.

  • Example: test_app/bin/testapp-0.1-armeabi-v7a-debug.apk

Environment variables

You can set environment variables to change Buildozer settings. See Buildozer Readme for more information.

Example (change Android architecture):

env:
  APP_ANDROID_ARCH: armeabi-v7a

Caching

You can set up cache for Buildozer global and local directories. Global directory is in root of repository. Local directory is in workdir.

  • Global: .buildozer-global (sdk, ndk, platform-tools)
  • Local: test_app/.buildozer (dependencies, build temp, not recommended to cache)

I don't recommend to cache local buildozer directory because Buildozer doesn't automatically update dependencies to latest version.

Use cache only if it speeds up your workflow! Usually this only adds 1-3 minutes to job running time, so I don't use it.

Example:

- name: Cache Buildozer global directory
  uses: actions/cache@v2
  with:
    path: .buildozer_global
    key: buildozer-global-${{ hashFiles('test_app/buildozer.spec') }} # Replace with your path

Example usage

- name: Build with Buildozer
  uses: ArtemSBulgakov/buildozer-action@v1
  id: buildozer
  with:
    command: buildozer android debug
    workir: src
    buildozer_version: stable

Full workflow

name: Build
on: [push, pull_request]

jobs:
  # Build job. Builds app for Android with Buildozer
  build-android:
    name: Build for Android
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Build with Buildozer
        uses: ArtemSBulgakov/buildozer-action@v1
        id: buildozer
        with:
          workdir: test_app
          buildozer_version: stable

      - name: Upload artifacts
        uses: actions/upload-artifact@v2
        with:
          name: package
          path: ${{ steps.buildozer.outputs.filename }}

Action versioning

Currently it is recommended to use v1 tag. This tag updates when new v1.x.x version released. All v1 versions will have backward compatibility. You will get warning when v2 will be released.

How to build packages locally

Use official Buildozer's Docker image (repository).

Contributing

Please create Bug Request if you have problems with running this action or Feature Request if you have ideas how to improve it. If you know how to fix something, feel free to fork repository and create Pull Request. Test your changes in fork before creating Pull Request.

License

ArtemSBulgakov/buildozer-action is released under the terms of the MIT License.