summaryrefslogtreecommitdiff
path: root/.woodpecker/release.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.woodpecker/release.yaml')
-rw-r--r--.woodpecker/release.yaml41
1 files changed, 41 insertions, 0 deletions
diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml
new file mode 100644
index 000000000..8a2e2c3d7
--- /dev/null
+++ b/.woodpecker/release.yaml
@@ -0,0 +1,41 @@
+# https://woodpecker-ci.org/docs/usage/workflow-syntax#when---global-workflow-conditions
+when:
+ - event: push
+ branch: main
+
+steps:
+ release:
+ # https://github.com/superseriousbusiness/gotosocial-drone-build
+ image: superseriousbusiness/gotosocial-drone-build:0.8.0
+ pull: true
+
+ # https://woodpecker-ci.org/docs/usage/volumes
+ volumes:
+ - /woodpecker/gotosocial/go-build-cache-root:/root/.cache/go-build
+ - /woodpecker/gotosocial/go-pkg-cache-root:/go/pkg
+ - /var/run/docker.sock:/var/run/docker.sock
+
+ # https://woodpecker-ci.org/docs/usage/environment
+ # https://woodpecker-ci.org/docs/usage/secrets#usage
+ environment:
+ DOCKER_USERNAME: gotosocial
+ DOCKER_PASSWORD:
+ from_secret: gts_docker_password
+ GITHUB_TOKEN:
+ from_secret: github_token
+
+ # https://woodpecker-ci.org/docs/usage/workflow-syntax#commands
+ commands:
+ - git fetch --tags
+ - /go/dockerlogin.sh
+
+ # When releasing, compare commits to the most recent tag that is not the
+ # current one AND is not a release candidate tag (ie., no "rc" in the name).
+ #
+ # The DRONE_TAG env var should point to the tag that triggered this build.
+ # See: https://docs.drone.io/pipeline/environment/reference/drone-tag/
+ #
+ # Note, this may cause annoyances when doing backport releases, for example,
+ # releasing v0.10.1 when we've already released v0.15.0 or whatever, but
+ # they should only be superficial annoyances related to the release notes.
+ - GORELEASER_PREVIOUS_TAG=$(git tag -l | grep -v "rc\|${DRONE_TAG}" | sort -V -r | head -n 1) goreleaser release --clean