Skip to content

ci: debian builds and release workflow#1608

Open
ghaith wants to merge 11 commits intomasterfrom
debian_builds
Open

ci: debian builds and release workflow#1608
ghaith wants to merge 11 commits intomasterfrom
debian_builds

Conversation

@ghaith
Copy link
Collaborator

@ghaith ghaith commented Feb 23, 2026

This PR creates debian packages for the plc binary and the stdlib.
it also introduces release workflows to publish a latest release on master pushes and uses Release Please automation. On each push to master, Release Please creates or updates a "Release PR" that bumps versions based on conventional commits. When this Release PR is merged, it automatically creates a GitHub release which triggers the release workflow.

The PR for release will auto-update with every new push to master so we can gather several features as one before releasing.

Note: this was entirely vibe-coded take extra care when reviewing

Install and use cargo-deb in CI, add a --deb mode to scripts/build.sh
with functions to produce plc and libiec61131std .deb packages. Upload
.deb artifacts and add an update-latest job to publish prerelease
assets.

Add release workflow to build and attach release assets, plus
release-please action, manifest and config. Bump crate versions and
add Debian metadata for packaging.
@codecov
Copy link

codecov bot commented Feb 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.64%. Comparing base (4e9592b) to head (77f3df0).
⚠️ Report is 4 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1608      +/-   ##
==========================================
- Coverage   94.66%   94.64%   -0.03%     
==========================================
  Files         185      187       +2     
  Lines       58437    58663     +226     
==========================================
+ Hits        55322    55521     +199     
- Misses       3115     3142      +27     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds Debian packaging for the plc compiler and the IEC 61131-3 standard library, and introduces release automation via Release Please plus workflows that publish release artifacts (including .debs) and update a rolling “latest” prerelease.

Changes:

  • Add Debian packaging support: cargo-deb for plc and custom dpkg-deb packaging for libiec61131std (including maintainer scripts/templates).
  • Update CI workflows to build/upload .deb artifacts and build Docker images from those packages.
  • Introduce Release Please configuration/manifest and a release workflow to upload binaries and .deb assets.

Reviewed changes

Copilot reviewed 14 out of 15 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
scripts/debian/plc/copyright Debian copyright metadata for the plc package.
scripts/debian/libiec61131std/control.template Control file template for libiec61131std Debian package.
scripts/debian/libiec61131std/postinst Maintainer script to run ldconfig after install.
scripts/debian/libiec61131std/postrm Maintainer script to run ldconfig after removal.
scripts/debian/libiec61131std/copyright Debian copyright metadata for libiec61131std (includes stdlib license stanza).
scripts/build.sh Adds --deb flag and implementation to produce Debian packages.
compiler/plc_driver/Cargo.toml Bumps version and adds cargo-deb metadata/assets for the plc package.
libs/stdlib/Cargo.toml Bumps stdlib crate version.
Cargo.lock Updates locked versions for bumped crates.
Dockerfile Switches image build to install compiler/stdlib from .deb artifacts.
release-please-config.json Adds Release Please configuration for Rust releases and extra versioned files.
.release-please-manifest.json Adds Release Please manifest with current version.
.github/workflows/release-please.yml Adds Release Please workflow on master pushes.
.github/workflows/release.yml Adds release workflow to build and upload binaries + .deb assets on GitHub Release publish.
.github/workflows/linux.yml Updates Linux workflow to build .debs, use them for Docker image builds, and create a rolling “latest” prerelease.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Member

@mhasel mhasel left a comment

Choose a reason for hiding this comment

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

Since I am not really familiar with CI, and especially with release-please, same dislaimer as in your PR message:

On top of my own review, I let an agent review it aswell. I've discarded review comments that were obviously wrong or not conclusive to me.

@ghaith
Copy link
Collaborator Author

ghaith commented Feb 24, 2026

Since I am not really familiar with CI, and especially with release-please, same dislaimer as in your PR message:

On top of my own review, I let an agent review it aswell. I've discarded review comments that were obviously wrong or not conclusive to me.

I let my AI review your AI's review and perform the changes and a self review..

@mhasel
Copy link
Member

mhasel commented Feb 24, 2026

Since I am not really familiar with CI, and especially with release-please, same dislaimer as in your PR message:
On top of my own review, I let an agent review it aswell. I've discarded review comments that were obviously wrong or not conclusive to me.

I let my AI review your AI's review and perform the changes and a self review..

ouroboros.jpg

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.

3 participants