mirror of
https://github.com/taiki-e/install-action.git
synced 2026-04-27 01:20:28 +00:00
Update tools/publish.sh
This commit is contained in:
@@ -16,42 +16,20 @@ bail() {
|
|||||||
echo >&2 "error: $*"
|
echo >&2 "error: $*"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
warn() {
|
|
||||||
echo >&2 "warning: $*"
|
|
||||||
}
|
|
||||||
info() {
|
|
||||||
echo >&2 "info: $*"
|
|
||||||
}
|
|
||||||
|
|
||||||
tools=(
|
|
||||||
cargo-hack
|
|
||||||
cargo-llvm-cov
|
|
||||||
cargo-minimal-versions
|
|
||||||
parse-changelog
|
|
||||||
cross
|
|
||||||
shellcheck
|
|
||||||
shfmt
|
|
||||||
)
|
|
||||||
|
|
||||||
# Parse arguments.
|
|
||||||
version="${1:?}"
|
version="${1:?}"
|
||||||
version="${version#v}"
|
version="${version#v}"
|
||||||
tag="v${version}"
|
tag="v${version}"
|
||||||
if [[ ! "${version}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$ ]]; then
|
if [[ ! "${version}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$ ]]; then
|
||||||
bail "invalid version format: '${version}'"
|
bail "invalid version format '${version}'"
|
||||||
fi
|
|
||||||
if [[ "${2:-}" == "--dry-run" ]]; then
|
|
||||||
dry_run="--dry-run"
|
|
||||||
shift
|
|
||||||
fi
|
fi
|
||||||
if [[ $# -gt 1 ]]; then
|
if [[ $# -gt 1 ]]; then
|
||||||
bail "invalid argument: '$2'"
|
bail "invalid argument '$2'"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "${dry_run:-}" ]]; then
|
# Make sure there is no uncommitted change.
|
||||||
git diff --exit-code
|
git diff --exit-code
|
||||||
git diff --exit-code --staged
|
git diff --exit-code --staged
|
||||||
fi
|
|
||||||
|
|
||||||
# Make sure that a valid release note for this version exists.
|
# Make sure that a valid release note for this version exists.
|
||||||
# https://github.com/taiki-e/parse-changelog
|
# https://github.com/taiki-e/parse-changelog
|
||||||
@@ -64,13 +42,15 @@ if gh release view "${tag}" &>/dev/null; then
|
|||||||
bail "tag '${tag}' has already been created and pushed"
|
bail "tag '${tag}' has already been created and pushed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Exit if dry run.
|
tools=(
|
||||||
if [[ -n "${dry_run:-}" ]]; then
|
cargo-hack
|
||||||
warn "skip creating a new tag '${tag}' due to dry run"
|
cargo-llvm-cov
|
||||||
exit 0
|
cargo-minimal-versions
|
||||||
fi
|
parse-changelog
|
||||||
|
cross
|
||||||
info "creating and pushing a new tag '${tag}'"
|
shellcheck
|
||||||
|
shfmt
|
||||||
|
)
|
||||||
|
|
||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
@@ -80,9 +60,9 @@ info "creating and pushing a new tag '${tag}'"
|
|||||||
git push origin --tags
|
git push origin --tags
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
version_tag=v1
|
version_tag="v${version%%.*}"
|
||||||
git checkout -b "${version_tag}"
|
git checkout -b "${version_tag}"
|
||||||
git push origin -f refs/heads/"${version_tag}"
|
git push origin refs/heads/"${version_tag}"
|
||||||
if git --no-pager tag | grep -E "^${version_tag}$" &>/dev/null; then
|
if git --no-pager tag | grep -E "^${version_tag}$" &>/dev/null; then
|
||||||
git tag -d "${version_tag}"
|
git tag -d "${version_tag}"
|
||||||
git push --delete origin refs/tags/"${version_tag}"
|
git push --delete origin refs/tags/"${version_tag}"
|
||||||
|
|||||||
Reference in New Issue
Block a user