Skip to content

Setup CI#1

Merged
ltfish merged 8 commits into
masterfrom
ci-setup
Jun 23, 2026
Merged

Setup CI#1
ltfish merged 8 commits into
masterfrom
ci-setup

Conversation

@ltfish

@ltfish ltfish commented Jun 23, 2026

Copy link
Copy Markdown
Member

No description provided.

@ltfish ltfish self-assigned this Jun 23, 2026
@ltfish ltfish added the enhancement New feature or request label Jun 23, 2026
ltfish and others added 6 commits June 23, 2026 15:10
Make srcdump compile and run on Windows alongside Unix:
- pool.rs: cross-platform worker termination (SIGKILL on unix,
  `taskkill /F /T` on Windows).
- env.rs: interpreter path helper (`Scripts/python.exe` vs `bin/python`),
  a non-unix Flock that holds the lock file open, and a uv download path
  that fetches the Windows `.zip` (extracting `uv.exe`) instead of `.tar.gz`;
  add the Windows uv target triples.

Also run `cargo fmt` across the tree so `cargo fmt --check` passes in CI.
- Unit tests (no angr needed): highlight lexer/painter, `-f` filter and
  address parsing, `human_bytes`, and serde round-trips of the cache types.
- tests/fixtures/addsample: a tiny symboled ELF (`main`, `add`) used by the
  end-to-end CI job to exercise a real decompile on every platform.
Runs on pushes to master and all PRs: a lint job (`cargo fmt --check`,
`cargo clippy --all-targets -D warnings`) plus a build/test matrix across
ubuntu, macOS (arm64), and Windows that runs `cargo test`, a release build,
and a `--version` smoke check. Pure-Rust, so no angr is needed here.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
On pull requests, across Linux, macOS (arm64), and Windows: install uv
(cached), build srcdump, then provision angr and decompile the fixture
binary end-to-end — asserting the function list and a decompiled `main`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
On pushing a `vX.Y.Z` tag: verify the tag matches the crate version, then
build and upload binaries to a GitHub Release via
taiki-e/upload-rust-binary-action for:
  - x86_64-unknown-linux-musl   (static)
  - aarch64-unknown-linux-musl  (static)
  - aarch64-apple-darwin        (Apple Silicon)
  - x86_64-pc-windows-msvc
Archives are named srcdump-<tag>-<target> with sha256 checksums.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Cargo.toml: repository/homepage/keywords/categories and an `exclude` so the
  published crate stays lean.
- publish.yml: on version tags, runs `cargo publish` only when a
  CARGO_REGISTRY_TOKEN secret is configured (dormant otherwise).
- .gitignore: ignore core dumps.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ltfish ltfish merged commit 5884f64 into master Jun 23, 2026
7 checks passed
@ltfish ltfish deleted the ci-setup branch June 23, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant