Skip to content

Commit 0239b2c

Browse files
committed
[CI] issue: 4705805 Add antivirus scan to release job
Add antivirus scan step to the release job to scan release packages. Signed-off-by: Noam Tsemah <[email protected]>
1 parent 0dc96e0 commit 0239b2c

File tree

3 files changed

+61
-2
lines changed

3 files changed

+61
-2
lines changed

.ci/antivirus.sh

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/bash -Exel
2+
3+
echo -e "\n\n**********************************"
4+
echo -e "\n\nStarting antivirus.sh script...\n\n"
5+
echo -e "**********************************\n\n"
6+
7+
[[ -z "$WORKSPACE" ]] && { echo "ERROR: WORKSPACE variable is empty"; exit 1; }
8+
[[ ! -d "$WORKSPACE" ]] && { echo "ERROR: ${WORKSPACE} does not exist"; exit 1; }
9+
[[ -z "$release_folder" ]] && { echo "ERROR: release_folder variable is empty"; exit 1; }
10+
[[ ! -d "$release_folder" ]] && { echo "ERROR: ${release_folder} does not exist"; exit 1; }
11+
[[ -z "$release_tag" ]] && { echo "ERROR: release_tag variable is empty"; exit 1; }
12+
13+
if [ -z "${revision}" ]; then
14+
echo "WARN: 'revision' was not set, defaulting to 1"
15+
revision=1
16+
fi
17+
18+
release_src_folder="${release_folder}/vma_v_${release_tag}-0/src"
19+
[[ ! -d "$release_src_folder" ]] && { echo "ERROR: ${release_src_folder} does not exist"; exit 1; }
20+
21+
pkg_name="libvma-${release_tag}-${revision}.src.rpm"
22+
tarball_name="libvma-${release_tag}.tar.gz"
23+
24+
if ! [[ -e "${release_src_folder}/${pkg_name}" ]]; then
25+
echo "ERROR: ${release_src_folder}/${pkg_name} does not exist. Exit"
26+
exit 1
27+
fi
28+
29+
if ! [[ -e "${release_src_folder}/${tarball_name}" ]]; then
30+
echo "ERROR: ${release_src_folder}/${tarball_name} does not exist. Exit"
31+
exit 1
32+
fi
33+
34+
mkdir -p "${WORKSPACE}/logs/"
35+
RPM_LOG="${WORKSPACE}/logs/${pkg_name}_antivirus.log"
36+
TARBALL_LOG="${WORKSPACE}/logs/${tarball_name}_antivirus.log"
37+
38+
/auto/GLIT/SCRIPTS/HELPERS/antivirus-scan.sh "${release_src_folder}/${pkg_name}" 2>&1 | tee "$RPM_LOG" || true
39+
/auto/GLIT/SCRIPTS/HELPERS/antivirus-scan.sh "${release_src_folder}/${tarball_name}" 2>&1 | tee "$TARBALL_LOG" || true
40+
41+
if grep -q 'Possibly Infected:............. 0' "$RPM_LOG" && grep -q 'Possibly Infected:............. 0' "$TARBALL_LOG"; then
42+
exit 0
43+
else
44+
exit 1
45+
fi

.ci/pipeline/release_jjb.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@
3434
- bool:
3535
name: "do_release"
3636
default: true
37-
description: "Release build packges into the release folder, set to false for debugging"
37+
description: "Release build packages into the release folder, set to false for debugging"
38+
- bool:
39+
name: "do_antivirus"
40+
default: true
41+
description: "Run Antivirus scan."
3842
- string:
3943
name: "notification_email"
4044
default: "{jjb_release_email}"

.ci/pipeline/release_matrix_job.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ volumes:
2424
- {mountPath: /auto/mswg/release/vma, hostPath: /auto/mswg/release/vma}
2525
# User profile for release
2626
- {mountPath: /var/home/swx-jenkins, hostPath: /labhome/swx-jenkins}
27+
# for Antivirus
28+
- {mountPath: /auto/GLIT/SCRIPTS/HELPERS, hostPath: /auto/GLIT/SCRIPTS/HELPERS}
2729

2830
empty_volumes:
2931
- {mountPath: /tmp/source_rpms, memory: true}
@@ -35,7 +37,9 @@ runs_on_dockers:
3537
uri: '$arch/$name/release',
3638
build_args: '--no-cache',
3739
arch: 'x86_64',
38-
tag: '20250128'
40+
tag: '20250128',
41+
runAsUser: '6213',
42+
runAsGroup: '101'
3943
}
4044

4145
steps:
@@ -45,6 +49,12 @@ steps:
4549
.ci/do_release.sh
4650
archiveArtifacts: pkg/build_pkg.log,pkg/packages/*.rpm
4751

52+
- name: Antivirus
53+
enable: ${do_antivirus}
54+
run: |
55+
env WORKSPACE=$PWD .ci/antivirus.sh
56+
archiveArtifacts: 'logs/'
57+
4858
pipeline_start:
4959
shell: action
5060
module: groovy

0 commit comments

Comments
 (0)