Skip to content

Commit 04e755e

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 04e755e

File tree

4 files changed

+60
-8
lines changed

4 files changed

+60
-8
lines changed

.ci/antivirus.sh

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

.ci/do_release.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ echo "**********************************"
77
set -o pipefail
88

99
print_help() {
10-
set +xv
10+
set +xv
1111
echo -e "\n\n"
1212
echo "--------------------------------------------------"
1313
echo "Usage: release_folder=<release folder> release_tag=<release tag> [revision=<revision>] [do_release=<true|false>] $0"
@@ -69,16 +69,16 @@ if [ "${do_release}" = true ] ; then
6969
exit 1
7070
fi
7171

72-
if [[ -e "${DST_DIR}/${pkg_name}" || -e "${DST_DIR}/${tarball_name}" ]]; then
72+
if [[ -e "${DST_DIR}/${pkg_name}" || -e "${DST_DIR}/${tarball_name}" ]]; then
7373
echo "ERROR: [${DST_DIR}/${pkg_name}] or [${DST_DIR}/${tarball_name}] file already exist. Exit"
7474
exit 1
7575
fi
7676
files_dir=$(pwd)
7777
pushd "${release_folder}" || { echo "ERROR: Failed to pushd to ${release_folder}. Exit" ; exit 1; }
78-
sudo -E -u swx-jenkins mkdir -p "$DST_DIR"
79-
sudo -E -u swx-jenkins cp -v "${files_dir}/${pkg_folder}/${pkg_name}" "$DST_DIR"
80-
sudo -E -u swx-jenkins cp -v "${files_dir}/${pkg_folder}/${tarball_name}" "$DST_DIR"
81-
sudo -E -u swx-jenkins ln -s "${DST_DIR}/${pkg_name}" "${release_folder}/source_rpms/${pkg_name}"
78+
mkdir -p "$DST_DIR"
79+
cp -v "${files_dir}/${pkg_folder}/${pkg_name}" "$DST_DIR"
80+
cp -v "${files_dir}/${pkg_folder}/${tarball_name}" "$DST_DIR"
81+
ln -s "${DST_DIR}/${pkg_name}" "${release_folder}/source_rpms/${pkg_name}"
8282
popd || { echo "ERROR: Failed to popd from ${release_folder}. Exit" ; exit 1; }
8383

8484
echo "INFO: Release found at $DST_DIR"

.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)