Update pulish script with functions and after publish report
This commit is contained in:
@@ -9,16 +9,85 @@ VERSION=$(git tag --list | sort -V | tail -n1 | sed -e "s/^v//");
|
||||
file_last_published="${BASE_FOLDER}last.published";
|
||||
go_flag="$1";
|
||||
|
||||
function gitea_publish
|
||||
{
|
||||
_GITEA_PUBLISH="${1}"
|
||||
_GITEA_UPLOAD_FILENAME="${2}"
|
||||
_GITEA_URL_DL="${3}"
|
||||
_GITEA_URL_PUSH="${4}"
|
||||
_GITEA_USER="${5}"
|
||||
_GITEA_TOKEN="${6}"
|
||||
_PACKAGE_DOWNLOAD="${7}"
|
||||
_VERSION="${8}"
|
||||
_file_last_published="${9}"
|
||||
|
||||
if [ -z "${_GITEA_PUBLISH}" ]; then
|
||||
return
|
||||
fi;
|
||||
if [ -n "${_GITEA_UPLOAD_FILENAME}" ] &&
|
||||
[ -n "${_GITEA_URL_DL}" ] && [ -n "${_GITEA_URL_PUSH}" ] &&
|
||||
[ -n "${_GITEA_USER}" ] && [ -n "${_GITEA_TOKEN}" ]; then
|
||||
echo "> Publish ${_VERSION} to: ${_GITEA_URL_PUSH}";
|
||||
if [ ! -f "${_PACKAGE_DOWNLOAD}${_GITEA_UPLOAD_FILENAME}-v${_VERSION}.zip" ]; then
|
||||
echo "> Download: ${_PACKAGE_DOWNLOAD}${_GITEA_UPLOAD_FILENAME}-v${_VERSION}.zip";
|
||||
curl -LJO \
|
||||
--output-dir "${_PACKAGE_DOWNLOAD}" \
|
||||
"${_GITEA_URL_DL}"/v"${_VERSION}".zip;
|
||||
fi;
|
||||
if [ ! -f "${_PACKAGE_DOWNLOAD}${_GITEA_UPLOAD_FILENAME}-v${_VERSION}.zip" ]; then
|
||||
echo "[!] Package file does not exist for version: ${_VERSION}";
|
||||
else
|
||||
response=$(curl --user "${_GITEA_USER}":"${_GITEA_TOKEN}" \
|
||||
--upload-file "${_PACKAGE_DOWNLOAD}${_GITEA_UPLOAD_FILENAME}-v${_VERSION}.zip" \
|
||||
"${_GITEA_URL_PUSH}"?version="${_VERSION}");
|
||||
status=$(echo "${response}" | jq .errors[].status);
|
||||
message=$(echo "${response}" | jq .errors[].message);
|
||||
if [ -n "${status}" ]; then
|
||||
echo "[!] Error ${status}: ${message}";
|
||||
else
|
||||
echo "> Publish completed";
|
||||
fi;
|
||||
echo "${_VERSION}" > "${_file_last_published}";
|
||||
fi;
|
||||
else
|
||||
echo "[!] Missing either GITEA_UPLOAD_FILENAME, GITEA_URL_DL, GITEA_URL_PUSH, GITEA_USER or GITEA_TOKEN environment variable";
|
||||
fi;
|
||||
}
|
||||
|
||||
function gitlab_publish
|
||||
{
|
||||
_GITLAB_PUBLISH="${1}";
|
||||
_GITLAB_URL="${2}";
|
||||
_GITLAB_DEPLOY_TOKEN="${3}";
|
||||
_PACKAGE_DOWNLOAD="${4}"
|
||||
_VERSION="${5}"
|
||||
_file_last_published="${6}"
|
||||
if [ -z "${GITLAB_PUBLISH}" ]; then
|
||||
return;
|
||||
fi;
|
||||
if [ -n "${_GITLAB_URL}" ] && [ -n "${_GITLAB_DEPLOY_TOKEN}" ]; then
|
||||
curl --data tag=v"${_VERSION}" \
|
||||
--header "Deploy-Token: ${_GITLAB_DEPLOY_TOKEN}" \
|
||||
"${_GITLAB_URL}";
|
||||
curl --data branch=master \
|
||||
--header "Deploy-Token: ${_GITLAB_DEPLOY_TOKEN}" \
|
||||
"${_GITLAB_URL}";
|
||||
echo "${_VERSION}" > "${_file_last_published}";
|
||||
else
|
||||
echo "[!] Missing GITLAB_URL or GITLAB_DEPLOY_TOKEN environment variable";
|
||||
fi;
|
||||
}
|
||||
|
||||
|
||||
if [ -z "${VERSION}" ]; then
|
||||
echo "Version must be set in the form x.y.z without any leading characters";
|
||||
echo "[!] Version must be set in the form x.y.z without any leading characters";
|
||||
exit;
|
||||
fi;
|
||||
# compare version, if different or newer, deploy
|
||||
if [ -f "${file_last_published}" ]; then
|
||||
LAST_PUBLISHED_VERSION=$(cat "${file_last_published}");
|
||||
if dpkg --compare-versions "${VERSION}" le "${LAST_PUBLISHED_VERSION}"; then
|
||||
echo "git tag version ${VERSION} is not newer than previous published version ${LAST_PUBLISHED_VERSION}";
|
||||
exit;
|
||||
echo "[!] git tag version ${VERSION} is not newer than previous published version ${LAST_PUBLISHED_VERSION}";
|
||||
fi;
|
||||
fi;
|
||||
|
||||
@@ -36,62 +105,30 @@ fi;
|
||||
# GITLAB_TOKEN
|
||||
# GITLAB_URL
|
||||
if [ ! -f "${BASE_FOLDER}.env.deploy" ]; then
|
||||
echo "Deploy enviroment file .env.deploy is missing";
|
||||
echo "[!] Deploy enviroment file .env.deploy is missing";
|
||||
exit;
|
||||
fi;
|
||||
set -o allexport;
|
||||
cd "${BASE_FOLDER}" || exit;
|
||||
cd "${BASE_FOLDER}" || exit
|
||||
# shellcheck source=.env.deploy
|
||||
source .env.deploy;
|
||||
cd - || exit;
|
||||
cd - >/dev/null 2>&1 || exit;
|
||||
set +o allexport;
|
||||
|
||||
if [ "${go_flag}" != "go" ]; then
|
||||
echo "No go flag given";
|
||||
echo "Would publish ${VERSION}";
|
||||
echo "[!] No go flag given";
|
||||
echo "> Would publish ${VERSION}";
|
||||
echo "[END]";
|
||||
exit;
|
||||
fi;
|
||||
|
||||
echo "[START]";
|
||||
# gitea
|
||||
# skip iof
|
||||
if [ -n "${GITEA_PUBLISH}" ]; then
|
||||
if [ -n "${GITEA_UPLOAD_FILENAME}" ] &&
|
||||
[ -n "${GITEA_URL_DL}" ] && [ -n "${GITEA_URL_PUSH}" ] &&
|
||||
[ -n "${GITEA_USER}" ] && [ -n "${GITEA_TOKEN}" ]; then
|
||||
if [ ! -f "${PACKAGE_DOWNLOAD}${GITEA_UPLOAD_FILENAME}-v${VERSION}.zip" ]; then
|
||||
curl -LJO \
|
||||
--output-dir "${PACKAGE_DOWNLOAD}" \
|
||||
"${GITEA_URL_DL}"/v"${VERSION}".zip;
|
||||
fi;
|
||||
if [ ! -f "${PACKAGE_DOWNLOAD}${GITEA_UPLOAD_FILENAME}-v${VERSION}.zip" ]; then
|
||||
echo "Version file does not exist for ${VERSION}";
|
||||
else
|
||||
curl --user "${GITEA_USER}":"${GITEA_TOKEN}" \
|
||||
--upload-file "${PACKAGE_DOWNLOAD}${GITEA_UPLOAD_FILENAME}-v${VERSION}.zip" \
|
||||
"${GITEA_URL_PUSH}"?version="${VERSION}";
|
||||
echo "${VERSION}" > "${file_last_published}";
|
||||
fi;
|
||||
else
|
||||
echo "Missing either GITEA_UPLOAD_FILENAME, GITEA_URL_DL, GITEA_URL_PUSH, GITEA_USER or GITEA_TOKEN environment variable";
|
||||
fi;
|
||||
fi;
|
||||
gitea_publish "${GITEA_PUBLISH}" "${GITEA_UPLOAD_FILENAME}" "${GITEA_URL_DL}" "${GITEA_URL_PUSH}" "${GITEA_USER}" "${GITEA_TOKEN}" "${PACKAGE_DOWNLOAD}" "${VERSION}" "${file_last_published}";
|
||||
gitea_publish "${PR_GITEA_PUBLISH}" "${PR_GITEA_UPLOAD_FILENAME}" "${PR_GITEA_URL_DL}" "${PR_GITEA_URL_PUSH}" "${PR_GITEA_USER}" "${PR_GITEA_TOKEN}" "${PACKAGE_DOWNLOAD}" "${VERSION}" "${file_last_published}";
|
||||
|
||||
# gitlab
|
||||
if [ -n "${GITLAB_PUBLISH}" ]; then
|
||||
if [ -n "${GITLAB_URL}" ] && [ -n "${GITLAB_DEPLOY_TOKEN}" ]; then
|
||||
curl --data tag=v"${VERSION}" \
|
||||
--header "Deploy-Token: ${GITLAB_DEPLOY_TOKEN}" \
|
||||
"${GITLAB_URL}";
|
||||
curl --data branch=master \
|
||||
--header "Deploy-Token: ${GITLAB_DEPLOY_TOKEN}" \
|
||||
"${GITLAB_URL}";
|
||||
echo "${VERSION}" > "${file_last_published}";
|
||||
else
|
||||
echo "Missing GITLAB_URL or GITLAB_DEPLOY_TOKEN environment variable";
|
||||
fi;
|
||||
fi;
|
||||
# gitlab_publish "${GITLAB_PUBLISH}" "${GITLAB_URL}" "${GITLAB_DEPLOY_TOKEN}" "${PACKAGE_DOWNLOAD}" "${VERSION}" "${file_last_published}";
|
||||
echo "";
|
||||
echo "[DONE]";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user