git.delta.rocks / unique-network / refs/commits / d87dff3879be

difftreelog

fix type package generator for new versioning

Yaroslav Bolyukin2023-10-31parent: #2286a22.patch.diff
in: master

1 file changed

modifiedtests/scripts/generate_types_package.shdiffbeforeafterboth
before · tests/scripts/generate_types_package.sh
1#!/usr/bin/env bash23set -eu45DIR=$(realpath $(dirname "$0"))6TEMPLATE=$DIR/types_template7GIT_REPO=git@github.com:UniqueNetwork/unique-types-js.git89. $DIR/functions.sh1011usage() {12	echo "Usage: [RPC_URL=http://localhost:9944] $0 <--rc|--release> [--force] [--push] [--rpc-url=http://localhost:9944]" 1>&213	exit 114}1516rc=17release=18force=19push=2021for i in "$@"; do22case $i in23	--rc)24		rc=125		if test "$release"; then usage; fi26		;;27	--release)28		release=129		if test "$rc"; then usage; fi30		;;31	--force)32		force=133		;;34	--push)35		push=136		;;37	--rpc-url=*)38		RPC_URL=${i#*=}39		;;40	*)41		usage42		;;43esac44done4546if test \( ! \( "$rc" -o "$release" \) \) -o \( "${RPC_URL=}" = "" \); then47	usage48elif test "$rc"; then49	echo "Rc build"50else51	echo "Release build"52fi5354cd $DIR/..55yarn polkadot-types5657version=$(do_rpc state_getRuntimeVersion "")58spec_version=$(echo $version | jq -r .result.specVersion)59spec_name=$(echo $version | jq -r .result.specName)60echo "Spec version: $spec_version, name: $spec_name"6162case $spec_name in63	opal)64		package_name=@unique-nft/opal-testnet-types65		repo_branch=opal-testnet66		repo_tag=$repo_branch67		;;68	sapphire)69		package_name=@unique-nft/sapphire-mainnet-types70		repo_branch=sapphire-mainnet71		repo_tag=$repo_branch72		;;73	quartz)74		package_name=@unique-nft/quartz-mainnet-types75		repo_branch=quartz-mainnet76		repo_tag=$repo_branch77		;;78	unique)79		package_name=@unique-nft/unique-mainnet-types80		repo_branch=master81		repo_tag=unique-mainnet82		;;83	*)84		echo "unknown spec name: $spec_name"85		exit 186		;;87esac8889if test "$rc" = 1; then90	if "$spec_name" != opal; then91		echo "rc types can only be based on opal spec"92		exit 193	fi94	package_name=@unique-nft/rc-types95	repo_branch=rc96	repo_tag=$repo_branch97fi9899package_version=${spec_version:0:3}.$(echo ${spec_version:3:3} | sed 's/^0*//').100last_patch=NEVER101for tag in $(git ls-remote -t --refs $GIT_REPO | cut -f 2 | sort -r); do102	tag_prefix=refs/tags/$repo_tag-v$package_version103	if [[ $tag == $tag_prefix* ]]; then104		last_patch=${tag#$tag_prefix}105		break;106	fi107done108echo "Package version: ${package_version}X, name: $package_name"109echo "Last published: $package_version$last_patch"110111if test "$last_patch" = "NEVER"; then112	new_package_version=${package_version}0113else114	new_package_version=${package_version}$((last_patch+1))115fi116package_version=${package_version}$last_patch117echo "New package version: $new_package_version"118119pjsapi_ver=^$(cat $DIR/../package.json | jq -r '.dependencies."@polkadot/api"' | sed -e "s/^\^//")120tsnode_ver=^$(cat $DIR/../package.json | jq -r '.devDependencies."ts-node"' | sed -e "s/^\^//")121ts_ver=^$(cat $DIR/../package.json | jq -r '.devDependencies."typescript"' | sed -e "s/^\^//")122123gen=$(mktemp -d)124pushd $gen125git clone $GIT_REPO -b $repo_branch --depth 1 .126if test "$last_patch" != "NEVER"; then127	git reset --hard $repo_tag-v$package_version128fi129git rm -r "*"130popd131132# Using old package_version here, becaue we first check if133# there is any difference between generated and already uplaoded types134cat $TEMPLATE/package.json \135| jq '.private = false' - \136| jq '.name = "'$package_name'"' - \137| jq '.version = "'$package_version'"' - \138| jq '.peerDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \139| jq '.peerDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \140| jq '.devDependencies."@polkadot/api" = "'$pjsapi_ver'"' - \141| jq '.devDependencies."@polkadot/types" = "'$pjsapi_ver'"' - \142| jq '.devDependencies."ts-node" = "'$tsnode_ver'"' - \143| jq '.devDependencies."typescript" = "'$ts_ver'"' - \144> $gen/package.json145for file in .gitignore .npmignore README.md tsconfig.json; do146	cp $TEMPLATE/$file $gen/147done148package_name_replacement=$(printf '%s\n' "$package_name" | sed -e 's/[\/&]/\\&/g')149sed -i 's/PKGNAME/'$package_name_replacement'/' $gen/README.md150151rsync -ar --exclude .gitignore src/interfaces/ $gen152for file in $gen/augment-* $gen/**/types.ts $gen/registry.ts; do153	sed -i '1s;^;//@ts-nocheck\n;' $file154done155156pushd $gen157git add .158popd159160pushd $gen161if git diff --quiet HEAD && test ! "$force"; then162	echo "no changes detected"163	exit 0164fi165popd166167mv $gen/package.json $gen/package.old.json168cat $gen/package.old.json \169| jq '.version = "'$new_package_version'"' - \170> $gen/package.json171rm $gen/package.old.json172pushd $gen173git add package.json174popd175176echo "package.json contents:"177cat $gen/package.json178echo "overall diff:"179pushd $gen180git status181git diff HEAD || true182popd183184# This check is only active if running in interactive terminal185if [ -t 0 ]; then186	read -p "Is everything ok at $gen [y/n]? " -n 1 -r187	echo188	if [[ ! $REPLY =~ ^[Yy]$ ]]; then189		echo "Aborting!"190		exit 1191	fi192fi193194pushd $gen195yarn196yarn prepublish197git commit -m "chore: upgrade types to v$new_package_version"198git tag --force $repo_tag-v$new_package_version199if test "$push" = 1; then200	git push --tags --force -u origin HEAD201else202	echo "--push not given, origin repo left intact"203	echo "To publish manually, go to $gen, and run \"git push --tags --force -u origin HEAD\""204fi205popd