usbarmory / usbarmory-debian-base_image

USB armory Debian base image
Other
77 stars 30 forks source link

Add release builds #29

Closed eduncan911 closed 4 years ago

eduncan911 commented 4 years ago

A Github Action will be triggered when Publishing a Release or Pre-release that will use the new make target for release to build and compress the assets. Once successful, the assets are uploaded to the release that triggered the action. DRAFTs do not Tag the repo, and therefore are not available to trigger the asset builds. Therefore, your workflow shouldn't change:

  1. Create a DRAFT (no longer need to put in sha hashes)
  2. When ready, Publish the release
  3. Wait. Six assets will be attached in 30-35 minutes.

Here's what the release and files will look like: https://github.com/eduncan911/usbarmory-debian-base_image/releases/tag/20200223

usbarmory-mark-one-usd-debian_stretch-base_image-20200224.raw.xz
usbarmory-mark-one-usd-debian_stretch-base_image-20200224.raw.xz.sha256
usbarmory-mark-two-emmc-debian_stretch-base_image-20200224.raw.xz
usbarmory-mark-two-emmc-debian_stretch-base_image-20200224.raw.xz.sha256
usbarmory-mark-two-usd-debian_stretch-base_image-20200224.raw.xz
usbarmory-mark-two-usd-debian_stretch-base_image-20200224.raw.xz.sha256

REQUIREMENTS:

Changes to code that was required:

Note that I did run into some timeouts and files-too-large issues (without compressing). The xz compression handles too large files; however, if we run into timeouts, just Re-run Release action, which should kick off another build and only upload assets that did not exist.

A note on "already existing": The github action I am using does not exit gracefully nor handle re-uploads - it fails the entire build. I'll fork the action and fix it for future revisions.

andrejro commented 4 years ago

Merged. Sorry as this took so long. I will add the creation of zip files as well. Thanks!

eduncan911 commented 4 years ago

Hey @andrejro. No problem!

I was chatting with @abarisani and I also wrote in the PR above:

Note that I did run into some timeouts and files-too-large issues

Zip file versions are too large to attach via their Actions API (http post). xz was small enough to stay under the limit.

It's a known limitation at this time and I with many others have reported.

Also, zip files end up creating another 6 additional files for a total of 12 attachments.

So Andrea and I decided to drop the zip attachments.

andrejro commented 4 years ago

Ok, then let's keep the xz only then. Thanks!

eduncan911 commented 4 years ago

I do recommend shortening the filename though. It's getting pretty long. ;)

Maybe drop the whole "base_image" text.

eduncan911 commented 4 years ago

@andrejro hey, saw the new release!

Hmm, I see a few issues... please read the original PR description for what this does. It will help a lot.

1 - First, I saw the release not was taylored for a specific version. That should happen, as when the codebase changes, a release of all 3 versions needs to be attached.

This is exactly what this PR does for you. So you never should build an asset again...

Have a look at the pending Release builds of all 3 types going on as I write this:

https://github.com/f-secure-foundry/usbarmory-debian-base_image/actions/runs/72678476

2 - The Release Notes was only for one type. Going forward, the release notes should apply for all 3 versions as this repo must support and build all three versions.

3 - It looks like someone has broke the Makefile with a recent commit:

https://github.com/f-secure-foundry/usbarmory-debian-base_image/actions

I can't see well on mobile, but it looks like someone changed a required param in the Makefile

4 - I haven't seen PRs happening for these recent changes:

https://github.com/f-secure-foundry/usbarmory-debian-base_image/pulls?q=is%3Apr+is%3Aclosed

Instead, they are pushes straight to master, which is breaking the builds.

Opening a PR for these changes on a new branch and waiting for the CICD pipelines to complete would show the breaking changes happening in a PR well before pushing to master.

So in summary:

Feel free to reach out on Twitter via DM for more, or an email to eduncan911 for Gmail.