feat: Add rebrand CI/CD workflows to main branch
- Add 72 rebrand workflow files (polkadot→pezkuwi, substrate→bizinikiwi, cumulus→pezcumulus) - Add GitHub actions, issue templates, and configs - Removed unnecessary workflows (fork-sync, gitspiegel, upstream-tracker, sync-templates, backport) - Renamed zombienet test files to match new naming convention
This commit is contained in:
@@ -0,0 +1,206 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Set the new version by replacing the value of the constant given as pattern
|
||||
# in the file.
|
||||
#
|
||||
# input: pattern, version, file
|
||||
#output: none
|
||||
set_version() {
|
||||
pattern=$1
|
||||
version=$2
|
||||
file=$3
|
||||
|
||||
sed -i "s/$pattern/\1\"${version}\"/g" $file
|
||||
return 0
|
||||
}
|
||||
|
||||
# Commit changes to git with specific message.
|
||||
# "|| true" does not let script to fail with exit code 1,
|
||||
# in case there is nothing to commit.
|
||||
#
|
||||
# input: MESSAGE (any message which should be used for the commit)
|
||||
# output: none
|
||||
commit_with_message() {
|
||||
MESSAGE=$1
|
||||
git commit -a -m "$MESSAGE" || true
|
||||
}
|
||||
|
||||
# Retun list of the runtimes filterd
|
||||
# input: none
|
||||
# output: list of filtered runtimes
|
||||
get_filtered_runtimes_list() {
|
||||
grep_filters=("runtime.*" "test|template|starters|substrate")
|
||||
|
||||
git grep spec_version: | grep .rs: | grep -e "${grep_filters[0]}" | grep "lib.rs" | grep -vE "${grep_filters[1]}" | cut -d: -f1
|
||||
}
|
||||
|
||||
# Sets provided spec version
|
||||
# input: version
|
||||
set_spec_versions() {
|
||||
NEW_VERSION=$1
|
||||
runtimes_list=(${@:2})
|
||||
|
||||
printf "Setting spec_version to $NEW_VERSION\n"
|
||||
|
||||
for f in ${runtimes_list[@]}; do
|
||||
printf " processing $f"
|
||||
sed -ri "s/spec_version: [0-9]+_[0-9]+_[0-9]+,/spec_version: $NEW_VERSION,/" $f
|
||||
done
|
||||
|
||||
commit_with_message "Bump spec_version to $NEW_VERSION"
|
||||
|
||||
git_show_log 'spec_version'
|
||||
}
|
||||
|
||||
# Displays formated results of the git log command
|
||||
# for the given pattern which needs to be found in logs
|
||||
# input: pattern, count (optional, default is 10)
|
||||
git_show_log() {
|
||||
PATTERN="$1"
|
||||
COUNT=${2:-10}
|
||||
git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=iso-strict | \
|
||||
head -n $COUNT | grep -iE "$PATTERN" --color=always -z
|
||||
}
|
||||
|
||||
# Get a spec_version number from the crate version
|
||||
#
|
||||
# ## inputs
|
||||
# - v1.12.0 or 1.12.0
|
||||
#
|
||||
# ## output:
|
||||
# 1_012_000 or 1_012_001 if SUFFIX is set
|
||||
function get_spec_version() {
|
||||
INPUT=$1
|
||||
SUFFIX=${SUFFIX:-000} #this variable makes it possible to set a specific runtime version like 93826 it can be initialised as system variable
|
||||
[[ $INPUT =~ .*([0-9]+\.[0-9]+\.[0-9]{1,2}).* ]]
|
||||
VERSION="${BASH_REMATCH[1]}"
|
||||
MATCH="${BASH_REMATCH[0]}"
|
||||
if [ -z $MATCH ]; then
|
||||
return 1
|
||||
else
|
||||
SPEC_VERSION="$(sed -e "s/\./_0/g" -e "s/_[^_]*\$/_$SUFFIX/" <<< $VERSION)"
|
||||
echo "$SPEC_VERSION"
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
# Reorganize the prdoc files for the release
|
||||
#
|
||||
# input: VERSION (e.g. v1.0.0)
|
||||
# output: none
|
||||
reorder_prdocs() {
|
||||
VERSION="$1"
|
||||
|
||||
printf "[+] ℹ️ Reordering prdocs:"
|
||||
|
||||
VERSION=$(sed -E 's/^v([0-9]+\.[0-9]+\.[0-9]+).*$/\1/' <<< "$VERSION") #getting reed of the 'v' prefix
|
||||
mkdir -p "prdoc/$VERSION"
|
||||
mv prdoc/pr_*.prdoc prdoc/$VERSION
|
||||
git add -A
|
||||
commit_with_message "Reordering prdocs for the release $VERSION"
|
||||
}
|
||||
|
||||
# Bump the binary version of the pezkuwi-teyrchain binary with the
|
||||
# new bumped version and commit changes.
|
||||
#
|
||||
# input: version e.g. 1.16.0
|
||||
set_pezkuwi_teyrchain_binary_version() {
|
||||
bumped_version="$1"
|
||||
cargo_toml_file="$2"
|
||||
|
||||
set_version "\(^version = \)\".*\"" $bumped_version $cargo_toml_file
|
||||
|
||||
cargo update --workspace --offline # we need this to update Cargo.loc with the new versions as well
|
||||
|
||||
MESSAGE="Bump versions in: ${cargo_toml_file}"
|
||||
commit_with_message "$MESSAGE"
|
||||
git_show_log "$MESSAGE"
|
||||
}
|
||||
|
||||
|
||||
upload_s3_release() {
|
||||
alias aws='podman run --rm -it docker.io/paritytech/awscli -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_BUCKET aws'
|
||||
|
||||
product=$1
|
||||
version=$2
|
||||
target=$3
|
||||
|
||||
echo "Working on product: $product "
|
||||
echo "Working on version: $version "
|
||||
echo "Working on platform: $target "
|
||||
|
||||
URL_BASE=$(get_s3_url_base $product)
|
||||
|
||||
echo "Current content, should be empty on new uploads:"
|
||||
aws s3 ls "s3://${URL_BASE}/${version}/${target}" --recursive --human-readable --summarize || true
|
||||
echo "Content to be uploaded:"
|
||||
artifacts="release-artifacts/$target/$product/"
|
||||
ls "$artifacts"
|
||||
aws s3 sync --acl public-read "$artifacts" "s3://${URL_BASE}/${version}/${target}"
|
||||
echo "Uploaded files:"
|
||||
aws s3 ls "s3://${URL_BASE}/${version}/${target}" --recursive --human-readable --summarize
|
||||
echo "✅ The release should be at https://${URL_BASE}/${version}/${target}"
|
||||
}
|
||||
|
||||
# Upload runtimes artifacts to s3 release bucket
|
||||
#
|
||||
# input: version (stable release tag e.g. pezkuwi-stable2412 or pezkuwi-stable2412-rc1)
|
||||
# output: none
|
||||
upload_s3_runtimes_release_artifacts() {
|
||||
alias aws='podman run --rm -it docker.io/paritytech/awscli -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_BUCKET aws'
|
||||
|
||||
version=$1
|
||||
|
||||
echo "Working on version: $version "
|
||||
|
||||
echo "Current content, should be empty on new uploads:"
|
||||
aws s3 ls "s3://releases.parity.io/pezkuwi/runtimes/${version}/" --recursive --human-readable --summarize || true
|
||||
echo "Content to be uploaded:"
|
||||
artifacts="artifacts/runtimes/"
|
||||
ls "$artifacts"
|
||||
aws s3 sync --acl public-read "$artifacts" "s3://releases.parity.io/pezkuwi/runtimes/${version}/"
|
||||
echo "Uploaded files:"
|
||||
aws s3 ls "s3://releases.parity.io/pezkuwi/runtimes/${version}/" --recursive --human-readable --summarize
|
||||
echo "✅ The release should be at https://releases.parity.io/pezkuwi/runtimes/${version}"
|
||||
}
|
||||
|
||||
|
||||
# Pass the name of the binary as input, it will
|
||||
# return the s3 base url
|
||||
function get_s3_url_base() {
|
||||
name=$1
|
||||
case $name in
|
||||
pezkuwi | pezkuwi-execute-worker | pezkuwi-prepare-worker )
|
||||
printf "releases.parity.io/pezkuwi"
|
||||
;;
|
||||
|
||||
pezkuwi-teyrchain)
|
||||
printf "releases.parity.io/pezkuwi-teyrchain"
|
||||
;;
|
||||
|
||||
pezkuwi-omni-node)
|
||||
printf "releases.parity.io/pezkuwi-omni-node"
|
||||
;;
|
||||
|
||||
chain-spec-builder)
|
||||
printf "releases.parity.io/chain-spec-builder"
|
||||
;;
|
||||
|
||||
frame-omni-bencher)
|
||||
printf "releases.parity.io/frame-omni-bencher"
|
||||
;;
|
||||
substrate-node)
|
||||
printf "releases.parity.io/substrate-node"
|
||||
;;
|
||||
eth-rpc)
|
||||
printf "releases.parity.io/eth-rpc"
|
||||
;;
|
||||
subkey)
|
||||
printf "releases.parity.io/subkey"
|
||||
;;
|
||||
*)
|
||||
printf "UNSUPPORTED BINARY $name"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
Reference in New Issue
Block a user