@@ -43,50 +43,61 @@ void main() {
4343
4444 dir(" ${ WORKSPACE} /dependencyscanner" ) {
4545 def scanner_image;
46+ def sha1 = { String input ->
47+ java.security.MessageDigest . getInstance(" SHA-1" )
48+ .digest(input. bytes)
49+ .encodeHex()
50+ .toString()
51+ };
52+ def scanner_image_tag = " dependencyscanner:${ sha1(env.BUILD_URL)} " ;
4653 def relative_bom_path = " omd/bill-of-materials.json" ;
4754 def bom_path = " ${ checkout_dir} /${ relative_bom_path} " ;
4855
49- stage(" Prepare Dependencyscanner" ) {
50- checkout([
51- $class : ' GitSCM' ,
52- branches : [[name : ' refs/heads/master' ]],
53- browser : [
54- $class : ' GitWeb' ,
55- repoUrl : ' https://review.lan.tribe29.com/git/?p=dependencyscanner.git'
56- ],
57- userRemoteConfigs : [
58- [
59- credentialsId : ' 058f09c4-21c9-49ae-b72b-0b9d2f465da6' ,
60- url : ' ssh://jenkins@review.lan.tribe29.com:29418/dependencyscanner'
61- ]
62- ],
63- ]);
64- scanner_image = docker. build(" dependencyscanner" , " --tag dependencyscanner ." );
65- }
56+ try {
57+ stage(" Prepare Dependencyscanner" ) {
58+ checkout([
59+ $class : ' GitSCM' ,
60+ branches : [[name : ' refs/heads/master' ]],
61+ browser : [
62+ $class : ' GitWeb' ,
63+ repoUrl : ' https://review.lan.tribe29.com/git/?p=dependencyscanner.git'
64+ ],
65+ userRemoteConfigs : [
66+ [
67+ credentialsId : ' 058f09c4-21c9-49ae-b72b-0b9d2f465da6' ,
68+ url : ' ssh://jenkins@review.lan.tribe29.com:29418/dependencyscanner'
69+ ]
70+ ],
71+ ]);
72+ scanner_image = docker. build(scanner_image_tag, " --tag ${ scanner_image_tag} ." );
73+ }
6674
67- stage(' Create BOM' ) {
68- // Further: the BOM image does not yet have a DISTRO label...
69- docker. withRegistry(DOCKER_REGISTRY , ' nexus' ) {
70- scanner_image. inside(
71- " ${ mount_reference_repo_dir} " +
72- " -v ${ checkout_dir} :${ checkout_dir} " +
73- " --ulimit nofile=1024:1024" +
74- " --group-add=${ docker_group_id} " +
75- " -v /var/run/docker.sock:/var/run/docker.sock"
76- ) {
77- sh("""
78- python3 -m dependencyscanner \
79- --stage prod \
80- --outfile '${ bom_path} ' \
81- --research_file researched_master.yml \
82- --license_cache license_cache_master.json \
83- --version '${ cmk_version} ' \
84- --type jsscanner --type bazel_files --type cargo --type omd --type package-lock \
85- --type pnpm-lock --type cmk_runtime_lock --type cmk_module_bazel --type go\
86- '${ checkout_dir} '
87- """ );
75+ stage(' Create BOM' ) {
76+ // Further: the BOM image does not yet have a DISTRO label...
77+ docker. withRegistry(DOCKER_REGISTRY , ' nexus' ) {
78+ scanner_image. inside(
79+ " ${ mount_reference_repo_dir} " +
80+ " -v ${ checkout_dir} :${ checkout_dir} " +
81+ " --ulimit nofile=1024:1024" +
82+ " --group-add=${ docker_group_id} " +
83+ " -v /var/run/docker.sock:/var/run/docker.sock"
84+ ) {
85+ sh("""
86+ python3 -m dependencyscanner \
87+ --stage prod \
88+ --outfile '${ bom_path} ' \
89+ --research_file researched_master.yml \
90+ --license_cache license_cache_master.json \
91+ --version '${ cmk_version} ' \
92+ --type jsscanner --type bazel_files --type cargo --type omd --type package-lock \
93+ --type pnpm-lock --type cmk_runtime_lock --type cmk_module_bazel --type go\
94+ '${ checkout_dir} '
95+ """ );
96+ }
8897 }
8998 }
99+ } finally {
100+ sh(" docker image rm --force ${ scanner_image_tag} || true" );
90101 }
91102
92103 dir(" ${ checkout_dir} " ) {
0 commit comments