Fix the recent issue with python3
[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: |
23           #!/bin/bash -l
24           set -eu -o pipefail
25
26           # If the project is autorelease then we do not need to cd
27           if [ "$GERRIT_PROJECT" != "releng/autorelease" ]; then
28               cd "$WORKSPACE/$GERRIT_PROJECT"
29           fi
30
31           echo "Checking out ${GERRIT_PROJECT} patch ${GERRIT_REFSPEC}..."
32           git fetch origin ${GERRIT_REFSPEC} && git checkout FETCH_HEAD
33
34           # If the project is autorelease then we need to init and update submodules
35           if [ "$GERRIT_PROJECT" == "releng/autorelease" ]; then
36               git submodule update --init
37               # The previous checkout might have failed to remove directory of a submodule being removed.
38               # See https://stackoverflow.com/a/10761699
39               git clean -dff
40           fi
41
42 - builder:
43     name: autorelease-determine-merge-order
44     builders:
45       - shell: |
46           #!/bin/bash -l
47           set -xe -o pipefail
48           python3 -m venv $WORKSPACE/venv
49           source $WORKSPACE/venv/bin/activate
50           PYTHON="$WORKSPACE/venv/bin/python"
51           $PYTHON -m pip install --upgrade networkx
52           $PYTHON -m pip freeze
53           ./scripts/determine-merge-order.py
54           deactivate
55           rm -rf $WORKSPACE/venv
56
57 - builder:
58     name: autorelease-maven-sources
59     builders:
60       - maven-target:
61           maven-version: "{maven-version}"
62           pom: "pom.xml"
63           goals: |
64             dependency:sources
65             --quiet
66             -DoutputFile=$WORKSPACE/sources.log
67             -DappendOutput
68             {opendaylight-infra-mvn-opts}
69           java-opts:
70             - "-Xmx4096m"
71           settings: "{settings}"
72           settings-type: cfp
73           global-settings: "{global-settings}"
74           global-settings-type: cfp
75       - shell: |
76           awk '/The following files have NOT been resolved:/,/^$/' sources.log > missing-sources.log
77
78 - builder:
79     name: autorelease-distribute-taglist
80     builders:
81       - integration-set-variables
82       - shell: |
83           #!/bin/bash -l
84           set +e  # DO NOT fail build if copying fails.
85
86           cp -vf "$WORKSPACE/archives/patches/taglist.log" \
87               "integration/distribution/$KARAF_ARTIFACT/src/main/assembly/"
88
89           # DO NOT fail the build if copying failed.
90           exit 0
91
92 - builder:
93     name: autorelease-generate-artifact-versions
94     # Generate versions.csv containing version of all mvn artifacts in this build.
95     builders:
96       - shell: |
97           #!/bin/bash -l
98           set -eu -o pipefail
99           ./scripts/generate-artifact-versions.sh
100           mkdir -p "$WORKSPACE/archives"
101           mv versions.csv "$WORKSPACE/archives"
102
103 - builder:
104     name: autorelease-generate-release-patches
105     builders:
106       - shell: !include-raw:
107           - prepare-release.sh
108
109 - builder:
110     name: autorelease-get-integration-test-variables
111     builders:
112       - integration-set-variables
113       - shell: !include-raw: autorelease-get-integration-test-variables.sh
114       - inject:
115           properties-file: variables.prop
116
117 - builder:
118     name: autorelease-fix-relative-paths
119     builders:
120       - shell: |
121           ./scripts/fix-relativepaths.sh
122
123 - builder:
124     name: autorelease-generate-release-notes
125     builders:
126       - shell: !include-raw:
127           - generate-release-notes.sh
128
129 - builder:
130     name: autorelease-update-project-views
131     builders:
132       - shell: !include-raw: update-autorelease-projects-views.sh
133
134 - builder:
135     name: autorelease-update-validate-projects
136     builders:
137       - shell: !include-raw: update-validate-autorelease-projects.sh
138
139 - builder:
140     name: autorelease-compare-projects
141     builders:
142       - shell: !include-raw: compare-autorelease-projects.sh
143
144 - publisher:
145     # Search console log for failures and email status to the release mailing list.
146     name: opendaylight-infra-notify-status
147     publishers:
148       - postbuildscript:
149           builders:
150             - role: BOTH
151               build-on:
152                 - ABORTED
153                 - FAILURE
154                 - NOT_BUILT
155                 - SUCCESS
156                 - UNSTABLE
157               build-steps:
158                 - shell: !include-raw: notify-build-failure.sh
159           mark-unstable-if-failed: true