Skip to content

Create CI workflow for Linux package building - #96

Merged
ElianThorne merged 1 commit into
TruFoundation:mainfrom
exlier:patch-1
Aug 9, 2026
Merged

Create CI workflow for Linux package building#96
ElianThorne merged 1 commit into
TruFoundation:mainfrom
exlier:patch-1

Conversation

@exlier

@exlier exlier commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Added a CI workflow for packaging and acceptance testing.

Summary

Short description of the change and why it is needed.

Related issue

Closes: # (issue number) or link to discussion

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • Tests added/updated and passing locally
  • CI is green
  • This change requires a human reviewer (first-time contributor or core subsystem)
  • I have run the compatibility/linting checks (if applicable)
  • Signed-off-by (DCO) or verified commit signature if modifying core subsystems

Description of changes

Provide details, references, and migration notes if needed.

Risk & Rollback

Describe the risk and how to roll back.

Summary by CodeRabbit

  • Documentation
    • Added packaging documentation covering Linux .deb and .rpm builds.
    • Documented artifact uploads and acceptance testing in the CI workflow.
    • Added guidance for required package metadata and build prerequisites.
    • Included instructions for building and installing packages locally.

Added a CI workflow for packaging and acceptance testing.
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Added packaging documentation to .github/workflows/ci-packaging.yml. The notes describe CI packaging scripts, required configuration, binary naming, fpm usage, artifact uploads, acceptance tests, and local packaging commands.

Changes

Packaging Documentation

Layer / File(s) Summary
Packaging workflow notes
.github/workflows/ci-packaging.yml
Documents Linux .deb and .rpm builds, helper scripts, required Cargo metadata, the trushell binary path, fpm requirements, artifact uploads, acceptance tests, and local packaging commands.

Estimated code review effort: 1 (Trivial) | ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: creating a CI workflow for Linux package building.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci-packaging.yml:
- Around line 1-17: Replace the raw documentation in ci-packaging.yml with YAML
comments or a block scalar, then restore valid GitHub Actions structure
including name, on, and jobs mappings for building, packaging, artifact upload,
and acceptance testing. Ensure the workflow references the existing packaging
scripts and validate the completed workflow with actionlint.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: baec7639-86fb-4fc1-8d05-c3992ecc1b45

📥 Commits

Reviewing files that changed from the base of the PR and between 148fdb9 and c4b2833.

📒 Files selected for processing (1)
  • .github/workflows/ci-packaging.yml

Comment on lines +1 to +17
Packaging notes

This branch adds a CI workflow and helper scripts to produce Linux packages (.deb and .rpm) and run basic acceptance tests.

What was added
- .github/workflows/ci-packaging.yml: GitHub Actions workflow that builds the project, runs tests, produces .deb/.rpm packages, uploads them as artifacts, and performs simple acceptance tests.
- packaging/build_rpm.sh: Small helper script that uses fpm to create an RPM from the release binary.
- packaging/acceptance_test.sh: A tiny smoke-test script (expects trushell in PATH).

What you should check / customize
- Cargo.toml package metadata: cargo-deb derives package metadata from Cargo.toml under [package.metadata.deb]. Add fields like maintainer, description, assets, etc., to produce richer DEB/RPM metadata.
- Binary name: scripts assume the built binary is target/release/trushell. If your binary name differs, update the workflow and build_rpm.sh call accordingly.
- fpm dependencies: building RPM uses fpm; CI installs it via gem. If you prefer cargo-rpm or another tool, adjust packaging/build_rpm.sh and the workflow.

How to use locally
- Install cargo-deb: cargo install cargo-deb
- Build .deb: cargo

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

Restore a valid GitHub Actions workflow before merging.

These lines are raw documentation, not valid workflow YAML. The parser fails at Line 6, so GitHub Actions cannot load .github/workflows/ci-packaging.yml. The supplied file also has no name, on, or jobs mapping, so it cannot build packages or run acceptance tests.

Move the notes into YAML comments or a block scalar, then restore the workflow definition and validate it with actionlint.

🧰 Tools
🪛 actionlint (1.7.12)

[error] 6-6: could not parse as YAML: mapping values are not allowed in this context

(syntax-check)

🪛 YAMLlint (1.37.1)

[error] 6-6: syntax error: mapping values are not allowed here

(syntax)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci-packaging.yml around lines 1 - 17, Replace the raw
documentation in ci-packaging.yml with YAML comments or a block scalar, then
restore valid GitHub Actions structure including name, on, and jobs mappings for
building, packaging, artifact upload, and acceptance testing. Ensure the
workflow references the existing packaging scripts and validate the completed
workflow with actionlint.

Source: Linters/SAST tools

@ElianThorne
ElianThorne merged commit de5b88d into TruFoundation:main Aug 9, 2026
2 checks passed
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.

2 participants