A Leiningen plugin to handle automatic merging of branches in the lein release process. Includes other git utils.
Put [com.andrewmcveigh/lein-auto-release "0.1.10"]
into the
:plugins
vector of your project.clj.
(defproject
...
:plugins [[com.andrewmcveigh/lein-auto-release "0.1.10"]]
:release-tasks [["auto-release" "checkout" "master"]
["auto-release" "merge-no-ff" "develop"]
["vcs" "assert-committed"]
["change" "version"
"leiningen.release/bump-version" "release"]
["auto-release" "update-release-notes"]
["auto-release" "update-readme-version"]
["vcs" "commit"]
["vcs" "tag" "v"]
["deploy" "clojars"]
["vcs" "push"]
["auto-release" "checkout" "develop"]
["auto-release" "merge" "master"]
["change" "version" "leiningen.release/bump-version"]
["vcs" "commit"]
["vcs" "push"]])
Checkout branch/tag/etc.
Checkout the latest (largest version number) tag.
Git merge
Git merge --no-ff
Git tag, no signing
Updates README.md
with the current (new) version number, provided the latest-tag
matches with the version in the README.md
.
Compiles and prepends the commit log from the latest tag to now, filtering key words/phrases. E.G., "Merge branch ..."
Takes the ./docs
folder generated by lein marg
, and moves it to the
gh-pages branch. If gh-pages doesn't exist, it creates it, and sets it up.
You should have run lein marg
prior to this task, maybe as a :release-task
.
Copyright © 2014 Andrew Mcveigh
Distributed under the Eclipse Public License, the same as Clojure uses. See the file LICENSE.