Commit Graph

58 Commits

Author SHA1 Message Date
Oliver Gierke
bb6ae0a2ad #30 - Check out of a branch for a project now also pulls latest changes. 2016-07-28 09:17:55 +02:00
Oliver Gierke
722d760253 #29 - Workspace.LineCallback now uses Optional as return type.
That allows us to replace non-null checks with a simple ….ifPresent(…).
2016-06-19 09:31:04 +02:00
Oliver Gierke
56287e4d2f #28 - Project lookup by String now also considers keys. 2016-06-19 09:29:15 +02:00
Oliver Gierke
eee5a8d5a7 #27 - Removed build system implementation for Gradle and command for updating Docbook. 2016-06-19 09:26:21 +02:00
Oliver Gierke
7cbb6606d3 #26 - Upgraded to Spring 4.3 and Spring Shell 1.2 RC1.
Removed @Autowired from constructors. Tweaked class setup with Lombok in a variety of places (using @FieldDefaults, @NonNull etc.).
2016-06-19 09:25:22 +02:00
Oliver Gierke
10e2e52bf0 #4 - First draft of marking versions as released.
JIRA implementation. Fails currently as the server complains about the user not being a project admin (which is not the case).
2016-04-06 22:07:02 +02:00
Oliver Gierke
3fa7bda4d1 #25 - Added Ingalls to release train model. 2016-04-06 22:04:31 +02:00
Oliver Gierke
afa73489d7 #19 - Made command in GitCommands methods public again. 2016-04-06 22:03:47 +02:00
Oliver Gierke
27db3a1b8a #24 - Improved release steps.
Updating versions back to development ones is now contained in the conclude step. GitOperations does less pulls now to make sure we don't accidentally drop local commits. The step to create maintenance branches now uses the module version explicitly to create a branch with the right name.
2016-04-06 22:03:13 +02:00
Oliver Gierke
4d07a1c37f #23 - We're now explicitly declaring the source repo to promote from for Artifactory. 2016-04-06 17:29:15 +02:00
Oliver Gierke
d162cee3f6 #22 - UpdateInformation now produces correct version for release train BOM on GA releases. 2016-04-06 17:28:20 +02:00
Oliver Gierke
494de6d62d #21 - Dsitribution build now only uses the distribute profile. 2016-04-06 17:25:45 +02:00
Oliver Gierke
d787d557db #20 - Turned DeploymentInformation into an interface. 2016-04-06 13:42:56 +02:00
Oliver Gierke
e09f5434ef #19 - Made command classes package protected.
Introduced customized execution strategy that makes methods on command classes accessible before executing them. This allows to make command classes package protected.

Introduced TimedCommand base class to output the time a command execution takes.
2016-04-05 19:38:34 +02:00
Oliver Gierke
802c706f4e #18 - Added (currently empty) Sonargraph architecture description. 2016-04-05 18:47:53 +02:00
Oliver Gierke
76aa9e8ed8 #16 - Untangled build execution for Artifactory and Maven Central.
As the Artifactory Maven plugin currently doesn't deploy GPG signatures we need to separate the release build into two iterations. The first one is building the artifacts and promoting them to Artifactory. The second one signs the artifacts and uploads them to Maven Central in case we release a public version (GA or service release).
2016-04-05 18:47:08 +02:00
Oliver Gierke
5451682c64 #5 - Polishing.
Refactored issue tracker implementation into dedicated packages. Removed package tangles by moving some types around. Extracted GitHub specific properties into its own properties type reusing the Git credentials as we're talking to GitHub anyway.

Added Jackson parameter name module and enabled Java 8 parameter names to be able to get rid of the manually declared constructors for payload classes. Turned them into value objects where possible.

Original pull request: #14.
2016-04-05 18:43:46 +02:00
Mark Paluch
7f1ae27d3e #5 - Create release tickets and release versions for Jira-tracked projects.
Creates jira release version for a train iteration if not present. Creates release tickets in Jira and GitHub if not present. Added pre-release verification that the release ticket is present and all other tickets are closed. Allow singular ticket and release version creation. Add integration tests using WireMock. Add command to self-assign release tickets.

Added CLI commands:
* jira releasetickets
* jira create releasetickets
* jira self-assign releasetickets
* jira create releaseversions
* github tickets
* github releasetickets
* github create releaseversions
* github create releasetickets

Original pull request: #14.
2016-04-05 18:43:37 +02:00
Oliver Gierke
ce01cabdf3 #17 - Changed folder name of checked out modules. 2016-03-31 18:49:23 +02:00
Oliver Gierke
e62c76b167 #16 - Added Maven Central distribution
Introduced properties for GPG plugin and forward them to the execution of the release build. Public release versions now trigger the "central" profile being used which will enable the Nexus repository distribution.

Renamed GitCommands.checkout(…) to update(…). Made sure that project release build execution now also authenticates with Artifactory beforehand.
2016-03-31 18:45:46 +02:00
Oliver Gierke
cc257acee7 #15 - Release preparation now already sets the project versions to the release ones.
We now already run the build commands to tweak the versions in the release preparations which allows us to rerun the release build in case it fails at some point.
2016-03-31 18:33:57 +02:00
Oliver Gierke
107ccef568 Bumped Spring Data Elasticsearch version to 2.0 for Hopper. 2016-03-18 10:31:44 +01:00
Oliver Gierke
f7d69dcc02 Tweaked dependencies to reflect changes in project. 2016-03-18 10:31:24 +01:00
Oliver Gierke
2f904f6879 #13 - Explicit reset of the just checked out branch in git prepare. 2016-02-22 19:59:43 +01:00
Oliver Gierke
327fa071ca #2 - Switched to StandardCharsets.US_ASCII.
As suggested by @thomasdarimont.
2016-02-15 19:00:14 +01:00
Oliver Gierke
fdfb00946e #2 - Polishing
Moved more logic into value objects to ease testability. Branches now know whether they're an issue branch for a given tracker. TicketBranches now implements Streamable and allows obtaining a new instance with only resolved tickets in it an inspect whether a it contains a ticket for a given Branch.

Cleaned up GitOperations and GitCommands to make use of the new functionality. "git issuebranches" command was tweaked to default resolvable to true in case the option is set.

Renamed GitHubConnector to correct case. Fixed imports in GitHubIssueTracker.

Formatting.
2016-02-15 18:54:17 +01:00
Mark Paluch
67e5b36bc6 #2 - Provide command to list all issue branches alongside their state in the issue tracker 2016-02-15 18:53:09 +01:00
Oliver Gierke
8abad1385f #11 - Added command to backport changelog entries.
We now support a git backport changelog $trainIteration --target $targetTrain,$targetTrain to backport the changelog commit for the given source iteration into the given release trains. If the source iteration is not corresponding to the master branch (i.e. for service iterations), the master branch is becoming an additional target for the port.
2016-02-15 18:53:06 +01:00
Oliver Gierke
e8ac26f917 #10 - Make sure maintenance branches are only created for GA releases. 2016-02-12 15:28:40 +01:00
Oliver Gierke
121cd8fe80 #9 Added command to leniently remove local tags for a release train. 2016-02-12 15:25:08 +01:00
Oliver Gierke
861b8e4e9d #8 - The execution of the versions plugin now cleans up after itself.
Tweaked the expansion of the Maven plugins to only map the plugin so that e.g. versions:set gets expanded to the fully qualified version of the versions plugin as registered in application.properties.

