Skip to content

chore: proper build and publication to npm - #23

Merged
sotnikov-s merged 20 commits into
mainfrom
chore/proper-build-and-pub
Apr 10, 2026
Merged

chore: proper build and publication to npm#23
sotnikov-s merged 20 commits into
mainfrom
chore/proper-build-and-pub

Conversation

@sotnikov-s

@sotnikov-s sotnikov-s commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Bumps TypeScript to v6, removes deprecated baseUrl from tsconfig (fixes TS5101)
  • Restructures package building to publish from ./build directory with clean package.json (no scripts/devDependencies)
  • Removes 1695 build artifacts from git — build/ stays in .gitignore, generated at build time
  • Replaces CircleCI and verify-build.yml with two GitHub Actions workflows:
    • ci.yml: runs on PRs/pushes to main — verifies codegen freshness (src/ matches proto output) and TypeScript compilation
    • publish.yml: runs on v* tags — full CI checks + version guard (tag must match package.json version) + npm publish ./build
  • Fixes shellcheck issues in prepare-publishing.sh, exports_protos.sh, and set-versions.sh that caused silent build failures

Setup required

  • Add NPM_TOKEN secret to the repo settings for the publish workflow

How to publish

# Update version in package.json, commit, then:
git tag v5.0.0
git push origin v5.0.0

The publish workflow will run all checks and publish to npm automatically.

Test plan

  • CI workflow triggers on this PR and passes (codegen check + build)
  • npm run build succeeds locally and build/package.json exists without scripts/devDependencies
  • npm publish ./build --dry-run shows correct 1689 files / 12.7 MB package
  • After merge, tag a release and verify publish workflow runs

sotnikov-s and others added 7 commits April 8, 2026 16:41
- 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.
Comment thread .github/workflows/publish.yml Outdated
keylogic1 and others added 10 commits April 9, 2026 19:09
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.
@sotnikov-s
sotnikov-s merged commit 97a7067 into main Apr 10, 2026
1 of 2 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