# 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