it87 icon indicating copy to clipboard operation
it87 copied to clipboard

Introduce Packaging and CI Tools

Open WinkelCode opened this issue 2 years ago • 4 comments

Continuation of https://github.com/frankcrawford/it87/issues/4

I am basically done with the packaging side of things. I comprehensively tested commit 0334fd6ca4bac3933df7406d19734f1a0900dbc3 on Alpine, Ubuntu and Fedora Silverblue on my PC with IT8688E and IT8795E chips. I have made some minor changes since then but nothing that should change functionality in a major way.

New stuff:

packagetool.sh

Overview/quick start guide: https://github.com/WinkelCode/it87/blob/master/packagetool_quickstart.md

  • Tested to work with GNU (Ubuntu/Fedora) and Busybox (Alpine)

GitHub Actions Workflow

packagetool.sh wrapper

image

  • Use packagetool.sh from GitHub actions.

Auto package, test, and release

I introduced an automatic workflow that on push to the master branch:

  • Builds the packages and runs tests related to the dynamic module build process (AKMS/akmods/DKMS)
  • Creates a draft release with tarballs of the packages
  • Title and body are automatically filled from a template in the workflow
  • Automatically replaces the latest release if it is a draft for a snapshot- release (to avoid having multiple unpublished releases)

The developer workflow basically looks like this:

  • For minor changes that don't need a new package, put [skip ci] in the commit message
  • For other commits, the workflow will run when it's pushed to GitHub
  • Upon completion (about 3-6 minutes), a draft release will be available on the repo
  • Click on the button to edit the release and simply hit "Publish release" to make it publicly available

Example: https://github.com/WinkelCode/it87/releases/tag/snapshot-2023-05-08T11_21_23Z

Note: The release publishing part was done with jq and curl, since all premade Actions for GitHub Releases which I tried had some dealbreaking issue. Error handling isn't comprehensive, but has so far correctly failed the workflow if the API responds with an error code (curl -f option).

Updated documentation:

Reworked README

https://github.com/WinkelCode/it87/blob/master/README.md

  • Converted to markdown
  • Rewording of some parts
  • Removed ambiguity regarding boolean module options (incorrectly marked as "int" type)
  • Introduce table for chip compatibility list
  • General reordering and formatting improvements
  • New info regarding packages

Review/help requests

I would really appreciate it if other people could help review the following items:

Readme

  • General review and proofreading
  • The README is largely based on the old readme (I kept it as README_old.txt), some information is likely to be outdated.
  • The chip table might be wrong, there are chips I can't find in the code, and some that weren't in the old list but are in the code. Example: Can't find IT8528E; IT8795E is in code but not in Sep 2022 list.
  • "Past and present maintainers" is obviously incomplete. I know the out-of-tree side of the project has switched maintainers a couple times, what are their names?

Packagetool quickstart

  • Proofreading
  • Need for more documentation?

Packagetool

  • Testing on more host systems
  • Edge cases resulting in bogus ./packagetool.sh --print_repo_info values?

Edits by maintainers on my fork are allowed.

WinkelCode avatar May 07 '23 18:05 WinkelCode

I’ll squash all the minor documentation edits together at some point

WinkelCode avatar May 08 '23 10:05 WinkelCode

@WinkelCode thanks for this. Obviously, I'm going to need to review it before we can finalise it, but since you are still working on it, that shouldn't be a problem.

frankcrawford avatar May 08 '23 10:05 frankcrawford

@WinkelCode how is this going? I haven't really had a chance to look at it so far.

frankcrawford avatar Jul 22 '23 04:07 frankcrawford