lewismorgan / HarvesterDroid

Manage resource data across numerous Star Wars Galaxies resource trackers
GNU General Public License v3.0
8 stars 0 forks source link

Native distribution and snapshot builds #21

Open lewismorgan opened 5 years ago

lewismorgan commented 5 years ago

Setup gradle for snapshot builds and native distribution builds.

Most work for this is already complete now by utilizing the application plugin through gradle. Distribution builds are created using the gradle task 'assembleDist'. Will need to create a custom task for each individual platform for native support since the JavaFX application plugin wasn't really necessary.

The distribution currently creates binaries in the bin/* folder as windows batch file and a unix script.

lewismorgan commented 5 years ago

Most work for this is already complete now by utilizing the application plugin through gradle. Distribution builds are created using the gradle task 'assembleDist'. Will need to create a custom task for each individual platform for native support since the JavaFX application plugin wasn't really necessary.

The distribution currently creates binaries in the bin/* folder as windows batch file and a unix script.

In the end, the ultimate goal of all of this is to make it easier programatically to allow users to opt-in for snapshot builds once an auto-updater is created.

lewismorgan commented 5 years ago

Commit 4fe054fae92d34e5c129ed649af39dfd71e2abe9 now contains full support for versioning using Nebula Release. CI should be added in future to verify successful devSnapshot builds during a PR to develop.

Versions tagged, prefixed with vMajor.minor.patch(-rc.x)

Workflow for a major update:

  1. Create new branch from develop - major.x
  2. Push & add features/etc
  3. Merge into develop only when rc ready (rc ready = new features ready and/or existing features work)
  4. Push & add features/etc
  5. Create pre-release on GitHub, tag vMajor.0.0-rc.1
  6. gradle candidate
  7. Add distributed binaries to GitHub along with changelog of completed features
  8. Push & add features/etc
  9. gradle final
  10. Create release on GitHub, tag vMajor.0.0
  11. gradle -Prelease.useLatestTag=true final
  12. Add distributed binaries to GitHub along with changelog of completed features