mirror of
https://github.com/taiki-e/install-action.git
synced 2026-04-21 15:10:27 +00:00
75 lines
1.8 KiB
Bash
Executable File
75 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
IFS=$'\n\t'
|
|
cd "$(dirname "$0")"/..
|
|
|
|
# shellcheck disable=SC2154
|
|
trap 's=$?; echo >&2 "$0: Error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}' ERR
|
|
|
|
bail() {
|
|
echo >&2 "error: $*"
|
|
exit 1
|
|
}
|
|
|
|
if [[ -z "${CI:-}" ]]; then
|
|
bail "this script is intended to call from release workflow on CI"
|
|
fi
|
|
ref="${GITHUB_REF:-}"
|
|
if [[ "${ref}" != "refs/tags/"* ]]; then
|
|
bail "tag ref should start with 'refs/tags/'"
|
|
fi
|
|
tag="${ref#refs/tags/}"
|
|
|
|
git config user.name "Taiki Endo"
|
|
git config user.email "te316e89@gmail.com"
|
|
|
|
version="${tag}"
|
|
version="${version#v}"
|
|
|
|
tools=()
|
|
for tool in tools/codegen/base/*.json; do
|
|
tools+=("$(basename "${tool%.*}")")
|
|
done
|
|
# Aliases
|
|
tools+=(nextest)
|
|
# Not manifest-base
|
|
tools+=(valgrind)
|
|
|
|
(
|
|
set -x
|
|
|
|
major_version_tag="v${version%%.*}"
|
|
git checkout -b "${major_version_tag}"
|
|
git push origin refs/heads/"${major_version_tag}"
|
|
if git --no-pager tag | grep -Eq "^${major_version_tag}$"; then
|
|
git tag -d "${major_version_tag}"
|
|
git push --delete origin refs/tags/"${major_version_tag}"
|
|
fi
|
|
git tag "${major_version_tag}"
|
|
git checkout main
|
|
git branch -d "${major_version_tag}"
|
|
)
|
|
|
|
for tool in "${tools[@]}"; do
|
|
(
|
|
set -x
|
|
git checkout -b "${tool}"
|
|
sed -i -e "s/required: true/required: false/g" action.yml
|
|
sed -i -e "s/# default: #publish:tool/default: ${tool}/g" action.yml
|
|
git add action.yml
|
|
git commit -m "${tool}"
|
|
git push origin -f refs/heads/"${tool}"
|
|
if git --no-pager tag | grep -Eq "^${tool}$"; then
|
|
git tag -d "${tool}"
|
|
git push --delete origin refs/tags/"${tool}"
|
|
fi
|
|
git tag "${tool}"
|
|
git checkout main
|
|
git branch -D "${tool}"
|
|
)
|
|
done
|
|
|
|
set -x
|
|
|
|
git push origin --tags
|