fix(ci): update changelog workflow
Some checks failed
Run Helm tests / Execute helm lint (push) Successful in 9s
Run Helm tests / Execute helm template (push) Successful in 9s
Run Helm tests / Execute helm unittest (push) Successful in 24s
Markdown linter / Execute npm run readme:link (push) Successful in 22s
Markdown linter / Execute npm run readme:lint (push) Successful in 7s
Markdown linter / Execute npm run readme:parameters (push) Successful in 8s
Update changelog / changelog (push) Failing after 6s

This commit is contained in:
2025-10-01 21:47:56 +02:00
parent 94b2b0139e
commit ef0cb5eae1
3 changed files with 107 additions and 60 deletions

View File

@@ -0,0 +1,85 @@
#!/bin/bash
DEFAULT_GITEA_SERVER_URL="${GITHUB_SERVER_URL:-"https://gitea.com"}"
DEFAULT_GITEA_REPOSITORY="${GITHUB_REPOSITORY:-"gitea/helm-gitea"}"
DEFAULT_GITEA_TOKEN="${ISSUE_RW_TOKEN:-""}"
if [ -z "${1}" ]; then
read -p "Enter hostname of the Gitea instance [${DEFAULT_GITEA_SERVER_URL}]: " CURRENT_GITEA_SERVER_URL
if [ -z "${CURRENT_GITEA_SERVER_URL}" ]; then
CURRENT_GITEA_SERVER_URL="${DEFAULT_GITEA_SERVER_URL}"
fi
else
CURRENT_GITEA_SERVER_URL=$1
fi
if [ -z "${2}" ]; then
read -p "Enter name of the git repository [${DEFAULT_GITEA_REPOSITORY}]: " CURRENT_GITEA_REPOSITORY
if [ -z "${CURRENT_GITEA_REPOSITORY}" ]; then
CURRENT_GITEA_REPOSITORY="${DEFAULT_GITEA_REPOSITORY}"
fi
else
CURRENT_GITEA_REPOSITORY=$2
fi
if [ -z "${3}" ]; then
read -p "Enter token to access the Gitea instance [${DEFAULT_GITEA_TOKEN}]: " CURRENT_GITEA_TOKEN
if [ -z "${CURRENT_GITEA_TOKEN}" ]; then
CURRENT_GITEA_TOKEN="${DEFAULT_GITEA_TOKEN}"
fi
else
CURRENT_GITEA_TOKEN=$3
fi
if ! git sv rn -o changelog.md; then
echo "ERROR: Failed to generate changelog.md" 1>&2
exit 1
fi
CURL_ARGS=(
"--data-urlencode=\"q=Changelog for upcoming version\""
"--data-urlencode" "state=open"
"--fail"
"--header" "Accept: application/json"
"--header" "Authorization: token ${CURRENT_GITEA_TOKEN}"
"--request" "GET"
"--silent"
)
if ! ISSUE_NUMBER="$(curl "${CURL_ARGS[@]}" "${CURRENT_GITEA_SERVER_URL}/api/v1/repos/${CURRENT_GITEA_REPOSITORY}/issues" | jq '.[].number')"; then
echo "ERROR: Failed query issue number" 1>&2
exit 1
fi
export ISSUE_NUMBER
if ! echo "" | jq --raw-input --slurp --arg title 'Changelog for upcoming version' --arg body "$(cat changelog.md)" '{title: $title, body: $body}' 1> /tmp/payload.json; then
echo "ERROR: Failed to create JSON payload file" 1>&2
exit 1
fi
CURL_ARGS=(
"--data" "@/tmp/payload.json"
"--fail"
"--header" "Authorization: token ${CURRENT_GITEA_TOKEN}"
"--header" "Content-Type: application/json"
"--location"
"--silent"
"--output" "/dev/null"
)
if [ -z "${ISSUE_NUMBER}" ]; then
if ! curl "${CURL_ARGS[@]}" --request POST "${CURRENT_GITEA_SERVER_URL}/api/v1/repos/${CURRENT_GITEA_REPOSITORY}/issues"; then
echo "ERROR: Failed to create new issue!" 1>&2
exit 1
else
echo "INFO: Successfully created new issue!"
fi
else
if ! curl "${CURL_ARGS[@]}" --request PATCH "${CURRENT_GITEA_SERVER_URL}/api/v1/repos/${CURRENT_GITEA_REPOSITORY}/issues/${ISSUE_NUMBER}"; then
echo "ERROR: Failed to update issue with ID ${ISSUE_NUMBER}!" 1>&2
exit 1
else
echo "INFO: Successfully updated existing issue with ID ${ISSUE_NUMBER}!"
echo "INFO: ${CURRENT_GITEA_SERVER_URL}/${CURRENT_GITEA_REPOSITORY}/issues/${ISSUE_NUMBER}"
fi
fi

View File

@@ -1,60 +0,0 @@
name: Update changelog
on:
push:
branches: [ "**" ]
workflow_dispatch: {}
jobs:
changelog:
container: docker.io/thegeeklab/git-sv:2.0.5
runs-on: ubuntu-latest
steps:
- name: Install packages via apt
run: |
apk add -q --update --no-cache nodejs curl jq sed
- uses: actions/checkout@v5.0.0
with:
fetch-depth: 0
- name: Generate upcoming changelog
env:
ISSUE_RW_TOKEN: ${{ secrets.ISSUE_RW_TOKEN }}
run: |
if [ -z "${ISSUE_RW_TOKEN}" ]; then
echo "ERROR: Secret 'ISSUE_RW_TOKEN' not defined" 1>&2
exit 1
fi
git sv rn -o changelog.md
if ! RELEASE_NOTES="$(cat changelog.md)"; then
echo "ERROR: Failed to read changelog.md" 1>&2
exit 1
fi
export RELEASE_NOTES
if ! ISSUE_NUMBER="$(curl --fail -s "${GITHUB_SERVER_URL}/api/v1/repos/gitea/helm-gitea/issues?state=open&q=Changelog%20for%20upcoming%20version" | jq '.[].number')"; then
echo "ERROR: Failed query issue number" 1>&2
exit 1
fi
export ISSUE_NUMBER
if ! JSON_DATA="$(echo "" | jq -Rs --arg title 'Changelog for upcoming version' --arg body "$(cat changelog.md)" '{title: $title, body: $body}')"; then
echo "ERROR: Failed to prepare JSON payload" 1>&2
exit 1
fi
CURL_ARGS=(
"--data" "${JSON_DATA}"
"--fail"
"--header" "Authorization: token ${ISSUE_RW_TOKEN}"
"--header" "Content-Type: application/json"
"--location"
"--silent"
)
if [ -z "${ISSUE_NUMBER}" ]; then
curl "${CURL_ARGS[@]}" --request POST "${GITHUB_SERVER_URL}/api/v1/repos/gitea/helm-gitea/issues"
else
curl "${CURL_ARGS[@]}" --request PATCH "${GITHUB_SERVER_URL}/api/v1/repos/gitea/helm-gitea/issues/${ISSUE_NUMBER}"
fi

View File

@@ -0,0 +1,22 @@
name: Update changelog
on:
push:
branches: [ "**" ]
workflow_dispatch: {}
jobs:
changelog:
container: docker.io/thegeeklab/git-sv:2.0.5
runs-on: ubuntu-latest
steps:
- name: Install packages via apt
run: |
apk add -q --update --no-cache nodejs curl jq sed
- uses: actions/checkout@v5.0.0
with:
fetch-depth: 0
- name: Generate upcoming changelog
env:
ISSUE_RW_TOKEN: ${{ secrets.ISSUE_RW_TOKEN }}
run: ./.gitea/scripts/update-changelog.sh