Tweaked the expansion to inspect all arguments given but ignore properties not containing a colon or staring with a dash.
2016-02-12 14:50:04 +01:00
Oliver Gierke
29dd83bd48 Upgrade to Spring Shell 1.2.0 M1. 2016-02-10 17:29:28 +01:00
Oliver Gierke
4099c9259c Tweaked project model to let Redis depend on Commons.
In preparation of the dependency of Redis to Spring Data Commons we now list that dependency.
2016-02-10 17:29:02 +01:00
Oliver Gierke
452e42ee31 Verify Artifactory authentication before release build.
We now explicitly access an Artifactory resource to verify authentication so that it's less likely the deployment and promotion will fail later on. Added "artifactory verify" as command to be executed from the shell.
2016-02-10 16:22:39 +01:00
Oliver Gierke
a1a6727eca Changed default workspace setup to contain repository.
This makes sure we use a separate Maven repository to locally deploy artifacts into.
2016-02-10 16:18:31 +01:00
Oliver Gierke
0f861a0309 Added command to purge Spring Data artifacts from the local repository. 2016-02-10 16:17:07 +01:00
Oliver Gierke
045a4db5fd Enable CI profile during releases to make sure we build JavaDoc. 2016-02-10 16:15:48 +01:00
Oliver Gierke
c11945aeba Tweaked ordering of modules within trains and train iterations.
We're now using the global sorting of the projects defined by the topological graph analysis run at startup to implement Comparable and exposing this comparability on more upper levels like modules.
2016-02-10 14:26:25 +01:00
Oliver Gierke
61c000fec8 Added command to wipe the workspace. 2016-02-10 14:20:47 +01:00
Oliver Gierke
eba6c7fa16 Extracted lazy exception lookup to make sure the normal Java compiler doesn't choke. 2016-02-10 14:19:45 +01:00
Oliver Gierke
29da393846 Removed obsolete pick up of system properties.
GitHub password is obtained from application-local.properties.
2016-02-10 14:18:20 +01:00
Oliver Gierke
2efc0bcbfc A way too big commit.
Switched to Apache Maven Invoker for running Maven on the projects.

Added JGraphT to correctly sort dependencies in topological order.

Upgraded to Spring Boot 1.3.2, Lombok 1.16.6, jGit 4.2.0. Upgraded to Spring Plugin 1.3 to benefit from lazy exception creation using lambdas. Added Lombok configuration to throw IllegalArgumentException on null checks.
2016-02-10 12:01:06 +01:00
Oliver Gierke
243561571b Significant Java 8 updates and Spring Boot integration.
Moved to Spring Boot 1.3 and leverage the new configuration properties mechanism (see GitProperties and IoProperties). Improved ArtifactVersion to be a better value object.

Introduced usage of Java 8's CompletableFuture to execute most of the Git operations in parallel. Started to use Lambdas where possible.

Git configuration is now supposed to be done using a application-local.properties (Git ignored) file containing the relevant properties (see readme). The test configuration now uses a separate workspace location and a Sample release train to make sure the integration tests run without interfering a local workspace.

Added train declaration for Hopper. Integrated BootShim (see [0], [1]) to run the shell on top of Spring Boot.

[0] https://github.com/jeffellin/springshellwithboot
[1] https://github.com/spring-projects/spring-shell/issues/34
2015-11-21 12:32:57 +01:00
Oliver Gierke
f52d57da5c #1 - Added license and readme. 2015-07-07 14:46:57 +02:00
Oliver Gierke
82892abe94 Moved release tool into dedicated sub-folder. 2015-07-07 08:30:23 +02:00
Oliver Gierke
b762f7857b More stuff. 2015-07-01 09:13:57 +02:00
Oliver Gierke
cb55df8861 Improvements \o/.
Upgraded dependencies. Changed XPath expressions due to upgrade of Xmlbeam.
2015-06-30 16:37:35 +02:00
Oliver Gierke
45ce12081c Additional functionality for the Git module.
Added functionality to reset a release train which actively resets to the latest state of the remote branch. Added functionality to push changes to the remote server and push tags individually. Added functionality to create commits for modules.

Release operations now create two commits for the changelog update and the pom modifications. Release conclude does so for the preparation of the next development iteration.

Added git.author infrastructure property to make sure we use a real user for the git commits.
2014-05-20 13:50:43 +02:00
Oliver Gierke
eeb511a377 Fixed iteration detection in JiraVersion. 2014-05-02 17:00:06 +02:00
Oliver Gierke
e77f9b087c ModuleIteration now returns correct iterations for a custom first iteration.
Previously, ModuleIteration always returned the custom first iteration on every call to getIteration(). We now only do so for the very first iteration.
2014-05-02 13:23:39 +02:00