@@ -2,18 +2,97 @@ Steps to build junit:
2
2
3
3
- Must be manual
4
4
- Write release notes
5
- - Update version in pom.xml
6
5
- Not too tedious:
7
6
- Push to github (dsaff _and_ KentBeck)
8
7
- Run the mvn clean install
9
- - Upload stuff to github (including tag)
10
- - Push to maven
11
- - mvn -Dgpg.passphrase="<passphrase>" -Psign clean deploy
12
- - Promote
8
+ - If not done, update src/main/config/settings.xml in /private/.../settings.xml on CloudBees' webdav share.
9
+ - If not done, copy GnuPG keys in to ${gpg.homedir}. See settings.xml.
10
+ - Perform Maven deployment of a snapshot or release version in Jenkins
11
+ Remember that the version specified in the pom.xml indicates the version
12
+ to be deployed, with -SNAPSHOT indicating that this is an unofficial
13
+ pre-release version towards the goal of the version without the -SNAPSHOT
14
+
15
+ - (to deploy gpg signed snapshot version)
16
+
17
+ $ mvn -Pjunit-release clean deploy
18
+
19
+ - (to cut a release of the current targetted version)
20
+
21
+ $ mvn -B release:prepare release:perform
22
+
23
+ This will result in the current pom.xml version having -SNAPSHOT removed
24
+ and the release cut from that version. The version will then be incremented
25
+ and -SNAPSHOT added back in anticipation of the next release version.
26
+
27
+ - (to cut a release of while changing the version from the current target)
28
+
29
+ $ mvn -B -DreleaseVersion=5.0 release:prepare release:perform
30
+
31
+ This will ignore the current version in the pom.xml, set it to 5.0 and
32
+ the release cut from that 5.0 version. Then 5.0 will be incremented (to 5.1)
33
+ and -SNAPSHOT added back in anticipation of the next release version.
34
+
35
+ - (to deploy specified release version and next target release in non-interactive mode -B)
36
+ An example with the next development version and deploying release version:
37
+
38
+ $ mvn -B -DreleaseVersion=4.12 -DdevelopmentVersion=4.13-SNAPSHOT release:prepare release:perform
39
+
40
+ - If you are not an official release manager, and you want to cut a release of
41
+ JUnit for use within your organization, use the following command
42
+
43
+ $ mvn -DpushChanges=false -DlocalCheckout '-Darguments=-Dgpg.skip=true -DaltDeploymentRepository=my-company-repo-id::default::my-company-repo-url' -B -DreleaseVersion=4.12-mycompany-1 release:prepare release:perform
44
+
45
+ where
46
+ - my-company-repo-id is the <id> of your company's <server> entry in your
47
+ settings.xml with the credentials to deploy to your company's Maven repository
48
+ - my-company-repo-url is the deployment URL of your company's Maven repository
49
+ - 4.12-mycompany-1 is the version you are deploying, be sure to namespace
50
+ the version so that you don't conflict with others, hence why the text "mycompany"
51
+ is included in the example version number.
52
+
53
+ - Promote the maven artifacts and close staging repository if released successfully
13
54
- Tedious:
14
55
- Update SourceForge if major release
15
56
- Update javadocs on github site (and "latest" link)
16
57
- Update javadocs on junit.org
17
58
- Put release notes on github.
18
59
- Announce on blog, user list, dev list, announce list, junit.org, twitter
19
60
- Profit!
61
+
62
+
63
+ ===================================================================================
64
+ == Internal template of Maven settings used by JUnit build machine. ==
65
+ == settings.xml ==
66
+ ===================================================================================
67
+ <?xml version="1.0" encoding="UTF-8"?>
68
+ <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
69
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
70
+ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
71
+ <servers>
72
+ <server>
73
+ <id>junit-snapshot-repo</id>
74
+ <username><!--a username registered with Sonatype for deployment--></username>
75
+ <password><!--corresponding password--></password>
76
+ </server>
77
+ <server>
78
+ <id>junit-releases-repo</id>
79
+ <username><!--a username registered with Sonatype for deployment--></username>
80
+ <password><!--corresponding password--></password>
81
+ </server>
82
+ </servers>
83
+ <profiles>
84
+ <profile>
85
+ <id>junit-release</id>
86
+ <properties>
87
+ <!-- NOTE: See keyname used by maven-gpg-plugin in pom.xml. -->
88
+ <gpg.passphrase>...</gpg.passphrase>
89
+ <gpg.defaultKeyring>false</gpg.defaultKeyring>
90
+ <gpg.useagent>true</gpg.useagent>
91
+ <gpg.homedir>/private/.../.gnupg</gpg.homedir>
92
+ <gpg.publicKeyring>/private/.../.gnupg/pubring.gpg</gpg.publicKeyring>
93
+ <gpg.secretKeyring>/private/.../.gnupg/secring.gpg</gpg.secretKeyring>
94
+ </properties>
95
+ </profile>
96
+ </profiles>
97
+ </settings>
98
+ ===================================================================================
0 commit comments