version 0.2.2
This commit is contained in:
parent
d6d6d84e43
commit
f32c927889
54
.drone.yml
54
.drone.yml
|
@ -1,5 +1,5 @@
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: tools
|
name: tests/release
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: rust tests
|
- name: rust tests
|
||||||
|
@ -7,6 +7,9 @@ steps:
|
||||||
pull: always
|
pull: always
|
||||||
commands:
|
commands:
|
||||||
- cargo test
|
- cargo test
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
|
||||||
- name: auto-release
|
- name: auto-release
|
||||||
image: xena/gitea-release:0.2.1
|
image: xena/gitea-release:0.2.1
|
||||||
|
@ -19,5 +22,52 @@ steps:
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
branch:
|
branch:
|
||||||
include:
|
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
name: docker
|
||||||
|
steps:
|
||||||
|
- name: build docker image
|
||||||
|
image: "monacoremo/nix:2020-04-05-05f09348-circleci"
|
||||||
|
environment:
|
||||||
|
USER: root
|
||||||
|
run:
|
||||||
|
- cachix use xe
|
||||||
|
- nix-build docker.nix
|
||||||
|
- cp $(readlink result) /result/docker.tgz
|
||||||
|
volumes:
|
||||||
|
- name: image
|
||||||
|
path: /result
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|
||||||
|
- name: push docker image
|
||||||
|
image: docker:dind
|
||||||
|
volumes:
|
||||||
|
- name: image
|
||||||
|
path: /result
|
||||||
|
- name: dockersock
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
steps:
|
||||||
|
- docker load /result/docker.tgz
|
||||||
|
- echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin
|
||||||
|
- docker push xena/gitea-release
|
||||||
|
environment:
|
||||||
|
DOCKER_USERNAME:
|
||||||
|
from_secret: DOCKER_USERNAME
|
||||||
|
DOCKER_PASSWORD:
|
||||||
|
from_secret: DOCKER_PASSWORD
|
||||||
|
when:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: image
|
||||||
|
temp: {}
|
||||||
|
- name: dockersock
|
||||||
|
host:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
## 0.2.2
|
||||||
|
|
||||||
|
Update README, automatically push docker images
|
||||||
|
|
||||||
## 0.2.1
|
## 0.2.1
|
||||||
|
|
||||||
Hotfix for typos in the docker manifest.
|
Hotfix for typos in the docker manifest.
|
||||||
|
|
|
@ -326,7 +326,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gitea-release"
|
name = "gitea-release"
|
||||||
version = "0.2.1"
|
version = "0.2.2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"byte-unit",
|
"byte-unit",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "gitea-release"
|
name = "gitea-release"
|
||||||
version = "0.2.1"
|
version = "0.2.2"
|
||||||
authors = ["Christine Dodrill <me@christine.website>"]
|
authors = ["Christine Dodrill <me@christine.website>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
|
|
77
README.md
77
README.md
|
@ -8,3 +8,80 @@ repositories that reads from CHANGELOG and VERSION files. This is a clone of
|
||||||
[github-release](https://github.com/github-release/github-release), but more
|
[github-release](https://github.com/github-release/github-release), but more
|
||||||
suited for my individual needs. This may also turn into a generic webhook
|
suited for my individual needs. This may also turn into a generic webhook
|
||||||
handler, but one thing at a time. :)
|
handler, but one thing at a time. :)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### With Nix
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ nix-env -if https://tulpa.dev/cadey/gitea-release/archive/master.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
### With cargo
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ cargo install --git https://tulpa.dev/cadey/gitea-release.git
|
||||||
|
```
|
||||||
|
|
||||||
|
## Drone Plugin
|
||||||
|
|
||||||
|
To use this as a drone plugin, add the following to your `.drone.yml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: auto-release
|
||||||
|
image: xena/gitea-release:0.2.2
|
||||||
|
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.
|
||||||
|
|
||||||
|
## CHANGELOG.md and VERSION files
|
||||||
|
|
||||||
|
The `CHANGELOG.md` file is based on the [Keep a Changelog][kacl] format, but
|
||||||
|
modified slightly to make it easier for this tool. Here is an example changelog
|
||||||
|
that this tool accepts:
|
||||||
|
|
||||||
|
[kacl]: https://keepachangelog.com/en/1.0.0/
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# 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][semver] string. When this tool is run with
|
||||||
|
the `release` subcommand, the following actions take place:
|
||||||
|
|
||||||
|
[semver]: https://semver.org/spec/v2.0.0.html
|
||||||
|
|
||||||
|
- 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
|
||||||
|
|
|
@ -41,5 +41,7 @@ pub(crate) async fn run(
|
||||||
return Err(anyhow!("{:?} -> {}", resp.status(), resp.text().await?));
|
return Err(anyhow!("{:?} -> {}", resp.status(), resp.text().await?));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
println!("Created release {}", tag);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue