diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index e3eee39..3f4f336 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -79,7 +79,29 @@ jobs: - name: Create Gitea release run: | - python3 -c "import json,os; v=os.environ['VERSION']; img=os.environ['IMAGE']; notes=open('/tmp/release_notes.txt').read(); open('/tmp/release_body.json','w').write(json.dumps({'tag_name':'v'+v,'name':'Catalyst v'+v,'body':'### Changes\n\n'+notes+'\n\n### Image\n\n'+img+':'+v,'draft':False,'prerelease':False}))" + cat > /tmp/make_release.py << 'PYEOF' + import json, os + v = os.environ['VERSION'] + img = os.environ['IMAGE'] + raw = open('/tmp/release_notes.txt').read().strip() + feats, fixes = [], [] + for line in raw.splitlines(): + msg = line.lstrip('- ').strip() + if msg.startswith('feat:'): + feats.append('- ' + msg[5:].strip()) + elif msg.startswith('fix:'): + fixes.append('- ' + msg[4:].strip()) + sections = [] + if feats: + sections.append('### New Features\n\n' + '\n'.join(feats)) + if fixes: + sections.append('### Bug Fixes\n\n' + '\n'.join(fixes)) + notes = '\n\n'.join(sections) or '_No changes_' + body = notes + '\n\n### Image\n\n' + img + ':' + v + payload = {'tag_name': 'v'+v, 'name': 'Catalyst v'+v, 'body': body, 'draft': False, 'prerelease': False} + open('/tmp/release_body.json', 'w').write(json.dumps(payload)) + PYEOF + python3 /tmp/make_release.py curl -sf -X POST \ -H "Authorization: token ${{ secrets.TOKEN }}" \ -H "Content-Type: application/json" \