Github Bot
Poster of Commits
Directly upload Mac / Windows executables. (#93)
* Add bin task to Gradle.
This creates a binary in build/KoLmafia/bin/KoLmafia.
This change also adds a pruneBin task which is always run. I tried to
figure out how to set up inputs / outputs, but jpackage insists on
creating the output directory itself and will generate an error if
said directory already exists.
Follow-up changes will involve tinkering with a build matrix and
looking at the resulting artifacts.
* Copy-paste build to run ./gradlew bin.
I'm not actually sure what the resulting files will look like on
Windows / Mac, so here's to hoping I can actually see the artifacts
before trying to publish them.
* Run build for the jpackage branch.
This will allow for more experimentation without pushing to main.
* List created artifacts.
Hopefully Mac artifacts end in dmg, and Windows artifacts end in
exe. But maybe not...
* Inspect parent directory.
Apparently Mac didn't create build/KoLmafia/bin.
* Install binaries into dist/.
Still not seeing the output of Mac builds, although I now see:
- Linux: ${dist}/KoLmafia/bin/KoLmafia
- Windows: ${dist}/KoLmafia/KoLmafia.exe
Perhaps if I'm lucky, Mac is directly in ${dist}/KoLmafia.dmg?
If I'm unlucky, it won't be present at all.
* Move files back into build/.
This caused a nasty bit of infinite recursion. Whoops.
Let's instead move things into build/bin.
* Upload all artifacts, then download them.
This allows us to get all of the artifacts in one single container so
we can theoretically publish them all at once later.
* Add name, runs-on to release job.
* Bundle artifacts as zips.
We actually need everything in the generated directory, not just the
runner binary.
* M-x untabify
* Move code into build/releases, stop using wildcard.
This attempted to save maybe one level of directory nesting, which I
don't think actually matters in practice.
* Stitch everything together.
This splits the existing daily job into two targets: jar and
release. `release` in turn depends on both `jar` and `bin`.
'bin' generates files Windows.zip, Linux.zip, and macOS.zip.
* Remove extra newline.
* Use jpackage-gradle-plugin instead of exec task.
It doesn't feel appreciably different, but maybe it's more readable.
* Improve portability of jpackage task.
Mac creates the directory `build/releases/KoLmafia.app`, whereas Linux
/ Windows create `build/releases/KoLmafia`. jpackage will create all
prerequisite directories, so it's fine with either deleting the inner
directory, or its parent.
* added appVersion, mac and windows package types, and mac icon
* Add Windows icon for binary release.
This uses the existing martini glass that was the KoLmelion icon once
upon a time.
* Directly upload Mac, Windows executables.
Currently, we're generating macOS.zip, Windows.zip which each only
contain a single file.
This change also cleans up jarbundler / jsmooth utils now that we're
using + relying on jpackage for creating platform-specific builds.
We also reuse the Windows icon for Linux (and rename it to get rid of
the legacy KoLmelion name), which is copied into util/linux to preempt
confusion along the lines of "why are we using this windows/ file in
the linux build".
* Try to target deb or rpm on Linux if available.
This detects the existence of commands in the $PATH using the Bash
`which` command.
This also bumps our required version to Java 11 because I didn't want
to pollute the build output, or roll my own NullOutputStream.
* Add revision info to appName, appVersion.
This might be redundant, but it seemed okay in Linux.
This change also replaces instances of " with ' for strings that
didn't use templating.
* This change adds the Windows DirChooser, Shortcut, and useCWDasROOT flag and also the Mac switches from pkg to dmg.
* set to upload mac DMGs
Co-authored-by: BadHorseMonkey <58645293+BadHorseMonkey@users.noreply.github.com>
View on Github
* Add bin task to Gradle.
This creates a binary in build/KoLmafia/bin/KoLmafia.
This change also adds a pruneBin task which is always run. I tried to
figure out how to set up inputs / outputs, but jpackage insists on
creating the output directory itself and will generate an error if
said directory already exists.
Follow-up changes will involve tinkering with a build matrix and
looking at the resulting artifacts.
* Copy-paste build to run ./gradlew bin.
I'm not actually sure what the resulting files will look like on
Windows / Mac, so here's to hoping I can actually see the artifacts
before trying to publish them.
* Run build for the jpackage branch.
This will allow for more experimentation without pushing to main.
* List created artifacts.
Hopefully Mac artifacts end in dmg, and Windows artifacts end in
exe. But maybe not...
* Inspect parent directory.
Apparently Mac didn't create build/KoLmafia/bin.
* Install binaries into dist/.
Still not seeing the output of Mac builds, although I now see:
- Linux: ${dist}/KoLmafia/bin/KoLmafia
- Windows: ${dist}/KoLmafia/KoLmafia.exe
Perhaps if I'm lucky, Mac is directly in ${dist}/KoLmafia.dmg?
If I'm unlucky, it won't be present at all.

* Move files back into build/.
This caused a nasty bit of infinite recursion. Whoops.
Let's instead move things into build/bin.
* Upload all artifacts, then download them.
This allows us to get all of the artifacts in one single container so
we can theoretically publish them all at once later.
* Add name, runs-on to release job.
* Bundle artifacts as zips.
We actually need everything in the generated directory, not just the
runner binary.
* M-x untabify
* Move code into build/releases, stop using wildcard.
This attempted to save maybe one level of directory nesting, which I
don't think actually matters in practice.
* Stitch everything together.
This splits the existing daily job into two targets: jar and
release. `release` in turn depends on both `jar` and `bin`.
'bin' generates files Windows.zip, Linux.zip, and macOS.zip.
* Remove extra newline.
* Use jpackage-gradle-plugin instead of exec task.
It doesn't feel appreciably different, but maybe it's more readable.
* Improve portability of jpackage task.
Mac creates the directory `build/releases/KoLmafia.app`, whereas Linux
/ Windows create `build/releases/KoLmafia`. jpackage will create all
prerequisite directories, so it's fine with either deleting the inner
directory, or its parent.
* added appVersion, mac and windows package types, and mac icon
* Add Windows icon for binary release.
This uses the existing martini glass that was the KoLmelion icon once
upon a time.
* Directly upload Mac, Windows executables.
Currently, we're generating macOS.zip, Windows.zip which each only
contain a single file.
This change also cleans up jarbundler / jsmooth utils now that we're
using + relying on jpackage for creating platform-specific builds.
We also reuse the Windows icon for Linux (and rename it to get rid of
the legacy KoLmelion name), which is copied into util/linux to preempt
confusion along the lines of "why are we using this windows/ file in
the linux build".
* Try to target deb or rpm on Linux if available.
This detects the existence of commands in the $PATH using the Bash
`which` command.
This also bumps our required version to Java 11 because I didn't want
to pollute the build output, or roll my own NullOutputStream.
* Add revision info to appName, appVersion.
This might be redundant, but it seemed okay in Linux.
This change also replaces instances of " with ' for strings that
didn't use templating.
* This change adds the Windows DirChooser, Shortcut, and useCWDasROOT flag and also the Mac switches from pkg to dmg.
* set to upload mac DMGs
Co-authored-by: BadHorseMonkey <58645293+BadHorseMonkey@users.noreply.github.com>
View on Github