Skip to content

Commit

Permalink
Merge pull request #94 from jpopelka/buildInfo
Browse files Browse the repository at this point in the history
Add getBuildInfo() step
  • Loading branch information
jpopelka authored Jan 15, 2025
2 parents 9f19b50 + 8a4a052 commit 150f070
Show file tree
Hide file tree
Showing 8 changed files with 65 additions and 1 deletion.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,11 @@ This is a list of all steps implemented in the library. Click on a particular st
* [buildId2taskId()](./docs/steps/buildId2taskId.md)
* [buildImageAndPushToRegistry()](./docs/steps/buildImageAndPushToRegistry.md)
* [getArtifactType()](./docs/steps/getArtifactType.md)
* [getBuildInfo()](./docs/steps/getBuildInfo.md)
* [getGatingRequirements()](./docs/steps/getGatingRequirements.md)
* [getGitUrl()](./docs/steps/getGitUrl.md)
* [getReleaseIdFromBranch()](./docs/steps/getReleaseIdFromBranch.md)
* [getTaskInfo()](./docs/steps/getTaskInfo.md)
* [gzip()](./docs/steps/gzip.md)
* [isScratchBuild()](./docs/steps/isScratchBuild.md)
* [isProduction()](./docs/steps/isProduction.md)
Expand Down
13 changes: 13 additions & 0 deletions docs/steps/getBuildInfo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# getBuildInfo() step

Return information about given Koji build.

## Parameters

* **buildId**: integer; Koji build ID

## Example Usage

```groovy
def buildInfo = getBuildInfo(2615024)
```
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<repository>
<id>jenkins-releases</id>
<name>Jenkins Releases</name>
<url>http://repo.jenkins-ci.org/releases</url>
<url>https://repo.jenkins-ci.org/releases</url>
</repository>
</repositories>

Expand Down
1 change: 1 addition & 0 deletions src/org/fedoraproject/jenkins/Utils.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package org.fedoraproject.jenkins

import groovy.json.JsonSlurperClassic
import groovy.json.JsonBuilder
import groovy.xml.XmlSlurper
import java.time.Instant
import java.security.MessageDigest
import java.util.zip.GZIPInputStream
Expand Down
1 change: 1 addition & 0 deletions src/org/fedoraproject/jenkins/koji/Koji.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ class Koji implements Serializable {
taskInfo.version = version
taskInfo.release = release
taskInfo.nvr = nvr
taskInfo.buildId = null
}

return taskInfo
Expand Down
19 changes: 19 additions & 0 deletions test/groovy/org/fedoraproject/jenkins/koji/KojiTest.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,25 @@ class KojiTest extends BasePipelineTest {
assertEquals 'git+https://src.fedoraproject.org/rpms/python-requests.git#f9d62a3fa1306bd3744f29b4a4136adfc3de6603', taskInfo.source.raw
}

@Test
void getBuildInfoTest() {
Koji koji = new Koji()

// https://koji.fedoraproject.org/koji/buildinfo?buildID=2615024
def buildInfo = koji.getBuildInfo(2615024)

assertNotNull buildInfo
assertFalse buildInfo.scratch
assertEquals 'rpmlint-2.6.1-1.fc42', buildInfo.nvr
assertEquals 'rpmlint', buildInfo.name
assertEquals 'rpmlint', buildInfo.packageName
assertEquals '2.6.1', buildInfo.version
assertEquals '1.fc42', buildInfo.release
assertEquals 'churchyard', buildInfo.ownerName
assertEquals '127834990', buildInfo.taskId
assertThat(buildInfo.tags).contains('f42')
}

@Test
void getNonExistentTaskInfoTest() {
Koji koji = new Koji()
Expand Down
27 changes: 27 additions & 0 deletions vars/getBuildInfo.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/groovy

import org.fedoraproject.jenkins.koji.Koji


/**
* getBuildInfo() step.
*/
def call(buildId) {
def koji = new Koji(env.KOJI_API_URL)
def buildInfo = koji.getBuildInfo(buildId.toInteger())

// TODO: we can do this mapping directly in BuildInfo class
def buildInfoMap = [
'id': buildInfo.id,
'nvr': buildInfo.nvr
'name': buildInfo.name,
'packageName': buildInfo.packageName,
'version': buildInfo.version,
'release': buildInfo.release,
'ownerName': buildInfo.ownerName,
'taskId': buildInfo.taskId,
'tags': buildInfo.tags
]

return buildInfoMap
}
1 change: 1 addition & 0 deletions vars/getTaskInfo.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ def call(taskId) {
'version': taskInfo.version,
'release': taskInfo.release,
'nvr': taskInfo.nvr
'buildId': taskInfo.buildId
]

return taskInfoMap
Expand Down

0 comments on commit 150f070

Please sign in to comment.