cdeliveryboy

CDeliveryBoy - Continuous Delivery for FOSS projects

License

License

Categories

Categories

Gradle Build Tools
GroupId

GroupId

info.solidsoft.gradle
ArtifactId

ArtifactId

cdeliveryboy
Last Version

Last Version

0.8.0
Release Date

Release Date

Type

Type

jar
Description

Description

cdeliveryboy
CDeliveryBoy - Continuous Delivery for FOSS projects
Project URL

Project URL

https://github.com/szpak/cdeliveryboy
Source Code Management

Source Code Management

https://github.com/szpak/cdeliveryboy

Download cdeliveryboy

How to add to project

<!-- https://jarcasting.com/artifacts/info.solidsoft.gradle/cdeliveryboy/ -->
<dependency>
    <groupId>info.solidsoft.gradle</groupId>
    <artifactId>cdeliveryboy</artifactId>
    <version>0.8.0</version>
</dependency>
// https://jarcasting.com/artifacts/info.solidsoft.gradle/cdeliveryboy/
implementation 'info.solidsoft.gradle:cdeliveryboy:0.8.0'
// https://jarcasting.com/artifacts/info.solidsoft.gradle/cdeliveryboy/
implementation ("info.solidsoft.gradle:cdeliveryboy:0.8.0")
'info.solidsoft.gradle:cdeliveryboy:jar:0.8.0'
<dependency org="info.solidsoft.gradle" name="cdeliveryboy" rev="0.8.0">
  <artifact name="cdeliveryboy" type="jar" />
</dependency>
@Grapes(
@Grab(group='info.solidsoft.gradle', module='cdeliveryboy', version='0.8.0')
)
libraryDependencies += "info.solidsoft.gradle" % "cdeliveryboy" % "0.8.0"
[info.solidsoft.gradle/cdeliveryboy "0.8.0"]

Dependencies

compile (3)

Group / Artifact Type Version
com.bmuschko : gradle-nexus-plugin jar 2.3.1
pl.allegro.tech.build : axion-release-plugin jar 1.7.2
io.codearte.gradle.nexus : gradle-nexus-staging-plugin jar 0.11.0

test (5)

Group / Artifact Type Version
org.spockframework : spock-core jar 1.1-groovy-2.4
net.bytebuddy : byte-buddy jar 1.7.5
org.objenesis : objenesis jar 2.6
info.solidsoft.spock : spock-global-unroll jar 0.5.1
org.mockito : mockito-core jar 2.10.0

Project Modules

There are no modules declared in this project.

CDeliveryBoy Build Status Maven Central

Continuous Delivery solution for Gradle based FOSS projects.

Vision

Long time ago the vision sprung to my mind. Starting my new FOSS project I would like to be able to get a (doing nothing) template with all build-related stuff and Continuous Delivery to the Central Repository fully configured withing a few (at most several) minutes. Just to be able to immediately focus on the main problem to solve (aka "business logic"), not the infrastructure around. CDeliveryBoy is an attempt to achieve that. I already use it in my projects and there is a chance it can be useful also for some other FOSS authors.

Quick start

To be precisely defined. In the meantime please take a look at the Dummy CD project (a cDeliveryBoy branch) with sample (working) configuration or CDeliveryBoy project itself.

Features

This plugin provides (on its own or by internally orchestrating other plugins) the following release steps:

  • version management
  • artifacts building
  • tagging and pushing changes back to GitHub
  • promotion of uploaded artifacts to Maven Central

After initial configuration the whole release process is performed automatically on Travis when requested by a command placed in a commit message.

Requirements

The project should fulfill the following conditions:

  • configured artifacts upload to Sonatype Nexus OSS (with artifacts signing)
  • configured Travis build

Hint: gradle-template could be as a starting point.

Sample configuration

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'info.solidsoft.gradle:cdeliveryboy:0.8.0'
    }
}

apply plugin: 'info.solidsoft.cdeliveryboy'

cDeliveryBoy {
    nexus {
        autoPromote = false
    }
}

nexusStaging {
    packageGroup = "YOUR-PACKAGE-GROUP-IN-NEXUS"
}

scmVersion {
}

project.version = scmVersion.version

Rationale

I've been tired of manual releasing the FOSS projects I maintain. Being professionally deeply involved in Continuous Delivery of high quality "Enterprise-Class applications" I wanted to have a light version of CD available for me and other people prefering automation and convenience.

Alternatives

CDeliveryBoy has been created as there was no comprehensive solutions for Gradle available. CDeliveryBoy assumes a developer wants to follow proposed release flow in his/her project to speed up the things. However, in a situation the "default flow" is not enough there is also Mockito Release Tools, which emerged in the meantime, offering great flexibility (as the cost of more steep learning curve).

Additional information

The project is available as a technology preview and it definitely will be evolving in the way that breaks backward compatibility. Please take it into account before using it in production.

CDeliveryBoy has been written by Marcin Zajączkowski. The author can be contacted directly via email: mszpak ATT wp DOTT pl. There is also Marcin's blog available: Solid Soft - working code is not enough.

The project is licensed under the terms of the Apache License, Version 2.0.

Versions

Version
0.8.0
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0