|
9 | 9 | - hosts: localhost |
10 | 10 | connection: local |
11 | 11 | vars_files: |
12 | | - |
| 12 | + |
13 | 13 | - release_vars.yml |
14 | | - |
| 14 | + |
15 | 15 | vars_prompt: |
16 | | - |
| 16 | + |
17 | 17 | - name: "release_version" |
18 | 18 | prompt: "Release version" |
19 | 19 | private: no |
20 | | - |
| 20 | + |
21 | 21 | - name: "release_description" |
22 | 22 | prompt: "Description" |
23 | 23 | private: no |
24 | | - |
| 24 | + |
25 | 25 | vars: |
26 | | - |
27 | | - # TODO These body objects can be moved into the uri tasks, once this issue is resolved: |
28 | | - # https://github.com/ansible/ansible-modules-core/issues/265 |
29 | | - # |
30 | | - create_version_body: |
31 | | - name: "{{ release_version }}" |
32 | | - desc: "{{ release_description }}" |
33 | | - github_release_notes_file: "CHANGELOG.md" |
34 | | - github_use_tag_release_notes: True |
35 | | - vcs_tag: "java-object-diff-{{ release_version }}" |
36 | | - _hack: null # an extra key with null value, which fails `utils.safe_eval` |
37 | | - |
38 | | - maven_central_sync_body: |
39 | | - username: "{{ sonatype.user }}" |
40 | | - password: "{{ sonatype.token }}" |
41 | | - close: "1" |
42 | | - _hack: null # an extra key with null value, which fails `utils.safe_eval` |
43 | | - |
44 | 26 | files_with_version_reference: |
45 | 27 | - "README.md" |
46 | 28 | - "docs/maven.md" |
47 | | - |
| 29 | + |
48 | 30 | tasks: |
49 | | - |
| 31 | + |
50 | 32 | # TODO The versions could be easily updated via Ansible; changelog warning may be removed |
51 | 33 | - pause: |
52 | 34 | prompt: Make sure the changelog is up-to-date (Press ENTER to continue) |
53 | | - |
| 35 | + |
54 | 36 | - name: replace maven version in readme and docs |
55 | 37 | replace: |
56 | 38 | dest: "{{ item }}" |
57 | 39 | regexp: '<version>[0-9\.]+</version>' |
58 | 40 | replace: "<version>{{ release_version }}</version>" |
59 | 41 | with_items: files_with_version_reference |
60 | | - |
| 42 | + |
61 | 43 | - name: replace gradle version in readme and docs |
62 | 44 | replace: |
63 | 45 | dest: "{{ item }}" |
64 | 46 | regexp: 'de.danielbechler:java-object-diff:[0-9\.]+' |
65 | 47 | replace: "de.danielbechler:java-object-diff:{{ release_version }}" |
66 | 48 | with_items: files_with_version_reference |
67 | | - |
| 49 | + |
68 | 50 | # TODO: I'm not quite sure if the changes above need to be commited before performing a mvn release |
69 | 51 | # Guess I'll find out with the next release... |
70 | | - |
| 52 | + |
71 | 53 | # TODO Automate via command or shell module |
72 | 54 | - pause: |
73 | 55 | prompt: Perform mvn release:prepare (Press ENTER to continue) |
74 | | - |
| 56 | + |
75 | 57 | - name: create new version on bintray |
76 | 58 | uri: |
77 | 59 | url: "https://api.bintray.com/packages/sqisher/maven/java-object-diff/versions" |
78 | 60 | method: POST |
79 | 61 | user: "{{ bintray.user }}" |
80 | 62 | password: "{{ bintray.password }}" |
81 | 63 | force_basic_auth: yes |
82 | | - "HEADER_Content-Type": "application/json" |
83 | | - body: "{{ create_version_body | to_json }}" |
| 64 | + body: |
| 65 | + name: "{{ release_version }}" |
| 66 | + desc: "{{ release_description }}" |
| 67 | + github_release_notes_file: "CHANGELOG.md" |
| 68 | + github_use_tag_release_notes: True |
| 69 | + vcs_tag: "java-object-diff-{{ release_version }}" |
| 70 | + body_format: json |
84 | 71 | timeout: 120 |
85 | 72 | status_code: 201 |
86 | | - |
| 73 | + |
87 | 74 | # TODO Automate via command or shell module |
88 | 75 | - pause: |
89 | 76 | prompt: Perform mvn release:perform (Press ENTER to continue) |
90 | | - |
| 77 | + |
91 | 78 | - name: sign version artifacts |
92 | 79 | uri: |
93 | 80 | url: "https://api.bintray.com/gpg/sqisher/maven/java-object-diff/versions/{{ release_version }}" |
|
96 | 83 | password: "{{ bintray.password }}" |
97 | 84 | force_basic_auth: yes |
98 | 85 | "HEADER_X-GPG-PASSPHRASE": "{{ gpg.passphrase }}" |
99 | | - |
| 86 | + |
100 | 87 | - name: publish artifacts |
101 | 88 | uri: |
102 | 89 | url: "https://api.bintray.com/content/sqisher/maven/java-object-diff/{{ release_version }}/publish" |
103 | 90 | method: POST |
104 | 91 | user: "{{ bintray.user }}" |
105 | 92 | password: "{{ bintray.password }}" |
106 | 93 | force_basic_auth: yes |
107 | | - |
| 94 | + |
108 | 95 | - name: sync to maven central |
109 | 96 | uri: |
110 | 97 | url: "https://api.bintray.com/maven_central_sync/sqisher/maven/java-object-diff/versions/{{ release_version }}" |
111 | 98 | method: POST |
112 | 99 | user: "{{ bintray.user }}" |
113 | 100 | password: "{{ bintray.password }}" |
114 | 101 | force_basic_auth: yes |
115 | | - "HEADER_Content-Type": "application/json" |
116 | | - body: "{{ maven_central_sync_body | to_json }}" |
| 102 | + body_format: json |
| 103 | + body: |
| 104 | + username: "{{ sonatype.user }}" |
| 105 | + password: "{{ sonatype.token }}" |
| 106 | + close: "1" |
117 | 107 | timeout: 120 |
0 commit comments