Feat!: Update JJB version to 6x
[releng/builder.git] / jjb / autorelease / autorelease-macros.yaml
1 ---
2 # Macros for the AutoRelease project
3 - parameter:
4     name: autorelease-release-tag
5     parameters:
6       - string:
7           name: RELEASE_TAG
8           default: "{release-tag}"
9           description: "The Release train tag to use eg. Beryllium-SR1"
10
11 - wrapper:
12     name: autorelease-build-timeout
13     wrappers:
14       - timeout:
15           type: absolute
16           timeout: 1440
17           fail: true
18
19 - builder:
20     name: autorelease-checkout-gerrit-patch
21     builders:
22       - shell: !include-raw-escape: autorelease-checkout-gerrit-patch.sh
23
24 - builder:
25     name: autorelease-determine-merge-order
26     builders:
27       - shell: |
28           #!/bin/bash -l
29           set -xe -o pipefail
30           python3 -m venv $WORKSPACE/venv
31           . $WORKSPACE/venv/bin/activate
32           PYTHON="$WORKSPACE/venv/bin/python"
33           $PYTHON -m pip install --upgrade networkx
34           $PYTHON -m pip freeze
35           ./scripts/determine-merge-order.py
36           deactivate
37           rm -rf $WORKSPACE/venv
38
39 - builder:
40     name: autorelease-maven-sources
41     builders:
42       - maven-target:
43           maven-version: "{maven-version}"
44           pom: "pom.xml"
45           goals: |
46             dependency:sources
47             --quiet
48             -DoutputFile=$WORKSPACE/sources.log
49             -DappendOutput
50             {opendaylight-infra-mvn-opts}
51           java-opts:
52             - "-Xmx4096m"
53           settings: "{settings}"
54           settings-type: cfp
55           global-settings: "{global-settings}"
56           global-settings-type: cfp
57       - shell: |
58           awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
59
60 - builder:
61     name: autorelease-distribute-taglist
62     builders:
63       - integration-set-variables
64       - shell: |
65           #!/bin/bash -l
66           set +e  # DO NOT fail build if copying fails.
67
68           cp -vf "$WORKSPACE/archives/patches/taglist.log" \
69               "integration/distribution/$KARAF_ARTIFACT/src/main/assembly/"
70
71           # DO NOT fail the build if copying failed.
72           exit 0
73
74 - builder:
75     name: autorelease-generate-artifact-versions
76     # Generate versions.csv containing version of all mvn artifacts in this build.
77     builders:
78       - shell: |
79           #!/bin/bash -l
80           set -eu -o pipefail
81           ./scripts/generate-artifact-versions.sh
82           mkdir -p "$WORKSPACE/archives"
83           mv versions.csv "$WORKSPACE/archives"
84
85 - builder:
86     name: autorelease-generate-release-patches
87     builders:
88       - shell: !include-raw-escape:
89           - prepare-release.sh
90
91 - builder:
92     name: autorelease-get-integration-test-variables
93     builders:
94       - integration-set-variables
95       - shell: !include-raw-escape: autorelease-get-integration-test-variables.sh
96       - inject:
97           properties-file: variables.prop
98
99 - builder:
100     name: autorelease-fix-relative-paths
101     builders:
102       - shell: |
103           ./scripts/fix-relativepaths.sh
104
105 - builder:
106     name: autorelease-generate-release-notes
107     builders:
108       - shell: !include-raw-escape:
109           - generate-release-notes.sh
110
111 - builder:
112     name: autorelease-update-project-views
113     builders:
114       - shell: !include-raw-escape: update-autorelease-projects-views.sh
115
116 - builder:
117     name: autorelease-update-validate-projects
118     builders:
119       - shell: !include-raw-escape: update-validate-autorelease-projects.sh
120
121 - builder:
122     name: autorelease-compare-projects
123     builders:
124       - shell: !include-raw: compare-autorelease-projects.sh
125
126 - publisher:
127     # Search console log for failures and email status to the release mailing list.
128     name: opendaylight-infra-notify-status
129     publishers:
130       - postbuildscript:
131           builders:
132             - role: BOTH
133               build-on:
134                 - ABORTED
135                 - FAILURE
136                 - NOT_BUILT
137                 - SUCCESS
138                 - UNSTABLE
139               build-steps:
140                 - shell: !include-raw-escape: notify-build-failure.sh
141           mark-unstable-if-failed: true