Skip to content

Conversation

@G36maid
Copy link
Contributor

@G36maid G36maid commented Jul 4, 2025

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

Fixes #2
Depend on #31

Copy link
Contributor

@jserv jserv left a 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.

@jserv
Copy link
Contributor

jserv commented Jul 4, 2025

There should be only a commit, discarding unrelated ones.

@G36maid
Copy link
Contributor Author

G36maid commented Jul 4, 2025

Rebase the latest main branch.

Already.

There should be only a commit, discarding unrelated ones.

Sure.

@jserv

This comment was marked as resolved.

@G36maid

This comment was marked as resolved.

jserv

This comment was marked as duplicate.

@G36maid G36maid requested a review from jserv July 5, 2025 03:37
@G36maid G36maid force-pushed the ci branch 2 times, most recently from 761c4b2 to bdf027c Compare July 5, 2025 03:56
@G36maid G36maid force-pushed the ci branch 2 times, most recently from 3839694 to cc104df Compare July 5, 2025 12:02
@G36maid G36maid requested a review from Damien-Chen July 5, 2025 12:28
Copy link
Contributor

@jserv jserv left a 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.

Copy link
Contributor

@jserv jserv left a comment

Choose a reason for hiding this comment

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

Always rebase properly.

@G36maid
Copy link
Contributor Author

G36maid commented Jul 7, 2025

Always rebase properly.

I'll make sure to rebase properly before merging. For now, I prefer to keep the commits.
Once everything is finalized, I'll squash or clean them up as needed.

@G36maid G36maid force-pushed the ci branch 3 times, most recently from e792176 to 7c49a01 Compare July 7, 2025 06:57
@G36maid
Copy link
Contributor Author

G36maid commented Jul 7, 2025

Do these results match what we wanted?
@jserv @Damien-Chen
Please check this run:
G36maid#6 (comment)

@G36maid G36maid force-pushed the ci branch 2 times, most recently from 182b393 to 68cab6a Compare October 23, 2025 06:53
@G36maid G36maid marked this pull request as ready for review October 23, 2025 06:53
Copy link

@cubic-dev-ai cubic-dev-ai bot left a 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.

@G36maid G36maid force-pushed the ci branch 5 times, most recently from cf192bf to c89b134 Compare October 23, 2025 08:16
@sysprog21 sysprog21 deleted a comment from cubic-dev-ai bot Oct 23, 2025
@sysprog21 sysprog21 deleted a comment from G36maid Oct 23, 2025
@sysprog21 sysprog21 deleted a comment from cubic-dev-ai bot Oct 23, 2025
Copy link

@cubic-dev-ai cubic-dev-ai bot left a 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

Copy link
Contributor

@jserv jserv left a 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.

@G36maid G36maid force-pushed the ci branch 3 times, most recently from e7b8142 to a937b7f Compare October 29, 2025 04:44
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.
@jserv jserv merged commit fdd7587 into sysprog21:main Oct 29, 2025
@jserv
Copy link
Contributor

jserv commented Oct 29, 2025

Thank @G36maid for contributing!

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.

Enable CI via GitHub Actions

4 participants