stlab/libraries

Continuous Integration support for supported, non-WASM platforms

Closed this issue · 6 comments

camio commented

Acceptance Criteria

  • A pull request to the stlab/libraries that breaks a build or test on one of the following platforms will prevent merging
    • Apple (Xcode Clang)
    • Windows (MSVC++)
    • Linux (GCC and Clang)

@stlab/core

I'm making some changes to our CI configuration. See #400. We're adding a top-level stlab.py which will be an entry point to various subcommands (install, build, and test, for now) to approximate an npm-esque experience.

We can then simplify the CI configuration into a trivial invocation of stlab.py for each supported platform/os/compiler configuration in .github/matrix.json. This will ease debugging configuration issues for new developers and CI by converging on a single source of truth for installation/building/testing.

My hope is to move the setup_[xcode|msvc] logic into there.

Please let me know if anyone objects to this approach before I spend too much time going in this direction.

Also - see the README in the PR. I found a nifty tool for running our Github actions pipeline locally, but only for Linux configurations. Still useful, I figure.

Sean mentioned some weeks ago that he would like to remove the dependency of conan.
I like conan itself, but it has many dependencies itself which cause other problems, as you just stepped into it.
Do you think that this removal would make your work superfluous?

No, if anything removing Conan would be made easier by this change. By consolidating our tool chain setup in one place we can make removing (or replacing) Conan relatively straightforward.

camio commented

PR expected ~ 6/9

@sean-parent Can you clarify what's expected of our Android verification? I'm not sure how to test a C++ library in an android context, or if that's even meaningfully different from compiling and testing it on Clang Linux. I suppose we could build a simple hello-stlab project in android, and verify it compiles/links. But that feels slightly out of scope for this ticket. Thoughts?

camio commented

Android removed from scope. All the other platforms are already supported in CI. Marking as done.