Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gluonhq/hello-gluon-ci
HelloGluon sample including Github actions for automating builds and releases
https://github.com/gluonhq/hello-gluon-ci
Last synced: about 12 hours ago
JSON representation
HelloGluon sample including Github actions for automating builds and releases
- Host: GitHub
- URL: https://github.com/gluonhq/hello-gluon-ci
- Owner: gluonhq
- License: other
- Created: 2020-11-20T23:18:20.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-15T12:16:29.000Z (2 months ago)
- Last Synced: 2024-12-18T14:14:14.410Z (8 days ago)
- Language: Java
- Size: 628 KB
- Stars: 31
- Watchers: 7
- Forks: 40
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HelloGluon CI
This sample shows how to automatically build a Gluon Application using Github Actions.
It uses a version of [HelloGluon](https://github.com/gluonhq/gluon-samples/tree/master/HelloGluon), a Hello World application with Java 23, JavaFX 24ea, Gluon Mobile and GraalVM.
For more details about Gluon Applications in general, please have a look at the [Gluon docs](https://docs.gluonhq.com) or the [other samples](https://gluonhq.com/developers/samples/).This sample focuses on the continuous integration using Github Actions on these platforms:
* Linux
* MacOS (x86_64 and AArch64)
* iOS
* Android
* Windows (not supported with latest 1.0.24 yet)
* Embedded - AArch64 Linux (not supported with latest 1.0.24 yet)All these platform specific workflows share these common steps:
* Checkout your code
* Setup the build environment, specific to the platform
* Build the application
* Upload the applicationNext to the above steps, for iOS and Android, the workflow includes steps to properly sign and upload the binary to the Play Store and App Store.
## Build setup
Building using Github Actions is not very different from building locally.
On top of a [default Gluon application](https://docs.gluonhq.com/#_getting_started), the following `releaseConfiguration` was added to the maven-gluonfx-plugin configuration:
```
${env.GITHUB_RUN_NUMBER}
${env.GITHUB_RUN_NUMBER}
${env.GLUON_ANDROID_KEYSTOREPATH}
${env.GLUON_ANDROID_KEYSTORE_PASSWORD}
${env.GLUON_ANDROID_KEYALIAS}
${env.GLUON_ANDROID_KEYALIAS_PASSWORD}
```
For iOS:
* bundleVersion is set to the GITHUB_RUN_NUMBER, so each build will have unique CFBundleVersion. [See this doc](https://docs.gluonhq.com/#platforms_ios_distribution_build) for more information.For Android:
* versionCode is set to the GITHUB_RUN_NUMBER, so each build will have a unique `android:versionCode`. [See this doc](https://docs.gluonhq.com/#platforms_ios_distribution_build) for more information.
* keystore configuration are taken from env variables, that will be set by the workflow action.## Gluon license
All workflows use this action this Gluon license action:
- name: Gluon License
uses: gluonhq/gluon-build-license@v1
with:
gluon-license: ${{ secrets.GLUON_LICENSE }}Using a Gluon license is optional and depends on your situation.
Have a look at the [Gluon website](https://gluonhq.com/products/mobile/buy/) for more information about licences or [contact us](https://gluonhq.com/about-us/contact-us/).## Platforms
Github Action workflows are specified in [.github/workflows](https://github.com/gluonhq/hello-gluon-ci/tree/master/.github/workflows) and configured to be triggered on `push`.
Depending on your own preference and requirements, this can of course be changed. Please refer to the [GitHub Actions documentation](https://docs.github.com/en/free-pro-team@latest/actions) for more information.### MacOS
[![MacOS x86_64](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/macos-x86_64.yml/badge.svg)](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/macos-x86_64.yml)
* Workflow file: [.github/workflows/macos-x86_64.yml](https://github.com/gluonhq/hello-gluon-ci/blob/master/.github/workflows/macos-x86_64.yml)
[![MacOS AArch64](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/macos-aarch64.yml/badge.svg)](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/macos-aarch64.yml)
* Workflow file: [.github/workflows/macos-aarc64.yml](https://github.com/gluonhq/hello-gluon-ci/blob/master/.github/workflows/macos-aarch64.yml)
* Detailed documentation: [Gluon documentation for Mac OS](https://docs.gluonhq.com/#platforms_macos) for more detailed information.
### Linux
[![Linux](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/linux.yml/badge.svg)](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/linux.yml)
* Workflow file: [.github/workflows/linux.yml](https://github.com/gluonhq/hello-gluon-ci/blob/master/.github/workflows/linux.yml)
* Detailed documentation: [Gluon documentation for Linux](https://docs.gluonhq.com/#platforms_linux) for more detailed information.### iOS
[![iOS](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/ios.yml/badge.svg)](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/ios.yml)
* Workflow file: [.github/workflows/ios.yml](https://github.com/gluonhq/hello-gluon-ci/blob/master/.github/workflows/ios.yml)
* Detailed documentation: [Gluon documentation for iOS](https://docs.gluonhq.com/#platforms_ios) for more detailed information.### Android
[![Android](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/android.yml/badge.svg)](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/android.yml)
* Workflow file: [.github/workflows/android.yml](https://github.com/gluonhq/hello-gluon-ci/blob/master/.github/workflows/android.yml)
* Detailed documentation: [Gluon documentation for Android](https://docs.gluonhq.com/#platforms_android) for more detailed information.### Windows
[![Windows](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/windows.yml/badge.svg)](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/windows.yml)
* Workflow file: [.github/workflows/windows.yml](https://github.com/gluonhq/hello-gluon-ci/blob/master/.github/workflows/windows.yml)
* Detailed documentation: [Gluon documentation for Windows](https://docs.gluonhq.com/#platforms_windows) for more detailed information.### Embedded - AArch64 Linux
[![AArch64 Linux](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/aarch64-linux.yml/badge.svg)](https://github.com/gluonhq/hello-gluon-ci/actions/workflows/aarch64-linux.yml)
* Workflow file: [.github/workflows/aarch64-linux.yml](https://github.com/gluonhq/hello-gluon-ci/blob/master/.github/workflows/aarch64-linux.yml)
* Detailed documentation: [Gluon documentation for Embedded - AArch64 Linux](https://docs.gluonhq.com/#platforms_embedded) for more detailed information.