Skip to content

Linux build & smoke test fixes for the release workflow#95

Open
ruokun-niu wants to merge 7 commits intodrasi-project:mainfrom
ruokun-niu:linux-fix
Open

Linux build & smoke test fixes for the release workflow#95
ruokun-niu wants to merge 7 commits intodrasi-project:mainfrom
ruokun-niu:linux-fix

Conversation

@ruokun-niu
Copy link
Copy Markdown
Collaborator

Description

Linux build & smoke test fixes

Cross-compile (Dockerfiles)

  • Bumped Dockerfile.cross-{gnu,gnu-aarch64,musl,musl-aarch64} from Ubuntu 20.04 (EOL repos) to 22.04.
  • Added clang + libclang-dev so bindgen/zstd-sys find stddef.h.
  • Builds now run fully inside the container, avoiding host GLIBC mismatches.

Smoke test (.github/workflows/release.yaml)

  • Added plugin install source/mock and plugin install reaction/log steps (with --skip-verification) before the hello-world smoke test on Linux, Alpine/musl, and Windows, populating bin/plugins/.

Test config

  • Updated tests/integration/hello-world/config.yaml to match the smoke runner (mock source + log reaction loaded from bin/plugins).

Plugin compatibility (Cargo.toml / Cargo.lock)

Bumped host deps to match the latest plugins on ghcr.io/drasi-project:

  • drasi-host-sdk 0.6.0 → 0.6.2
  • drasi-lib 0.6.0 → 0.6.1
  • drasi-core 0.4.2 → 0.4.3

Without this bump the resolver rejected published plugins as incompatible.

Result

Linux GNU + musl cross builds succeed, and the post-build smoke test passes on Linux, macOS, and Windows.

Type of change

  • This pull request fixes a bug in Drasi and has an approved issue (issue link required).
  • This pull request adds or changes features of Drasi and has an approved issue (issue link required).
  • This pull request is a minor refactor, code cleanup, test improvement, or other maintenance task and doesn't change the functionality of Drasi (issue link optional).

Fixes: #issue_number

ruokun-niu added 5 commits May 4, 2026 16:42
Signed-off-by: ruokun-niu <ruokunniu@gmail.com>
Signed-off-by: ruokun-niu <ruokunniu@gmail.com>
Signed-off-by: ruokun-niu <ruokunniu@gmail.com>
Signed-off-by: ruokun-niu <ruokunniu@gmail.com>
Signed-off-by: ruokun-niu <ruokunniu@gmail.com>
Copy link
Copy Markdown
Contributor

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 updates the release workflow and cross-compilation environment to fix Linux (gnu + musl) builds and make the post-build “hello-world” smoke test succeed by ensuring required plugins are available and compatible.

Changes:

  • Update cross-compilation Dockerfiles (notably moving to Ubuntu 22.04 and adjusting toolchain/build deps) to resolve GLIBC/bindgen-related build failures.
  • Update the release workflow to install cross from git and pre-install required plugins before running the hello-world smoke test across platforms.
  • Bump Drasi host/plugin dependencies to match published plugin compatibility and adjust the integration test config accordingly.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
tests/integration/hello-world/config.yaml Aligns hello-world integration config with smoke-test plugin expectations (adds verification toggle + rationale comment).
Dockerfile.cross-musl-aarch64 Updates musl aarch64 cross toolchain base image selection.
Dockerfile.cross-musl Reworks musl x86_64 cross build container (Ubuntu 22.04 base + bindgen/include fixes + toolchain env).
Dockerfile.cross-gnu-aarch64 Updates gnu aarch64 cross toolchain base image selection.
Dockerfile.cross-gnu Updates gnu x86_64 cross toolchain base image selection.
Cargo.toml Bumps Drasi crate versions to match plugin compatibility requirements.
Cargo.lock Locks updated dependency graph for the bumped Drasi crates.
.github/workflows/release.yaml Adjusts Linux build to install cross from git and pre-installs required plugins for smoke tests (Unix/Alpine/Windows).

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

Comment thread tests/integration/hello-world/config.yaml
Comment thread Dockerfile.cross-gnu Outdated
Comment thread Dockerfile.cross-gnu-aarch64 Outdated
@@ -1,4 +1,4 @@
FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:0.2.5 AS toolchain
FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:main AS toolchain
Comment thread Dockerfile.cross-musl-aarch64 Outdated
Comment thread Dockerfile.cross-musl Outdated
Comment on lines +1 to +6
FROM ghcr.io/cross-rs/x86_64-unknown-linux-musl:main AS toolchain

# Use Ubuntu 22.04 (glibc 2.35) as the runtime base so build-script binaries
# produced by modern rustc (which require GLIBC_2.34) can execute. The cross-rs
# musl image is used only as a source for the musl cross-toolchain.
FROM ubuntu:22.04
Comment thread .github/workflows/release.yaml Outdated
Comment thread .github/workflows/release.yaml Outdated
Comment thread .github/workflows/release.yaml Outdated
@ruokun-niu ruokun-niu marked this pull request as draft May 5, 2026 20:14
Signed-off-by: ruokun-niu <ruokunniu@gmail.com>
@ruokun-niu ruokun-niu marked this pull request as ready for review May 5, 2026 21:21
Signed-off-by: ruokun-niu <ruokunniu@gmail.com>
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