flight-journal/gitea-release/index.gmi

85 lines
2.7 KiB
Plaintext

# gitea-release
A small command line tool to automate releases for Gitea repositories that reads from CHANGELOG and VERSION files. This is a clone of github-release, but more suited for my individual needs. This may also turn into a generic webhook handler, but one thing at a time. :)
## Usage
To use this as a drone plugin, add the following to your .drone.yml under the steps key:
```
- name: auto-release
image: xena/gitea-release:latest
pull: always
settings:
auth_username: cadey
changelog_path: ./CHANGELOG.md
gitea_server: https://tulpa.dev
gitea_token:
from_secret: GITEA_TOKEN
when:
event:
- push
branch:
- master
```
Replace the values of the settings as makes sense for your gitea server. The changelog_path attribute is optional, and will be ./CHANGELOG.md by default.
The default branch will automatically be derived from the Gitea API. If you need to hard-code your default branch name for some reason, add the default_branch setting like this:
```
- name: auto-release
image: xena/gitea-release:latest
pull: always
settings:
auth_username: cadey
default_branch: trunk
gitea_server: https://tulpa.dev
gitea_token:
from_secret: GITEA_TOKEN
when:
event:
- push
branch:
- trunk
```
## CHANGELOG and VERSION files
The CHANGELOG.md file is based on the Keep a Changelog format, but modified slightly to make it easier for this tool. Here is an example changelog that this tool accepts:
```
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 0.1.0
Hi there this is a test!
### ADDED
- something
```
The VERSION file plays into this as well. The VERSION file MUST be a single line containing a semantic version string. When this tool is run with the release subcommand, the following actions take place:
* The VERSION file is read and loaded as the desired tag for the repo
* The CHANGELOG.md file is read and the changes for the VERSION are cherry-picked out of the file
* The git repo is checked to see if that tag already exists
* If the tag exists, the tool exits and does nothing
* If the tag does not exist, it is created (with the changelog fragment as the body of the tag) and pushed to the gitea server
* A gitea release is created using the changelog fragment and the release name is generated from the VERSION string
## Links
=> https://tulpa.dev/cadey/gitea-release Git repo
=> https://drone.io Drone
=> ./changelog.gmi Changelog
---
=> / Go back