Android-Password-Store/scripts/deploy-snapshot.sh
2022-11-26 19:39:10 +05:30

56 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
# SPDX-License-Identifier: GPL-3.0-only
#
set -ex
LATEST_TAG="latest"
CURRENT_REV="$(git rev-parse --short HEAD)"
ASSET_DIRECTORY="${GITHUB_WORKSPACE:?}/app/outputs"
function overwrite_local_tag() {
git tag -f "${LATEST_TAG}"
}
function overwrite_remote_tag() {
git push -f origin "${LATEST_TAG}"
}
function has_release() {
gh release view "${LATEST_TAG}" &>/dev/null
echo "$?"
}
function delete_release() {
gh release delete --yes "${LATEST_TAG}"
}
function create_rev_file() {
pushd "${ASSET_DIRECTORY}" || exit 1
echo "${CURRENT_REV}" | tee rev-hash.txt
popd || exit 1
}
function create_release() {
local CHANGELOG_FILE
CHANGELOG_FILE="$(mktemp)"
cp scripts/snapshot-changelog-template.txt "${CHANGELOG_FILE}"
sed -i "s/__SNAPSHOT_REV__/${CURRENT_REV}/" "${CHANGELOG_FILE}"
pushd "${ASSET_DIRECTORY}" || exit 1
gh release create --prerelease --title "Latest snapshot build" --notes-file "${CHANGELOG_FILE}" "${LATEST_TAG}" ./*
popd || exit 1
}
overwrite_local_tag
create_rev_file
overwrite_remote_tag
if [[ "$(has_release)" -eq 0 ]]; then
delete_release
fi
create_release