-
Couldn't load subscription status.
- Fork 23
Utilize GitHub Actions for building and running via QEMU #12
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
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rebase the latest main branch.
|
There should be only a commit, discarding unrelated ones. |
Already.
Sure. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
761c4b2 to
bdf027c
Compare
3839694 to
cc104df
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Carefully read https://cbea.ms/git-commit/ and strictly apply its rules when writing full sentences in commit messages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Always rebase properly.
I'll make sure to rebase properly before merging. For now, I prefer to keep the commits. |
e792176 to
7c49a01
Compare
|
Do these results match what we wanted? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
6 issues found across 7 files
Prompt for AI agents (all 6 issues)
Understand the root cause of the following 6 issues and fix them.
<file name=".ci/run-app-tests.sh">
<violation number="1" location=".ci/run-app-tests.sh:32">
Treating exit code 124 as success causes hung QEMU runs to be marked as passing; exit status 124 from `timeout` indicates the command timed out, so this branch should fail the test instead.</violation>
</file>
<file name="arch/riscv/build.mk">
<violation number="1" location="arch/riscv/build.mk:22">
The clang-toolchain detection probes $(CROSS_COMPILE)gcc, so on LLVM jobs (where only riscv32-unknown-elf-clang is installed) CC_IS_CLANG remains empty and CC falls back to the nonexistent riscv32-unknown-elf-gcc, breaking the LLVM build.</violation>
</file>
<file name=".ci/run-functional-tests.sh">
<violation number="1" location=".ci/run-functional-tests.sh:79">
A timeout from the QEMU run (exit code 124) is currently treated the same as a clean exit, so a test that hangs after emitting the PASS lines will still be marked as passing. Please fail the test when timeout terminates QEMU to avoid masking hangs.</violation>
</file>
<file name=".ci/ci-tools.sh">
<violation number="1" location=".ci/ci-tools.sh:187">
The aggregated GNU app entries are written as `app=passed`, which is invalid TOML because the string value is unquoted. This makes the generated summary file unparsable; please quote both the key and value here (and update the matching LLVM line as well).</violation>
<violation number="2" location=".ci/ci-tools.sh:197">
Functional test results are emitted as `test=passed` without quotes, yielding invalid TOML in the `[gnu.functional_tests]` section. Please emit quoted keys/values here (and mirror the change for the LLVM line).</violation>
<violation number="3" location=".ci/ci-tools.sh:207">
Functional criteria entries are written as `fft:max_error=passed`, leaving both the key (contains a colon) and the string value unquoted, which violates TOML syntax. Quote the key and value here (and apply the same adjustment to the LLVM line).</violation>
</file>
Since this is your first cubic review, here's how it works:
- cubic automatically reviews your code and comments on bugs and improvements
- Teach cubic by replying to its comments. cubic learns from your replies and gets better over time
- Ask questions if you need clarification on any suggestion
React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
4 issues found across 7 files
Prompt for AI agents (all 4 issues)
Understand the root cause of the following 4 issues and fix them.
<file name=".ci/run-app-tests.sh">
<violation number="1" location=".ci/run-app-tests.sh:32">
Treating exit code 124 (timeout) as a pass causes hung QEMU runs to be reported as successful. A timeout should fail the test instead of being marked as passed.</violation>
</file>
<file name=".ci/ci-tools.sh">
<violation number="1" location=".ci/ci-tools.sh:187">
The GNU apps entries are emitted as `key=value` without spaces or quotes, so the generated TOML is invalid and format_comment cannot parse the section.</violation>
<violation number="2" location=".ci/ci-tools.sh:197">
GNU functional test entries are emitted without TOML-compliant formatting, preventing format_comment from parsing and making the TOML invalid.</violation>
<violation number="3" location=".ci/ci-tools.sh:207">
GNU functional criteria entries are written as `key=value`, which is not valid TOML and breaks parsing of the criteria section.</violation>
</file>
React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.
182b393 to
68cab6a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3 issues found across 6 files
Prompt for AI agents (all 3 issues)
Understand the root cause of the following 3 issues and fix them.
<file name=".ci/run-app-tests.sh">
<violation number="1" location=".ci/run-app-tests.sh:32">
A timeout (exit code 124 from `timeout`) indicates the QEMU run hung, but this branch treats it as a pass. That masks failures and lets broken apps appear healthy; only exit code 0 should be considered passing.</violation>
</file>
<file name="arch/riscv/build.mk">
<violation number="1" location="arch/riscv/build.mk:22">
The clang detection runs $(CROSS_COMPILE)gcc --version, but the LLVM toolchain only ships $(CROSS_COMPILE)clang, so CC_IS_CLANG never becomes 1 and the build selects the missing GNU binaries, breaking LLVM builds.</violation>
</file>
<file name=".ci/ci-tools.sh">
<violation number="1" location=".ci/ci-tools.sh:187">
The aggregated gnu apps section writes values like `app1=passed` without quotes, producing invalid TOML that downstream tools cannot parse.</violation>
</file>
React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.
cf192bf to
c89b134
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No issues found across 6 files
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rebase the latest main branch.
Implement GitHub Actions CI pipeline for testing Linmo across GNU and LLVM RISC-V toolchains with automated reporting. Features: - Matrix testing for GNU and LLVM toolchains - Automated app discovery and crash detection - Functional test framework with criterion-based validation - TOML-based result aggregation across toolchains - Automated PR comments with detailed test results - Proper failure handling and artifact collection Components: - .ci/ci-tools.sh: Unified tool for data collection, aggregation, and PR comment formatting - .ci/run-app-tests.sh: Automated app testing with QEMU - .ci/run-functional-tests.sh: Criterion-based functional tests - .ci/setup-toolchain.sh: Automated toolchain installation - .github/workflows/ci.yml: Complete CI workflow with summary job The workflow ensures all tests run to completion, captures full output for debugging, and fails CI based on the aggregated overall status.
Implement GitHub Actions CI pipeline for testing Linmo across GNU and
LLVM RISC-V toolchains with automated reporting.
Features:
Components:
and PR comment formatting
The workflow ensures all tests run to completion, captures full output
for debugging, and fails CI based on the aggregated overall status
Fixes #2
Depend on #31