open-quantum-safe / liboqs

C library for prototyping and experimenting with quantum-resistant cryptography
https://openquantumsafe.org/
Other
1.92k stars 466 forks source link

Move from CircleCI to GitHub Actions #1849

Closed SWilson4 closed 4 months ago

SWilson4 commented 4 months ago

This PR moves our remaining CircleCI workflows over to GitHub Actions. I've left it in draft for now as it's based on the branch for #1848.

I have tried to duplicate the testing coverage from CircleCI without additions or removals. This PR isn't intended to overhaul or evaluate our test coverage, it's just meant to move it to a different platform.

Three items of note:

(1) The CCI bionic-i386 could not be ported over, as the GitHub checkout action requires a newer version of node and can't run in the older container (at least not without some finicky work). Bionic is no longer supported anyhow, so it's probably for the best that we're no longer using it for testing. However, the multiarch images that we'd been using don't have options for i386 past Bionic, so there is no easy way to continue testing on i386. We don't list Linux / x86 as a supported platform, so I've opted to simply remove CI support for it.

(2) The CCI focal-clang-15 job had -DOQS_OPT_TARGET=skylake set. It didn't configure -DOQS_DIST_BUILD=OFF, however, so the opt target value was ignored. I have omitted the opt target variable in GitHub CI to reflect what was actually being tested.

(3) Finally, @ryjones helped me add a CircleCI API token to the liboqs environment so that GitHub can trigger CircleCI for downstream projects. These triggers are contained in the new commit-to-main.yml file. We may want to revise them for completeness, but for now I have left them as they were on CCI.

Fixes #1795.

SWilson4 commented 4 months ago

The downstream trigger failed after the merge. I can trigger downstream pipelines locally with the same API token that should be in CI, so I think this is a GitHub variables config error. Will follow up with @ryjones later today.