Skip to content

Commit

Permalink
Upgrade groovy lib
Browse files Browse the repository at this point in the history
Signed-off-by: Divya Madala <divyaasm@amazon.com>
  • Loading branch information
Divyaasm committed Feb 22, 2024
1 parent 120cc3a commit 72be338
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 29 deletions.
14 changes: 1 addition & 13 deletions tests/jenkins/TestValidateArtifacts.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class TestValidateArtifacts extends BuildPipelineTest {
@Before
void setUp() {

this.registerLibTester(new ValidateArtifactsLibTester('1.0.0', 'foo'))
this.registerLibTester(new ValidateArtifactsLibTester('1.0.0', 'tar', 'x64', 'linux', 'opensearch'))

super.setUp()
}
Expand All @@ -28,16 +28,4 @@ class TestValidateArtifacts extends BuildPipelineTest {
void validateArtifacts() {
super.testPipeline('tests/jenkins/jobs/ValidateArtifacts_Jenkinsfile')
}

@Test
void checkScriptcall(){
runScript('tests/jenkins/jobs/ValidateArtifacts_Jenkinsfile')
def shcommand = helper.callStack.findAll { call ->
call.methodName == 'sh'
}.collect { call ->
callArgsToString(call)
}
assertThat(shcommand.size(), equalTo(1))
assertThat(shcommand, hasItem('/tmp/workspace/validation.sh --version 1.0.0 --project foo'))
}
}
5 changes: 4 additions & 1 deletion tests/jenkins/jobs/ValidateArtifacts_Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@ pipeline {
script {
validateArtifacts(
version: '1.0.0',
project: 'foo'
distribution: 'tar',
arch: 'x64',
platform: 'linux',
projects: 'opensearch'
)
}
}
Expand Down
4 changes: 2 additions & 2 deletions tests/jenkins/jobs/ValidateArtifacts_Jenkinsfile.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
ValidateArtifacts_Jenkinsfile.echo(Executing on agent [label:none])
ValidateArtifacts_Jenkinsfile.stage(validate, groovy.lang.Closure)
ValidateArtifacts_Jenkinsfile.script(groovy.lang.Closure)
ValidateArtifacts_Jenkinsfile.validateArtifacts({version=1.0.0, project=foo})
ValidateArtifacts_Jenkinsfile.validateArtifacts({version=1.0.0, distribution=tar, arch=x64, platform=linux, projects=opensearch})
validateArtifacts.fileExists(/tmp/workspace/validation.sh)
validateArtifacts.sh(/tmp/workspace/validation.sh --version 1.0.0 --project foo)
validateArtifacts.sh(./validation.sh --version 1.0.0 --distribution tar --platform linux --arch x64 --projects opensearch)
17 changes: 12 additions & 5 deletions tests/jenkins/lib-testers/ValidateArtifactsLibTester.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,18 @@ import static org.hamcrest.MatcherAssert.assertThat
class ValidateArtifactsLibTester extends LibFunctionTester {

private String version
private String project
private String distribution
private String arch
private String platform
private String projects

public ValidateArtifactsLibTester(version, project) {
public ValidateArtifactsLibTester(version, distribution, arch, platform, projects) {
this.version = version
this.project = project
this.distribution = distribution
this.arch = arch
this.platform = platform
this.projects = projects

}

void configure(helper, binding) {
Expand All @@ -25,12 +32,12 @@ class ValidateArtifactsLibTester extends LibFunctionTester {

void parameterInvariantsAssertions(call) {
assertThat(call.args.version.first(), notNullValue())
assertThat(call.args.project.first(), notNullValue())
assertThat(call.args.projects.first(), notNullValue())
}

boolean expectedParametersMatcher(call) {
return call.args.version.first().toString().equals(this.version)
&& call.args.project.first().toString().equals(this.project)
&& call.args.projects.first().toString().equals(this.projects)
}

String libFunctionName() {
Expand Down
23 changes: 15 additions & 8 deletions vars/validateArtifacts.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,20 @@ void call(Map args = [:]) {
println("Validation.sh script not found in the workspace: ${WORKSPACE}, exit 1")
System.exit(1)
}
String arguments = generateArguments(args)
sh "${WORKSPACE}/validation.sh ${arguments}"
}

String generateArguments(args) {
String arguments = ''
// generate of command line arguments
args.each { key, value -> arguments += " --${key } ${value }" }
return arguments
sh([
'./validation.sh',
args.version ? "--version ${args.version}" : "",
args.file_path ? "--file-path ${args.file_path}" : "",
args.distribution ? "--distribution ${args.distribution}" : "",
args.platform ? "--platform ${args.platform}" : "",
args.arch ? "--arch ${args.arch}" : "",
args.projects ? "--projects ${args.projects}" : "",
args.docker_source ? "--docker-source ${args.docker_source}" : "",
args.os_build_number ? "--os-build-number ${args.os_build_number}" : "",
args.osd_build_number ? "--osd-build-number ${args.osd_build_number}" : "",
args.artifact_type ? "--artifact-type ${args.artifact_type}" : "",
args.allow_http ? '--allow-http' : "",
args.docker_args ? "--${args.docker_args}" : "",
].join(' ').trim())
}

0 comments on commit 72be338

Please sign in to comment.