chore: proper build and publication to npm - #23
Merged
Conversation
sotnikov-s
marked this pull request as ready for review
April 8, 2026 11:08
…re, add verify-build workflow
- stop tracking build/ artifacts (1695 files); add /build/ back to .gitignore - replace verify-build.yml with ci.yml (codegen freshness + build check) - add publish.yml (tag-triggered npm publish with version guard) - remove .circleci/config.yml (replaced by GitHub Actions) - fix shellcheck false positives in prepare-publishing.sh and exports_protos.sh - fix unquoted variables in set-versions.sh
The buf export step fails with shallow clones because submodules need to be checked out at their tagged versions (via set-versions.sh) before exports_protos.sh can resolve consistent proto dependencies.
actions/checkout with submodules: recursive forces --depth=1 on submodules, making tags unavailable for set-versions.sh. Switch to manual git submodule update --init --recursive (full clone) which matches the old CircleCI approach.
.gitmodules uses [email protected]: SSH URLs but Actions runners have no SSH keys. Add url.insteadOf config to rewrite to HTTPS before cloning submodules.
sotnikov-s
commented
Apr 9, 2026
Co-authored-by: sotnikov-s <[email protected]>
…eutronjs into chore/proper-build-and-pub
The v1.2.0 tag and pinned commit (f0e55c2) exist in neutron-org/feemarket, not in skip-mev/feemarket (upstream).
Pin buf to v1.16.0 to match the old CircleCI config. Newer buf versions reject conflicting cosmos-proto refs in neutron's buf.work.yaml workspace (upstream issue). Switch from ubuntu-latest to ubicloud-standard-8 runners.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
baseUrlfrom tsconfig (fixes TS5101)./builddirectory with cleanpackage.json(no scripts/devDependencies)build/stays in.gitignore, generated at build timeverify-build.ymlwith two GitHub Actions workflows:src/matches proto output) and TypeScript compilationv*tags — full CI checks + version guard (tag must matchpackage.jsonversion) +npm publish ./buildprepare-publishing.sh,exports_protos.sh, andset-versions.shthat caused silent build failuresSetup required
NPM_TOKENsecret to the repo settings for the publish workflowHow to publish
# Update version in package.json, commit, then: git tag v5.0.0 git push origin v5.0.0The publish workflow will run all checks and publish to npm automatically.
Test plan
npm run buildsucceeds locally andbuild/package.jsonexists without scripts/devDependenciesnpm publish ./build --dry-runshows correct 1689 files / 12.7 MB package