leiningen-semantic-release
semantic-release plugin to publish a leiningen project.
![Greenkeeper badge](https://badges.greenkeeper.io/NoxHarmonium/leiningen-semantic-release.svg)
![npm next version](https://img.shields.io/npm/v/noxharmonium/leiningen-semantic-release/next.svg)
Step | Description |
---|
verifyConditions | Checks the project.clj is syntactically valid. |
prepare | Update the project.clj version and package the output jar file. |
publish | Publish the jar (and generated Maven metadata) to a maven repository (or clojars). |
Install
$ npm install leiningen-semantic-release -D
Usage
The plugin can be configured in the semantic-release configuration file:
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/git",
{
"assets": ["project.clj"]
}
]
}
Configuration
Npm registry authentication
Environment variables
Variable | Description |
---|
LEIN_USERNAME | The username for the maven repository you are publishing to (or clojars). |
LEIN_PASSWORD | The password for the maven repository you are publishing to (or clojars). |
LEIN_PASSPHRASE | The GPG passphrase to unlock the GPG keyring your signing key is in (or clojars). |
As mentioned in the leiningen documentation,
your :deploy-repositories
section of project.clj
should be set up to use environment variables.
For example:
:deploy-repositories [["releases" {:url "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
:username :env
:password :env
:passphrase :env}
"snapshots" {:url "https://oss.sonatype.org/content/repositories/snapshots/"
:username :env
:passphrase :env
:passphrase :env}]]
Options
Options | Description | Default |
---|
skipDeploy | Whether to publish the package to ta respository with lein deploy . If false the project.clj version will still be updated. | true |
pkgRoot | Directory path to publish. | . |
uberJar | Whether to package the project as an uber jar (include dependencies in the jar) | false |
Note: The pkgRoot
directory must contains a project.clj
. The version will be updated only in the project.clj
within the pkgRoot
directory.
Note: If you use a shareable configuration that defines one of these options you can set it to false
in your semantic-release configuration in order to use the default value.