47
47
PULL_REQUEST_TITLE : ${{ github.event.pull_request.title }}
48
48
PULL_REQUEST_AUTHOR_NAME : ${{ github.event.pull_request.user.login }}
49
49
PULL_URL : ${{ github.event.pull_request.html_url }}
50
+ PROJECT_CONFIG : ${{ vars.PROJECT_CONFIG}}
50
51
COMMENTS_URL : ${{ github.event.pull_request.comments_url }}
51
52
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
52
53
BRANCH_NAME : ${{ github.ref_name }}
95
96
major, minor, point = map(int, version)
96
97
return f"{major}.{minor}.{point}"
97
98
98
- def createReleaseTagPattern(major = None, minor = None, point = None):
99
- releaseTagPattern = 'hpcc4j_'
99
+ def createReleaseTagPattern(projectConfig, major = None, minor = None, point = None):
100
+ releaseTagPrefix = projectConfig.get('tagPrefix')
101
+ releaseTagPostfix = projectConfig.get('tagPostfix')
102
+
103
+ if releaseTagPrefix is None or releaseTagPostfix is None:
104
+ print('Error: PROJECT_CONFIG is missing required fields: tagPrefix and/or tagPostfix')
105
+ sys.exit(1)
106
+
107
+ releaseTagPattern = releaseTagPrefix
100
108
if major is not None:
101
109
releaseTagPattern += str(major) + '\.'
102
110
else:
@@ -112,16 +120,16 @@ jobs:
112
120
else:
113
121
releaseTagPattern += '[0-9]+(-[0-9]+)?'
114
122
115
- releaseTagPattern += '-release $'
123
+ releaseTagPattern += releaseTagPostfix + ' $'
116
124
117
125
return releaseTagPattern
118
126
119
- def getLatestSemVer(major = None, minor = None, point = None):
120
- cmd = "git tag --list --sort=-v:refname | grep -E '" + createReleaseTagPattern(major, minor, point) + "' | head -n 1"
127
+ def getLatestSemVer(projectConfig, major = None, minor = None, point = None):
128
+ cmd = "git tag --list --sort=-v:refname | grep -E '" + createReleaseTagPattern(projectConfig, major, minor, point) + "' | head -n 1"
121
129
return getTagVersionForCmd(cmd)
122
130
123
- def generateFixVersionList(jira, projectName, branchName):
124
- latestVersion = getLatestSemVer()
131
+ def generateFixVersionList(jira, projectConfig, projectName, branchName):
132
+ latestVersion = getLatestSemVer(projectConfig )
125
133
126
134
# If we are merging into master we assume it is going into the next minor release
127
135
fixVersions = []
@@ -134,12 +142,12 @@ jobs:
134
142
branchVersion = extractVersion(branchVersionMatch.group(1))
135
143
136
144
# Get latest release in branch
137
- latestBranchVer = getLatestSemVer(branchVersion[0], branchVersion[1])
145
+ latestBranchVer = getLatestSemVer(projectConfig, branchVersion[0], branchVersion[1])
138
146
139
147
curMajor = branchVersion[0]
140
148
latestMajor = latestVersion[0]
141
149
while curMajor <= latestMajor:
142
- latestVersionInMajor = getLatestSemVer(curMajor)
150
+ latestVersionInMajor = getLatestSemVer(projectConfig, curMajor)
143
151
144
152
curMinor = 0
145
153
if curMajor == branchVersion[0]:
@@ -148,7 +156,7 @@ jobs:
148
156
latestMinor = latestVersionInMajor[1]
149
157
150
158
while curMinor <= latestMinor:
151
- latestPointInMinor = getLatestSemVer(curMajor, curMinor)
159
+ latestPointInMinor = getLatestSemVer(projectConfig, curMajor, curMinor)
152
160
fixVersions.append(buildVersionString([latestPointInMinor[0], latestPointInMinor[1], latestPointInMinor[2] + 2]))
153
161
curMinor += 2
154
162
curMajor += 1
@@ -236,7 +244,20 @@ jobs:
236
244
github_token = os.environ['GITHUB_TOKEN']
237
245
branch_name = os.environ['BRANCH_NAME']
238
246
comments_url = os.environ['COMMENTS_URL']
239
- project_name = 'HPCC4J'
247
+
248
+ projectConfig = json.loads(os.environ['PROJECT_CONFIG'])
249
+ if not isinstance(projectConfig, dict):
250
+ print('Error: PROJECT_CONFIG is not a valid JSON object, aborting.')
251
+ sys.exit(1)
252
+
253
+ if 'tagPrefix' not in projectConfig or 'tagPostfix' not in projectConfig:
254
+ print('Error: PROJECT_CONFIG is missing required fields: tagPrefix and/or tagPostfix')
255
+ sys.exit(1)
256
+
257
+ project_name = projectConfig.get('projectName')
258
+ if project_name is None:
259
+ print('Error: PROJECT_CONFIG is missing required field: projectName')
260
+ sys.exit(1)
240
261
241
262
result = ''
242
263
issuem = re.search("(" + project_name + ")-[0-9]+", title, re.IGNORECASE)
@@ -252,7 +273,7 @@ jobs:
252
273
253
274
result = 'Jirabot Action Result:\n'
254
275
255
- fixVersions = generateFixVersionList(jira, project_name, branch_name)
276
+ fixVersions = generateFixVersionList(jira, projectConfig, project_name, branch_name)
256
277
result += resolveIssue(jira, project_name, issue, fixVersions)
257
278
jira.issue_add_comment(issue_name, result)
258
279
0 commit comments