1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00
Files
openshift-docs/scripts/prow-smoke-test.sh

105 lines
4.2 KiB
Bash
Executable File

#!/bin/bash
#================================================================
# HEADER
#================================================================
#%
#%OVERVIEW 📑
#+ ./scripts/prow-smoke-test.sh [--validate --preview]
#%
#%DESCRIPTION 💡
#% Validates openshift-docs AsciiDoc source files using the same tools that run in the Prow CI
#%
#%OPTIONS ⚙️
#% -v, --validate $DISTRO Validate the AsciiDoc source. Use --validate to run with default options
#% -a, --validate-incl-api-book Validate the AsciiDoc source and include the REST API books
#% -l, --lint-topicmaps Lint topic-map YAML
#% -p, --preview $DISTRO "$PRODUCT_NAME" $VERSION Use --preview to run with default options
#% -h, --help Print this help
#%
#%EXAMPLES 🤔
#% ./scripts/prow-smoke-test.sh --validate
#% ./scripts/prow-smoke-test.sh --validate openshift-rosa
#% ./scripts/prow-smoke-test.sh --validate-incl-api-book
#% ./scripts/prow-smoke-test.sh --lint-topicmaps
#% ./scripts/prow-smoke-test.sh --preview
#% ./scripts/prow-smoke-test.sh --preview openshift-rosa
#% ./scripts/prow-smoke-test.sh --preview openshift-pipelines "Red Hat OpenShift Pipelines" 1.14
#================================================================
# END_OF_HEADER
#================================================================
set -e
TEST=$1
DISTRO=$2
PRODUCT_NAME=$3
VERSION=$4
CONTAINER_IMAGE=quay.io/redhat-docs/openshift-docs-asciidoc
SCRIPT_HEADSIZE=$(head -30 ${0} |grep -n "^# END_OF_HEADER" | cut -f1 -d:)
if [[ "$1" == "--help" || "$1" == "-h" ]]; then
usage
fi
# Assign default variables
: ${PRODUCT_NAME:="OpenShift Container Platform"}
: ${VERSION:="4.16"}
: ${DISTRO:="openshift-enterprise"}
# Allow podman or docker
if hash podman 2>/dev/null; then
CONTAINER_ENGINE=podman
elif hash docker 2>/dev/null; then
CONTAINER_ENGINE=docker
else
echo >&2 "Container engine not installed. Install Podman or Docker and run the script again."
exit 1
fi
echo "CONTAINER_ENGINE=$CONTAINER_ENGINE 🐳"
# Get the default container $WORKDIR
CONTAINER_WORKDIR=$($CONTAINER_ENGINE run --rm $CONTAINER_IMAGE /bin/bash -c 'echo $PWD')
# Grep the commented script preamble and return it as help
display_help() { head -${SCRIPT_HEADSIZE:-99} ${0} | grep -e "^#[%+-]" | sed -e "s/^#[%+-]//g" ; }
# Exit and show the help if no parameters are passed
if [ $# -eq 0 ]; then
display_help
fi
if [[ "$TEST" == "--preview" || "$TEST" == "-p" ]] && [[ -z "$DISTRO" ]]; then
# Clean output folder
rm -rf ./_preview
echo ""
echo "🚧 Building with openshift-enterprise distro..."
$CONTAINER_ENGINE run --rm -it -v "$(pwd)":${CONTAINER_WORKDIR}:Z $CONTAINER_IMAGE asciibinder build -d "$DISTRO"
elif [[ "$TEST" == "--preview" || "$TEST" == "-p" ]] && [[ -n "$DISTRO" ]]; then
# Clean output folder
rm -rf ./_preview
echo ""
echo "🚧 Building $DISTRO distro..."
$CONTAINER_ENGINE run --rm -it -v "$(pwd)":${CONTAINER_WORKDIR}:Z $CONTAINER_IMAGE asciibinder build -d "$DISTRO"
elif [[ "$TEST" == "--validate" || "$TEST" == "-v" ]]; then
# Clean output folder
rm -rf ./drupal-build
echo ""
echo "🚧 Validating the docs..."
$CONTAINER_ENGINE run --rm -it -v "$(pwd)":${CONTAINER_WORKDIR}:Z $CONTAINER_IMAGE sh -c 'scripts/check-asciidoctor-build.sh && python3 build_for_portal.py --distro '${DISTRO}' --product "'"${PRODUCT_NAME}"'" --version '${VERSION}' --no-upstream-fetch && python3 makeBuild.py'
elif [[ "$TEST" == "--validate-incl-api-book" || "$TEST" == "-a" ]]; then
# Clean output folder
rm -rf ./drupal-build
echo ""
echo "🚧 Validating the docs..."
$CONTAINER_ENGINE run --rm -it -v "$(pwd)":${CONTAINER_WORKDIR}${SELINUX_LABEL} $CONTAINER_IMAGE sh -c 'scripts/check-asciidoctor-build.sh && python3 build_for_portal.py --distro '${DISTRO}' --product "'"${PRODUCT_NAME}"'" --version '${VERSION}' --no-upstream-fetch && python3 makeBuild.py --include-api-book'
elif [[ "$TEST" == "--lint-topicmaps" || "$TEST" == "-l" ]]; then
echo ""
echo "🚧 Linting the topicmap YAML..."
$CONTAINER_ENGINE run --rm -it -v "$(pwd)":${CONTAINER_WORKDIR}:Z $CONTAINER_IMAGE sh -c 'yamllint _topic_maps'
fi