Update .forgejo/workflows/release.yml
Some checks failed
Release / release (push) Failing after 3m39s
Some checks failed
Release / release (push) Failing after 3m39s
This commit is contained in:
parent
da934949c2
commit
71dd64f71b
1 changed files with 19 additions and 26 deletions
|
@ -64,74 +64,67 @@ jobs:
|
||||||
VERSION="${{ steps.version.outputs.release_version }}"
|
VERSION="${{ steps.version.outputs.release_version }}"
|
||||||
API_BASE="https://git.oguerreiro.com/api/v1"
|
API_BASE="https://git.oguerreiro.com/api/v1"
|
||||||
|
|
||||||
echo "Fetching latest release tag..."
|
# Step 1. Get the latest tag
|
||||||
|
echo "Step 1 : Fetching latest release tag..."
|
||||||
LATEST_TAG=$(curl -H "Authorization: token $TOKEN" \
|
LATEST_TAG=$(curl -H "Authorization: token $TOKEN" \
|
||||||
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/tags" \
|
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/tags" \
|
||||||
| jq -r '.[0].name')
|
| jq -r '.[0].name')
|
||||||
|
|
||||||
if [[ -z "$LATEST_TAG" || "$LATEST_TAG" == "null" ]]; then
|
if [[ -z "$LATEST_TAG" || "$LATEST_TAG" == "null" ]]; then
|
||||||
|
# Doesn't have tag. Its the first release
|
||||||
echo "No previous tags found. Assuming first release."
|
echo "No previous tags found. Assuming first release."
|
||||||
CLOSED_ISSUES=""
|
CLOSED_ISSUES=""
|
||||||
else
|
else
|
||||||
|
# Tag found
|
||||||
echo "Latest tag is: $LATEST_TAG"
|
echo "Latest tag is: $LATEST_TAG"
|
||||||
|
|
||||||
# Step 1: Get the tag ref object
|
# Step 2: Get the tag ref object
|
||||||
|
echo "Step 2 : Fetch tag ref object from tag = $LATEST_TAG"
|
||||||
TAG_REF=$(curl -H "Authorization: token $TOKEN" \
|
TAG_REF=$(curl -H "Authorization: token $TOKEN" \
|
||||||
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/git/refs/tags/$LATEST_TAG")
|
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/git/refs/tags/$LATEST_TAG")
|
||||||
echo "TAG_REF is: $TAG_REF"
|
echo "... TAG_REF is: $TAG_REF"
|
||||||
|
|
||||||
# Extract the first .object.sha (if it's an array) or directly if it's an object
|
# Extract the first .object.sha (if it's an array) or directly if it's an object
|
||||||
if echo "$TAG_REF" | jq -e 'type == "array"' >/dev/null; then
|
if echo "$TAG_REF" | jq -e 'type == "array"' >/dev/null; then
|
||||||
echo "TAG_REF is an array"
|
echo "... is an array"
|
||||||
TAG_OBJECT_SHA=$(echo "$TAG_REF" | jq -r '.[0].object.sha')
|
TAG_OBJECT_SHA=$(echo "$TAG_REF" | jq -r '.[0].object.sha')
|
||||||
TAG_OBJECT_TYPE=$(echo "$TAG_REF" | jq -r '.[0].object.type')
|
TAG_OBJECT_TYPE=$(echo "$TAG_REF" | jq -r '.[0].object.type')
|
||||||
else
|
else
|
||||||
echo "TAG_REF is an object"
|
echo "... is an object"
|
||||||
TAG_OBJECT_SHA=$(echo "$TAG_REF" | jq -r '.object.sha')
|
TAG_OBJECT_SHA=$(echo "$TAG_REF" | jq -r '.object.sha')
|
||||||
TAG_OBJECT_TYPE=$(echo "$TAG_REF" | jq -r '.object.type')
|
TAG_OBJECT_TYPE=$(echo "$TAG_REF" | jq -r '.object.type')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "TAG_OBJECT_SHA is (1): $TAG_OBJECT_SHA"
|
echo "... TAG SHA is (1): $TAG_OBJECT_SHA"
|
||||||
echo "TAG_OBJECT_TYPE is (1): $TAG_OBJECT_TYPE"
|
echo "... TAG TYPE is (1): $TAG_OBJECT_TYPE"
|
||||||
|
|
||||||
# Resolve annotated tag to commit SHA
|
# Resolve annotated tag to commit SHA
|
||||||
while [ "$TAG_OBJECT_TYPE" != "commit" ]; do
|
while [ "$TAG_OBJECT_TYPE" != "commit" ]; do
|
||||||
echo "Try : $API_BASE/repos/$REPO_OWNER/$REPO_NAME/git/$TAG_OBJECT_TYPE/$TAG_OBJECT_SHA"
|
echo "..."
|
||||||
|
echo "... TAG OBJECT is not of type commit. Try : $API_BASE/repos/$REPO_OWNER/$REPO_NAME/git/$TAG_OBJECT_TYPE/$TAG_OBJECT_SHA"
|
||||||
TAG_OBJECT=$(curl -H "Authorization: token $TOKEN" \
|
TAG_OBJECT=$(curl -H "Authorization: token $TOKEN" \
|
||||||
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/git/tags/$TAG_OBJECT_SHA")
|
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/git/tags/$TAG_OBJECT_SHA")
|
||||||
|
|
||||||
echo "TAG_OBJECT is: $TAG_OBJECT"
|
|
||||||
echo "Read"
|
|
||||||
if echo "$TAG_OBJECT" | jq -e 'type == "array"' >/dev/null; then
|
if echo "$TAG_OBJECT" | jq -e 'type == "array"' >/dev/null; then
|
||||||
echo "TAG_OBJECT is an array"
|
echo "... ... is an array"
|
||||||
TAG_OBJECT_SHA=$(echo "$v" | jq -r '.[0].object.sha')
|
TAG_OBJECT_SHA=$(echo "$v" | jq -r '.[0].object.sha')
|
||||||
TAG_OBJECT_TYPE=$(echo "$TAG_OBJECT" | jq -r '.[0].object.type')
|
TAG_OBJECT_TYPE=$(echo "$TAG_OBJECT" | jq -r '.[0].object.type')
|
||||||
else
|
else
|
||||||
echo "TAG_OBJECT is an object"
|
echo "... ... is an object"
|
||||||
TAG_OBJECT_SHA=$(echo "$TAG_OBJECT" | jq -r '.object.sha')
|
TAG_OBJECT_SHA=$(echo "$TAG_OBJECT" | jq -r '.object.sha')
|
||||||
TAG_OBJECT_TYPE=$(echo "$TAG_OBJECT" | jq -r '.object.type')
|
TAG_OBJECT_TYPE=$(echo "$TAG_OBJECT" | jq -r '.object.type')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Response"
|
echo "... TAG_OBJECT_SHA is (2): $TAG_OBJECT_SHA"
|
||||||
echo "TAG_OBJECT_SHA is (2): $TAG_OBJECT_SHA"
|
echo "... TAG_OBJECT_TYPE is (2): $TAG_OBJECT_TYPE"
|
||||||
echo "TAG_OBJECT_TYPE is (2): $TAG_OBJECT_TYPE"
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Step 2: If it's a tag object, resolve to commit
|
|
||||||
if [ "$TAG_OBJECT_TYPE" = "tag" ]; then
|
|
||||||
COMMIT_SHA=$(curl -H "Authorization: token $TOKEN" \
|
|
||||||
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/git/tags/$TAG_OBJECT_SHA" \
|
|
||||||
| jq -r '.object.sha')
|
|
||||||
else
|
|
||||||
COMMIT_SHA=$TAG_OBJECT_SHA
|
|
||||||
fi
|
|
||||||
echo "COMMIT_SHA is : $COMMIT_SHA"
|
|
||||||
|
|
||||||
# Step 3: Get the commit date
|
# Step 3: Get the commit date
|
||||||
|
echo "Step 3 : Get the commit date from commit = $COMMIT_SHA
|
||||||
COMMIT_DATE=$(curl -H "Authorization: token $TOKEN" \
|
COMMIT_DATE=$(curl -H "Authorization: token $TOKEN" \
|
||||||
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/git/commits/$COMMIT_SHA" \
|
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/git/commits/$COMMIT_SHA" \
|
||||||
| jq -r '.committer.date')
|
| jq -r '.committer.date')
|
||||||
echo "Fetching closed issues since $COMMIT_DATE..."
|
echo "... Fetching closed issues since $COMMIT_DATE..."
|
||||||
|
|
||||||
CLOSED_ISSUES_JSON=$(curl -H "Authorization: token $TOKEN" \
|
CLOSED_ISSUES_JSON=$(curl -H "Authorization: token $TOKEN" \
|
||||||
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/issues?state=closed&since=$COMMIT_DATE")
|
"$API_BASE/repos/$REPO_OWNER/$REPO_NAME/issues?state=closed&since=$COMMIT_DATE")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue