This commit is contained in:
68
.drone.yml
68
.drone.yml
@@ -13,22 +13,22 @@ steps:
|
|||||||
- apk add --no-cache curl jq
|
- apk add --no-cache curl jq
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
repo_owner="${DRONE_REPO_OWNER}"
|
repo_owner="$${DRONE_REPO_OWNER}"
|
||||||
repo_name="${DRONE_REPO_NAME}"
|
repo_name="$${DRONE_REPO_NAME}"
|
||||||
releases_url="${GITEA_BASE_URL}/api/v1/repos/${repo_owner}/${repo_name}/releases?limit=1"
|
releases_url="$${GITEA_BASE_URL}/api/v1/repos/$${repo_owner}/$${repo_name}/releases?limit=1"
|
||||||
latest_tag="$(curl -sf -H "Authorization: token ${GITEA_TOKEN}" "${releases_url}" | jq -r '.[0].tag_name // empty')"
|
latest_tag="$$(curl -sf -H "Authorization: token $${GITEA_TOKEN}" "$${releases_url}" | jq -r '.[0].tag_name // empty')"
|
||||||
if [ -z "${latest_tag}" ] || [ "${latest_tag}" = "null" ]; then
|
if [ -z "$${latest_tag}" ] || [ "$${latest_tag}" = "null" ]; then
|
||||||
latest_tag="v0.0.0"
|
latest_tag="v0.0.0"
|
||||||
fi
|
fi
|
||||||
version="${latest_tag#v}"
|
version="$${latest_tag#v}"
|
||||||
IFS='.' read -r major minor patch <<< "${version}"
|
IFS='.' read -r major minor patch <<< "$${version}"
|
||||||
if ! [[ "${major:-}" =~ ^[0-9]+$ ]]; then major=0; fi
|
if ! [[ "$${major:-}" =~ ^[0-9]+$ ]]; then major=0; fi
|
||||||
if ! [[ "${minor:-}" =~ ^[0-9]+$ ]]; then minor=0; fi
|
if ! [[ "$${minor:-}" =~ ^[0-9]+$ ]]; then minor=0; fi
|
||||||
if ! [[ "${patch:-}" =~ ^[0-9]+$ ]]; then patch=0; fi
|
if ! [[ "$${patch:-}" =~ ^[0-9]+$ ]]; then patch=0; fi
|
||||||
patch=$((patch + 1))
|
patch=$((patch + 1))
|
||||||
next_tag="v${major}.${minor}.${patch}"
|
next_tag="v$${major}.$${minor}.$${patch}"
|
||||||
echo "${next_tag}" > .release_version
|
echo "$${next_tag}" > .release_version
|
||||||
echo "Next release: ${next_tag}"
|
echo "Next release: $${next_tag}"
|
||||||
- name: build-deb-amd64
|
- name: build-deb-amd64
|
||||||
image: cache.coadcorp.com/library/buildpack-deps:jammy
|
image: cache.coadcorp.com/library/buildpack-deps:jammy
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -120,31 +120,31 @@ steps:
|
|||||||
- apk add --no-cache curl jq
|
- apk add --no-cache curl jq
|
||||||
- |
|
- |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
release_tag="$(cat .release_version)"
|
release_tag="$$(cat .release_version)"
|
||||||
repo_owner="${DRONE_REPO_OWNER}"
|
repo_owner="$${DRONE_REPO_OWNER}"
|
||||||
repo_name="${DRONE_REPO_NAME}"
|
repo_name="$${DRONE_REPO_NAME}"
|
||||||
api_base="${GITEA_BASE_URL}/api/v1/repos/${repo_owner}/${repo_name}"
|
api_base="$${GITEA_BASE_URL}/api/v1/repos/$${repo_owner}/$${repo_name}"
|
||||||
payload="$(jq -n \
|
payload="$(jq -n \
|
||||||
--arg tag "${release_tag}" \
|
--arg tag "$${release_tag}" \
|
||||||
--arg name "${release_tag}" \
|
--arg name "$${release_tag}" \
|
||||||
--arg body "Automated release for ${release_tag}" \
|
--arg body "Automated release for $${release_tag}" \
|
||||||
--arg target "${DRONE_COMMIT_SHA}" \
|
--arg target "$${DRONE_COMMIT_SHA}" \
|
||||||
'{tag_name:$tag, name:$name, body:$body, draft:false, prerelease:false, target_commitish:$target}')"
|
'{tag_name:$tag, name:$name, body:$body, draft:false, prerelease:false, target_commitish:$target}')"
|
||||||
response="$(curl -sS -w '\n%{http_code}' -H "Authorization: token ${GITEA_TOKEN}" -H "Content-Type: application/json" -d "${payload}" "${api_base}/releases")"
|
response="$$(curl -sS -w '\n%{http_code}' -H "Authorization: token $${GITEA_TOKEN}" -H "Content-Type: application/json" -d "$${payload}" "$${api_base}/releases")"
|
||||||
status="$(echo "${response}" | tail -n1)"
|
status="$$(echo "$${response}" | tail -n1)"
|
||||||
body="$(echo "${response}" | sed '$d')"
|
body="$$(echo "$${response}" | sed '$d')"
|
||||||
if [ "${status}" != "201" ] && [ "${status}" != "200" ]; then
|
if [ "$${status}" != "201" ] && [ "$${status}" != "200" ]; then
|
||||||
body="$(curl -sS -H "Authorization: token ${GITEA_TOKEN}" "${api_base}/releases/tags/${release_tag}")"
|
body="$$(curl -sS -H "Authorization: token $${GITEA_TOKEN}" "$${api_base}/releases/tags/$${release_tag}")"
|
||||||
fi
|
fi
|
||||||
release_id="$(echo "${body}" | jq -r '.id // empty')"
|
release_id="$$(echo "$${body}" | jq -r '.id // empty')"
|
||||||
if [ -z "${release_id}" ] || [ "${release_id}" = "null" ]; then
|
if [ -z "$${release_id}" ] || [ "$${release_id}" = "null" ]; then
|
||||||
echo "Failed to create or fetch release for ${release_tag}"
|
echo "Failed to create or fetch release for $${release_tag}"
|
||||||
echo "${body}"
|
echo "$${body}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
for file in dist/*.deb; do
|
for file in dist/*.deb; do
|
||||||
name="$(basename "${file}")"
|
name="$$(basename "$${file}")"
|
||||||
curl -sS -H "Authorization: token ${GITEA_TOKEN}" \
|
curl -sS -H "Authorization: token $${GITEA_TOKEN}" \
|
||||||
-F "attachment=@${file}" \
|
-F "attachment=@$${file}" \
|
||||||
"${api_base}/releases/${release_id}/assets?name=${name}" >/dev/null
|
"$${api_base}/releases/$${release_id}/assets?name=$${name}" >/dev/null
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user