Skip to content

Remove agent-release.json and limit release builds to version tags - #438

Merged
si458 merged 1 commit into
Ylianst:masterfrom
Rambomst:drop-agent-release-manifest
Oct 8, 2026
Merged

si458 merged 1 commit into
Ylianst:masterfrom
Rambomst:drop-agent-release-manifest

Conversation

@Rambomst

@Rambomst Rambomst commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Summary

In this pull request, the following changes are made:

  • .github/workflows/release.yml: the *.*.* tag filter also matched legacy-1.2.6. Publishing that migration draft creates its tag, so Agent Release started and failed at "Require a version tag". The filter now only matches version tags such as 1.2.0, 1.2.0-beta.1 and v1.2.0.

  • .github/scripts/agent-release.js, release.yml, release-migration.yml: removed agent-release.json. MeshCentral never reads it; default downloads are verified against the SHA384 pinned in its agents/agent-defaults.json and imports against GitHub's SHA256 asset digest. A manifest written at draft creation only went stale when a draft file was signed or replaced. check still verifies that the build produced exactly release-files.json.

  • docs/releases.md: updated to match.

  • Relates to Add tagged agent releases and bundled binary migration #426

  • Relates to Agent build management MeshCentral#8177

Please follow this checklist to avoid unnecessary back and forth (click to expand)
  • 🧠 I used LLMs/AI in this contribution and reviewed all generated content.
    I understand that I am responsible for and able to explain every line of code I submit.
  • 🛠️ I have self-reviewed my code and self-tested it against a MeshCentral server to ensure it works as expected.
  • 🖥️ My change compiles on every platform it affects (Windows / Linux / macOS / FreeBSD), and I have considered
    the impact on platforms and architectures I could not test.
  • 📦 If I changed JavaScript modules under modules/, I re-embedded them so the compiled-in copies in
    microscript/ILibDuktape_Polyfills.c match (the agent runs the embedded copies, not the files on disk).
  • 🤖 I ran the agent self-test where appropriate (see "Self Test" in readme.md).
  • 📄 Documentation updates are included (if applicable), e.g. the .msh options table in readme.md.
  • 🧰 Updates to vendored dependencies (OpenSSL, zlib, ...) are listed and explained.
  • ⚠️ CI passes and is green (Windows / Linux / macOS / FreeBSD builds and CodeQL).

Testing

Platform (OS / distro / arch) Tested Result
Arch Linux x64, Node 26 ✅ check passes for the 15 files in release-files.json and fails on an extra, missing or empty file and on a non-version tag. migrate legacy and migrate september restore the 1.2.6 files from a MeshCentral checkout and from GitHub and verify every size and SHA384.
GitHub Actions Not run yet. Tag filters checked against 1.2.0, 1.2.0-beta.1, v1.2.0, legacy-1.2.6, testing-sep2026 and MeshCentral_v1.1.0 using GitHub's filter pattern rules.

- Limited the `release.yml` tag filter to version tags such as `1.2.0`, `1.2.0-beta.1` and `v1.2.0`. `*.*.*` also matched `legacy-1.2.6`, so publishing that migration draft started a release run that failed at "Require a version tag".
- Removed the `agent-release.json` manifest. MeshCentral verifies default downloads against the SHA384 pinned in its own `agents/agent-defaults.json` and imports against GitHub's SHA256 asset digest, so the manifest went stale whenever a draft file was signed or replaced.
- Replaced the `manifest` mode of `agent-release.js` with `check`, which only verifies that the build produced exactly the files in `release-files.json`.
- Read the migration tag from `release-migration.json` and pointed the migration release notes at it for source paths and checksums.
- Updated `docs/releases.md`.
@si458
si458 merged commit 26846b1 into Ylianst:master Oct 8, 2026
15 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