Skip to content

ci: add npm tarball artifact to release workflow#96

Merged
thiagoralves merged 2 commits into
mainfrom
development
Apr 14, 2026
Merged

ci: add npm tarball artifact to release workflow#96
thiagoralves merged 2 commits into
mainfrom
development

Conversation

@thiagoralves
Copy link
Copy Markdown
Contributor

Summary

  • Add a new build-npm job to the release workflow that runs npm pack to produce a platform-independent .tgz tarball
  • Include the .tgz in GitHub Release assets alongside existing platform-specific binaries
  • This tarball is consumed by OpenPLC Editor to install STruC++ as both a TypeScript dependency and C++ runtime header provider

Context

OpenPLC Editor is migrating from MatIEC to STruC++ for IEC 61131-3 compilation. The editor needs STruC++ as an npm package (for the compile() API) and also needs the C++ runtime headers (for Arduino compilation). The .tgz bundles both in a single versioned artifact, following the same download-from-GitHub-Releases pattern used for matiec and xml2st.

Test plan

  • Verify the build-npm job produces a valid .tgz artifact
  • Verify npm install strucpp-<version>.tgz installs correctly
  • Verify the installed package contains dist/, src/runtime/include/, and libs/

🤖 Generated with Claude Code

thiagoralves and others added 2 commits April 14, 2026 13:25
…bols are used

Walks the AST after semantic analysis to collect all referenced symbol
names (function calls, type references, FB instantiations, inheritance)
and matches them against library manifests.  Only libraries with at
least one referenced symbol (plus transitive dependencies) are injected
into the generated C++ output.  Test builds (isTestBuild) skip
tree-shaking since the test harness may reference any library symbol.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add a new build-npm job that runs `npm pack` to produce a
platform-independent .tgz tarball. This artifact is uploaded to GitHub
Releases alongside the existing platform-specific binaries.

The npm tarball is used by OpenPLC Editor to install STruC++ as a
TypeScript dependency (for the compile() API) while also bundling the
C++ runtime headers and .stlib libraries in a single versioned artifact.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@thiagoralves thiagoralves merged commit b2fbd94 into main Apr 14, 2026
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.

1 participant