Commit Graph

24 Commits

Author SHA1 Message Date
Marco Cadetg 069a203ae9 Refactor CI: share build logic via reusable workflow
- Add build-platforms.yml reusable workflow with full build matrix
- Add composite actions for setup-linux-deps, build-rustnet, build-static
- Simplify test-platform-builds.yml and release.yml to call shared workflow
- Update RELEASE.md: run test builds before release prep
2026-01-08 17:17:40 +01:00
Marco Cadetg c022d8897c trigger choco pkg publish on release 2026-01-08 08:16:58 +01:00
Marco Cadetg 6ee46410f8 ci: disable aarch64 static build, add test workflow
- Temporarily disable aarch64 static build (JS actions don't work in Alpine on ARM)
- Add test-static-builds.yml workflow to test fixes before applying to release
2026-01-07 20:23:44 +01:00
Marco Cadetg 2d387cfddd ci: trigger Homebrew formula update on release 2026-01-05 21:39:26 +01:00
Marco Cadetg 32b53ee276 Move FreeBSD builds to separate rustnet-bsd repo (#116) 2025-12-29 17:04:13 +01:00
Marco Cadetg 9289a0abb1 feat: add static musl binary builds for Linux (#103) (#113)
* feat: add static musl binary builds for Linux (#103)
* feat: add aarch64 static builds, clean up docs
2025-12-26 22:13:00 +01:00
dependabot[bot] 925d721670 chore(deps): bump the actions group across 1 directory with 3 updates (#94)
Bumps the actions group with 3 updates in the / directory: [actions/upload-artifact](https://github.com/actions/upload-artifact), [vmactions/freebsd-vm](https://github.com/vmactions/freebsd-vm) and [actions/download-artifact](https://github.com/actions/download-artifact).


Updates `actions/upload-artifact` from 5 to 6
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

Updates `vmactions/freebsd-vm` from 1.2.8 to 1.3.0
- [Release notes](https://github.com/vmactions/freebsd-vm/releases)
- [Commits](https://github.com/vmactions/freebsd-vm/compare/0cd283ca698d48b59cda444a9948f48a30709627...670398e4236735b8b65805c3da44b7a511fb8b27)

Updates `actions/download-artifact` from 6 to 7
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: vmactions/freebsd-vm
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: actions/download-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 12:57:37 +01:00
dependabot[bot] 1a47b1a8d8 chore(deps): bump vmactions/freebsd-vm in the actions group (#82)
Bumps the actions group with 1 update: [vmactions/freebsd-vm](https://github.com/vmactions/freebsd-vm).


Updates `vmactions/freebsd-vm` from 1.2.7 to 1.2.8
- [Release notes](https://github.com/vmactions/freebsd-vm/releases)
- [Commits](https://github.com/vmactions/freebsd-vm/compare/b9c3f24600acdef618ef1c9e2d3c6eeda4dce712...0cd283ca698d48b59cda444a9948f48a30709627)

---
updated-dependencies:
- dependency-name: vmactions/freebsd-vm
  dependency-version: 1.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 21:00:57 +01:00
Marco Cadetg 3a8e8614bc feat: reorganize platform code into per-platform directories (#81)
* feat: reorganize platform code into per-platform directories

- Move platform files into linux/, macos/, windows/, freebsd/ subdirectories
- Unify create_process_lookup() API with _use_pktap parameter across all platforms
- Update build.rs paths for eBPF program location
- Reduce cfg attributes in main mod.rs from ~42 to 8

* fix: widen tolerance for test_sliding_window_no_skip_first_sample

Increase acceptable range from 9000-11000 to 5000-15000 to account
for timing variability on macOS ARM CI runners.

* docs: update Linux build dependencies and remove EBPF_BUILD.md

- Add missing build-essential, pkg-config, zlib1g-dev to documentation
- Update rust.yml CI with complete dependencies
- Remove EBPF_BUILD.md (info already in INSTALL.md)
- Update references in README.md and ARCHITECTURE.md
2025-11-30 18:08:11 +01:00
Marco Cadetg f12a3e21cd chore: pin vmactions/freebsd-vm to v1.2.7 SHA 2025-11-22 18:59:05 +01:00
Marco Cadetg b85d69114c Use FreeBSD VM for native builds instead of cross-compilation
- Removed freebsd-x64 from cross-compilation matrix
- Added dedicated build-freebsd job using vmactions/freebsd-vm
- Builds natively on actual FreeBSD using pkg and native toolchain
- Updated test-freebsd workflow to use VM as well
- Avoids all cross-compilation sysroot/libpcap issues
2025-11-22 18:17:48 +01:00
Marco Cadetg 9796af5b71 Fix FreeBSD build by disabling eBPF for non-Linux platforms 2025-11-22 17:50:20 +01:00
dependabot[bot] eb4b72d318 chore(deps): bump actions/checkout from 5 to 6 (#78)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-21 17:34:02 +01:00
Marco Cadetg 85b2662c85 feat: add freebsd (#71)
* feat: add freebsd
2025-11-02 19:47:26 +01:00
dependabot[bot] 434a2edb5b chore(deps): bump actions/upload-artifact from 4 to 5 (#67)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 13:02:42 +01:00
dependabot[bot] 0ac881c75c chore(deps): bump actions/download-artifact from 5 to 6 (#66)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 13:02:23 +01:00
dependabot[bot] cde043b9d4 chore(deps): bump actions/download-artifact from 4 to 5 (#49)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-14 15:38:42 +02:00
dependabot[bot] 4c79b5ce8f chore(deps): bump actions/checkout from 4 to 5 (#51)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-14 15:38:01 +02:00
Marco Cadetg 52fb1c2cce feat: make eBPF default on Linux (#46)
Make eBPF the default build configuration on Linux for better
performance and lower overhead process identification.

Changes:
- Set default features to include ebpf in Cargo.toml
- Remove explicit --features linux-default from build configs
- Update all documentation to reflect eBPF is now default
- Add instructions for building without eBPF (--no-default-features)

eBPF automatically falls back to procfs if it fails to load.

Closes #32
2025-10-12 13:53:11 +02:00
Marco Cadetg 9f5ef592bf chore: use ubuntu 22.04 on linux x86 builds 2025-10-09 15:03:49 +02:00
Marco Cadetg e22c95fec1 fix: remove vmlinux crate dep (#28)
* fix: remove vmlinux crate dep

* fix: download architecture-specific vmlinux.h at build time

Instead of using a git dependency (not allowed on crates.io), download the
architecture-specific vmlinux.h header at build time from the libbpf/vmlinux.h
repository. This approach:

- Removes git dependency from Cargo.toml (crates.io compatible)
- Downloads correct arch-specific header (x86, aarch64, arm)
- Caches downloaded headers in OUT_DIR (reuses between builds)
- Works with cargo install
- Supports cross-compilation for all architectures

The vmlinux.h file (~3-4MB per arch) is downloaded once per architecture
and cached, so subsequent builds are fast.

* fix: use ureq with rustls instead of http_req

http_req depends on native-tls/openssl-sys which requires OpenSSL to be
installed in the cross-compilation containers. Switch to ureq with the
rustls backend which has no system dependencies and works in all
cross-compilation environments.

* fix: follow symlink when downloading vmlinux.h

The vmlinux.h files in the libbpf/vmlinux.h repository are symlinks to
versioned files (e.g. vmlinux_6.14.h). When downloading via
raw.githubusercontent.com, we get the symlink content (just the target
filename) instead of the actual file.

Solution: Download the symlink first to get the target filename, then
download the actual versioned file. This ensures we get the full header
content instead of just the symlink text.

* add crate publish workflow
2025-10-02 08:49:20 +02:00
Marco Cadetg 42db7f5614 fix: release workflow (#17)
* Remove musl targets to simplify Linux builds and fix cross-compilation issues
* Enable eBPF by default on Linux via linux-default feature for better packet capture
* Add macOS code signing and notarization support with graceful fallback for unsigned builds
* Fix Windows MSI packaging with improved WiX configuration and Npcap library linking
* Auto-extract changelog content from CHANGELOG.md into GitHub release notes
* Fix ARM cross-compilation (aarch64, armv7) with proper library paths and eBPF support
* Add comprehensive installation documentation for DMG, MSI, DEB, and RPM packages
* Allow re-running releases with --clobber flag for artifact uploads
2025-09-30 09:39:26 +02:00
Marco Cadetg d9798f9605 maybe fix windows msi packaging 2025-09-29 21:57:44 +02:00
Marco Cadetg eca0e6000d feat: add cross-platform packaging and release automation
- Add GitHub Actions workflow for automated releases
- Create .deb, .rpm, AppImage, .dmg, and .msi packages
- Generate shell completions and manpages in build.rs
- Add platform-specific icons from rustnet3.svg
- Include eBPF dependencies for Linux packages
- Support Windows 32-bit and 64-bit builds
- Extract shared CLI module to prevent duplication
2025-09-29 11:56:55 +02:00