1
0
Fork 0
mirror of https://github.com/ArtemSBulgakov/buildozer-action.git synced 2024-08-16 10:09:52 +02:00
gh-buildozer-action/README.md

127 lines
3.7 KiB
Markdown
Raw Normal View History

2020-06-23 13:57:51 +02:00
# Buildozer action
Build your Python/[Kivy](https://github.com/kivy/kivy) applications for Android
with [Buildozer](https://github.com/kivy/buildozer). This action uses official
Buildozer [Docker image](https://github.com/kivy/buildozer/blob/master/Dockerfile),
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.
2020-06-23 14:08:59 +02:00
### `buildozer_version`
**Required** Version of Buildozer to install.
- _Default:_ `stable` (latest release on PyPI, `pip install buildozer`).
- Set to `master` to use [master](https://github.com/kivy/buildozer/tree/master) branch _(`pip install git+https://github.com/kivy/buildozer.git@master`)_.
- Set to [tag](https://github.com/kivy/buildozer/tree/1.2.0) name `1.2.0` to use specific release _(`pip install git+https://github.com/kivy/buildozer.git@1.2.0`)_.
- Set to [commit](https://github.com/kivy/buildozer/tree/94cfcb8) 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
2020-06-23 14:07:13 +02:00
## Outputs
### `filename`
Filename of built package relative to repository root.
- Example: `test_app/bin/testapp-0.1-armeabi-v7a-debug.apk`
2020-06-23 14:14:38 +02:00
## Environment variables
You can set environment variables to change Buildozer settings. See
[Buildozer Readme](https://github.com/kivy/buildozer#default-config) for more
information.
Example (change Android architecture):
```yaml
env:
APP_ANDROID_ARCH: armeabi-v7a
```
2020-06-23 14:13:54 +02:00
## 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:
```yaml
- 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
```
2020-06-23 13:57:51 +02:00
## Example usage
```yaml
- name: Build with Buildozer
uses: ArtemSBulgakov/buildozer-action@v1
2020-06-23 14:07:13 +02:00
id: buildozer
with:
command: buildozer android debug
workir: src
2020-06-23 14:08:59 +02:00
buildozer_version: stable
2020-06-23 13:57:51 +02:00
```
2020-06-23 14:15:16 +02:00
## Full workflow
```yaml
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 }}
```
2020-06-23 13:57:51 +02:00
## License
ArtemSBulgakov/buildozer-action is released under the terms of the
[MIT License](LICENSE).