75 lines
2.2 KiB
Bash
Executable file
75 lines
2.2 KiB
Bash
Executable file
#!/bin/sh
|
|
set -eu
|
|
. "$(dirname "$0")/../../../ci/sub/lib.sh"
|
|
cd -- "$(dirname "$0")/.."
|
|
|
|
cd ../..
|
|
sh_c "GOOS=js GOARCH=wasm go build -ldflags='-s -w' -trimpath -o main.wasm ./d2js"
|
|
sh_c "mv main.wasm ./d2js/js/wasm/d2.wasm"
|
|
|
|
if [ ! -f ./d2js/js/wasm/d2.wasm ]; then
|
|
echoerr "Error: d2.wasm is missing"
|
|
exit 1
|
|
else
|
|
echo "d2.wasm exists. Size:"
|
|
ls -lh ./d2js/js/wasm/d2.wasm | awk '{print $5}'
|
|
fi
|
|
|
|
cd d2js/js
|
|
sh_c bun build.js
|
|
|
|
if [ -n "$NPM_VERSION" ]; then
|
|
cp package.json package.json.bak
|
|
trap 'rm -f .npmrc; mv package.json.bak package.json' EXIT
|
|
|
|
if [ "$NPM_VERSION" = "nightly" ]; then
|
|
echo "Publishing nightly version to npm..."
|
|
|
|
DATE_TAG=$(date +'%Y%m%d')
|
|
COMMIT_SHORT=$(git rev-parse --short HEAD)
|
|
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
PUBLISH_VERSION="${CURRENT_VERSION}-nightly.${DATE_TAG}.${COMMIT_SHORT}"
|
|
NPM_TAG="nightly"
|
|
|
|
echo "Updating package version to ${PUBLISH_VERSION}"
|
|
else
|
|
echo "Publishing official version ${NPM_VERSION} to npm..."
|
|
PUBLISH_VERSION="$NPM_VERSION"
|
|
NPM_TAG="latest"
|
|
|
|
echo "Setting package version to ${PUBLISH_VERSION}"
|
|
fi
|
|
|
|
# Update package.json with the new version
|
|
npm version "${PUBLISH_VERSION}" --no-git-tag-version
|
|
|
|
echo "Publishing to npm with tag '${NPM_TAG}'..."
|
|
if [ -n "${NPM_TOKEN-}" ]; then
|
|
# Create .npmrc file with auth token
|
|
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
|
|
|
|
if npm publish --tag "$NPM_TAG"; then
|
|
echo "Successfully published @terrastruct/d2@${PUBLISH_VERSION} to npm with tag '${NPM_TAG}'"
|
|
|
|
# For official releases, bump the patch version
|
|
if [ "$NPM_VERSION" != "nightly" ]; then
|
|
# Restore original package.json first
|
|
mv package.json.bak package.json
|
|
|
|
echo "Bumping version to ${NPM_VERSION}"
|
|
npm version "${NPM_VERSION}" --no-git-tag-version
|
|
git add package.json
|
|
git commit -m "Bump version to ${NPM_VERSION} [skip ci]"
|
|
|
|
# Cancel the trap since we manually restored and don't want it to execute on exit
|
|
trap - EXIT
|
|
fi
|
|
else
|
|
echoerr "Failed to publish package to npm"
|
|
exit 1
|
|
fi
|
|
else
|
|
echoerr "NPM_TOKEN environment variable is required for publishing to npm"
|
|
exit 1
|
|
fi
|
|
fi
|