publish-js.sh 883 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. library_path="${1:-}"
  4. level="${2:-}"
  5. tag="${3:-latest}"
  6. dry_run="${DRY_RUN:-false}"
  7. if [[ -z "$library_path" || -z "$level" ]]; then
  8. echo "Usage: $0 <library_path> <version-level> [tag]"
  9. echo "Example: $0 clients/js patch beta"
  10. exit 1
  11. fi
  12. cd "$library_path"
  13. pnpm install
  14. # Build version args
  15. version_args=(--no-git-tag-version)
  16. if [[ "$level" == pre* ]]; then
  17. version_args+=(--preid "$tag")
  18. fi
  19. # Bump version and capture new version
  20. new_version=$(pnpm version "$level" "${version_args[@]}" | tail -n1 | sed 's/^v//;s/\r$//')
  21. # CI output
  22. if [[ -n "${CI:-}" ]]; then
  23. echo "new_version=${new_version}" >> "$GITHUB_OUTPUT"
  24. fi
  25. # Publish package
  26. pnpm publish --no-git-checks --tag "$tag"
  27. # Git commit and tag
  28. git commit -am "Publish JS client v${new_version}"
  29. git tag -a "js@v${new_version}" -m "JS client v${new_version}"