This adds public-facing CI workflows to build Lilliput and its dependencies.
From #157:
It's not clear how the pre-compiled dependencies are actually built and packaged in Discord's CI system, which makes it difficult for community devs to build Lilliput for environments that aren't (yet) supported. It's also difficult to do a supply chain audit of the dependency build, which is increasingly important to many developers.
There are two workflows. The first is a traditional CI setup that builds the library and runs the test suite on both Linux and macOS. As long as those pass, it's green. The second workflow builds the dependency libraries (libjpeg, libpng, opencv, etc), builds and tests Lilliput against them, and then uploads them as a GitHub Actions artifact that's easy to download for testing and review. The dependency workflow only runs when files under deps/ are changed, or when someone kicks it off manually.
The first two commits are the main change. The rest are patches and other tweaks to get the builds to pass, clarify things that I found confusing, etc. I'm happy to take any feedback.
This adds public-facing CI workflows to build Lilliput and its dependencies.
From #157:
There are two workflows. The first is a traditional CI setup that builds the library and runs the test suite on both Linux and macOS. As long as those pass, it's green. The second workflow builds the dependency libraries (libjpeg, libpng, opencv, etc), builds and tests Lilliput against them, and then uploads them as a GitHub Actions artifact that's easy to download for testing and review. The dependency workflow only runs when files under
deps/
are changed, or when someone kicks it off manually.The first two commits are the main change. The rest are patches and other tweaks to get the builds to pass, clarify things that I found confusing, etc. I'm happy to take any feedback.
cc @skidder
Replaces #164 and resolves the rest of #157.