Introduce Packaging and CI Tools
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

- Use
packagetool.shfrom 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;IT8795Eis 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_infovalues?
Edits by maintainers on my fork are allowed.
I’ll squash all the minor documentation edits together at some point
@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.
@WinkelCode how is this going? I haven't really had a chance to look at it so far.