Skip to content

Commit 54202c1

Browse files
committed
Code review changes
1 parent cd4b362 commit 54202c1

File tree

1 file changed

+33
-12
lines changed

1 file changed

+33
-12
lines changed

.github/workflows/JirabotMerge.yml

+33-12
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ jobs:
4747
PULL_REQUEST_TITLE : ${{ github.event.pull_request.title }}
4848
PULL_REQUEST_AUTHOR_NAME : ${{ github.event.pull_request.user.login }}
4949
PULL_URL: ${{ github.event.pull_request.html_url }}
50+
PROJECT_CONFIG: ${{ vars.PROJECT_CONFIG}}
5051
COMMENTS_URL: ${{ github.event.pull_request.comments_url }}
5152
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5253
BRANCH_NAME: ${{ github.ref_name }}
@@ -95,8 +96,15 @@ jobs:
9596
major, minor, point = map(int, version)
9697
return f"{major}.{minor}.{point}"
9798
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
100108
if major is not None:
101109
releaseTagPattern += str(major) + '\.'
102110
else:
@@ -112,16 +120,16 @@ jobs:
112120
else:
113121
releaseTagPattern += '[0-9]+(-[0-9]+)?'
114122
115-
releaseTagPattern += '-release$'
123+
releaseTagPattern += releaseTagPostfix + '$'
116124
117125
return releaseTagPattern
118126
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"
121129
return getTagVersionForCmd(cmd)
122130
123-
def generateFixVersionList(jira, projectName, branchName):
124-
latestVersion = getLatestSemVer()
131+
def generateFixVersionList(jira, projectConfig, projectName, branchName):
132+
latestVersion = getLatestSemVer(projectConfig)
125133
126134
# If we are merging into master we assume it is going into the next minor release
127135
fixVersions = []
@@ -134,12 +142,12 @@ jobs:
134142
branchVersion = extractVersion(branchVersionMatch.group(1))
135143
136144
# Get latest release in branch
137-
latestBranchVer = getLatestSemVer(branchVersion[0], branchVersion[1])
145+
latestBranchVer = getLatestSemVer(projectConfig, branchVersion[0], branchVersion[1])
138146
139147
curMajor = branchVersion[0]
140148
latestMajor = latestVersion[0]
141149
while curMajor <= latestMajor:
142-
latestVersionInMajor = getLatestSemVer(curMajor)
150+
latestVersionInMajor = getLatestSemVer(projectConfig, curMajor)
143151
144152
curMinor = 0
145153
if curMajor == branchVersion[0]:
@@ -148,7 +156,7 @@ jobs:
148156
latestMinor = latestVersionInMajor[1]
149157
150158
while curMinor <= latestMinor:
151-
latestPointInMinor = getLatestSemVer(curMajor, curMinor)
159+
latestPointInMinor = getLatestSemVer(projectConfig, curMajor, curMinor)
152160
fixVersions.append(buildVersionString([latestPointInMinor[0], latestPointInMinor[1], latestPointInMinor[2] + 2]))
153161
curMinor += 2
154162
curMajor += 1
@@ -236,7 +244,20 @@ jobs:
236244
github_token = os.environ['GITHUB_TOKEN']
237245
branch_name = os.environ['BRANCH_NAME']
238246
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)
240261
241262
result = ''
242263
issuem = re.search("(" + project_name + ")-[0-9]+", title, re.IGNORECASE)
@@ -252,7 +273,7 @@ jobs:
252273
253274
result = 'Jirabot Action Result:\n'
254275
255-
fixVersions = generateFixVersionList(jira, project_name, branch_name)
276+
fixVersions = generateFixVersionList(jira, projectConfig, project_name, branch_name)
256277
result += resolveIssue(jira, project_name, issue, fixVersions)
257278
jira.issue_add_comment(issue_name, result)
258279

0 commit comments

Comments
 (0)