Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add manually run workflow to exhaustively test all LLVM versions expected to work #855

Merged
merged 1 commit into from
Oct 2, 2024

Conversation

spoonincode
Copy link
Member

Spring is expected to build with LLVM versions 7 through 11. As #578 is worked this range of versions will change to include newer versions. I'd like to have a way to demonstrate that newer versions do indeed compile and test successfully beyond "trust me bro".

So add a simple manually dispatched workflow that compiles with all supported LLVM major versions. This seems like a good enough tradeoff over doing something vastly more complex in CI, and I certainly do not want this to run on every PR. The main risk I see is that since this workflow is disparate to the primary per-PR build workflow it can potentially get out of date; such as the build dependencies or cmake/ctest arguments going stale. I feel like that's an acceptable risk at the moment.

A run of this workflow can be found here,
https://github.com/AntelopeIO/spring/actions/runs/11132990881

strategy:
fail-fast: false
matrix:
version: ['10.0.1', '11.1.0']
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But wait, if we expect 7 through 11 to work why is this new workflow only testing 10 and 11? ah yes, tune in soon for the next PR...

cmake -S src -B build -DCMAKE_BUILD_TYPE=Release -GNinja
cmake --build build
- name: Test spring
run: ctest --test-dir build -j $(nproc) --output-on-failure -LE "(nonparallelizable_tests|long_running_tests)" -E eosvmoc_limits_unit_test_eos-vm-oc --timeout 480
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The eosvmoc_limits_unit_test is very sensitive to exact code generated since its pass criteria was empirically derived from a single LLVM version with a threshold of 1 byte. Need to think on how to improve this test; disable in here for now.

@spoonincode spoonincode merged commit bdb57fe into main Oct 2, 2024
36 checks passed
@spoonincode spoonincode deleted the llvm-workflow branch October 2, 2024 03:49
@ericpassmore
Copy link
Contributor

Note:start
category: Tests
component: Internal
summary: Test more versions of LLVM.
Note:end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refactor: use ORCv2 for compatibility with modern LLVM versions with EOS VM OC
4 participants