Auto-publish builds to ForgeBox

@micstriit The next time you have a chance, I’d like to re-open the discussion of having the Lucee builds auto-publish new versions to ForgeBox. I think it will be pretty easy, we just need to make it happen. In the past I was against having snapshot builds published since I thought it was create a lot of versions, but honestly, I’m tempted to say, screw it, let’s just stick every new version out there so it’s easier for people to test. So long as all non-stable versions have a prerelease id like -snapshot or whatever, then it will be fine. I think minimally, we just need:

  1. An additional war generated that doesn’t have the default index.cfm file and images, etc in it.
  2. An additional artifact created from that “simple” war that is just a zip file containing the war and a small box.json file.
  3. The box.json file needs to have the correct version in it (in npm-style semver format) and an HTTP URL to the zip file for that version in the location property.
  4. The Lucee build runs a box publish command with the secret ForgeBox API key which will publish the new version.

Any CommandBox users will be able to immediately start these engine versions as soon as they hit ForgeBox (assuming the zip artifact is already available somewhere). The only thing I’m not 100% sure of is where the zip file will get stored so it’s in a permanent and public location. To date, I’ve just been manually creating the zip and uploading it to the Ortus S3 account.

Here is an example box.json file. Note how the Lucee version 5.2.3.35 is converted into an npm-style semver format of 5.2.3+35 which is a requirement for Forgebox to recognize it.

{
    "name":"Lucee CF Engine",
    "version":"5.2.3+35",
    "createPackageDirectory":false,
    "location":"http://downloads.ortussolutions.com/lucee/lucee/5.2.3.35/cf-engine-5.2.3.35.zip",
    "slug":"lucee",
    "shortDescription":"Lucee WAR engine for CommandBox servers.",
    "type":"cf-engines"
}

@micstriit Any ideas on this?