Fix: Sign artifacts on CentOS Stream 8/9
[releng/global-jjb.git] / shell / sigul-sign-dir.sh
index 2bcf589..92380cc 100644 (file)
@@ -13,4 +13,38 @@ echo "---> sigul-sign-dir.sh"
 # Ensure we fail the job if any steps fail.
 set -e -o pipefail
 
-lftools sign sigul -m "${SIGN_MODE}" "${SIGN_DIR}"
+OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+OS_RELEASE=$(facter lsbdistrelease | tr '[:upper:]' '[:lower:]')
+if [[ "$OS_RELEASE" == "8" && "$OS" == 'centos' ]]; then
+    # Get Dockerfile and the enterpoint to build the docker image.
+    wget -O "${WORKSPACE}/sigul-sign.sh" "https://raw.githubusercontent.com/"\
+    "lfit/releng-global-jjb/master/shell/sigul-sign.sh"
+    wget -O "${WORKSPACE}/Dockerfile" "https://raw.githubusercontent.com/"\
+    "lfit/releng-global-jjb/master/docker/Dockerfile"
+
+    # Setup the docker environment for jenkins user
+    docker build -f ${WORKSPACE}/Dockerfile \
+        --build-arg SIGN_DIR=${SIGN_DIR} \
+        -t sigul-sign .
+
+    docker volume create --driver local \
+        --opt type=none \
+        --opt device=/w/workspace \
+        --opt o=bind \
+        wrkspc_vol
+
+    docker volume inspect wrkspc_vol
+
+    docker run -e SIGUL_KEY="${SIGUL_KEY}" \
+        -e SIGUL_PASSWORD="${SIGUL_PASSWORD}" \
+        -e SIGUL_CONFIG=${SIGUL_CONFIG} \
+        -e SIGN_DIR=${SIGN_DIR} \
+        -e WORKSPACE=${WORKSPACE} \
+        --name sigul-sign \
+        --security-opt label:disable \
+        --mount type=bind,source="/w/workspace",target="/w/workspace" \
+        --mount type=bind,source="/home/jenkins",target="/home/jenkins" \
+        -u root:root -w $(pwd) sigul-sign
+else
+    lftools sign sigul -m "${SIGN_MODE}" "${SIGN_DIR}"
+fi