mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-09 18:43:34 -05:00
5a8805dc4f
* Exit on errors when running Git * Skip pulling changes entirely * Enable pipefail when generating diffs * Cleanup * Shallow repo check * Echo GITHUB_SHA update * Check if GITHUB_SHA exists before using it * Move GITHUB_SHA validation to validation script * Rely on cat-file return code * Check if DEFAULT_BRANCH exists * Change dir when checking DEFAULT_BRANCH * Show git branches * Don't switch branches * Check GITHUB_SHA only when needed * Ensure we have permissions before interacting with the repo * Remove the DIFF_CMD variable * Move TEST_CASE_RUN and RUN_LOCAL init up * Validate if Git repo and if SHA exists * Move validation function * Change dir when getting branch names * Move debug messages up to be less verbose * Move branch validation in a function * Fix linting errors
114 lines
4.4 KiB
Bash
Executable file
114 lines
4.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
################################################################################
|
|
############# Clean all code base for additonal testing @admiralawkbar #########
|
|
################################################################################
|
|
|
|
###########
|
|
# Globals #
|
|
###########
|
|
IMAGE="${1}" # Image of the super-linter we build
|
|
BUILD_REVISION="${GITHUB_SHA}" # GitHub Sha
|
|
BUILD_VERSION="${GITHUB_SHA}" # Version of the container
|
|
ORG_REPO="super-linter/super-linter" # Org/repo
|
|
REGISTRY='ghcr.io' # Docker Registry
|
|
((LOG_TRACE = LOG_DEBUG = LOG_VERBOSE = LOG_NOTICE = LOG_WARN = LOG_ERROR = "true")) # Enable all loging
|
|
ERROR=0 # Error count
|
|
export LOG_TRACE LOG_DEBUG LOG_VERBOSE LOG_NOTICE LOG_WARN LOG_ERROR
|
|
|
|
#########################
|
|
# Source Function Files #
|
|
#########################
|
|
# shellcheck source=/dev/null
|
|
source "${GITHUB_WORKSPACE}/lib/functions/log.sh" # Source the function script(s)
|
|
|
|
################################################################################
|
|
############################ FUNCTIONS BELOW ###################################
|
|
################################################################################
|
|
################################################################################
|
|
#### Function Header ###########################################################
|
|
Header() {
|
|
info "--------------------------------------------------"
|
|
info "----- GitHub Actions validate docker labels ------"
|
|
info "--------------------------------------------------"
|
|
|
|
##################################
|
|
# Print info on local containers #
|
|
##################################
|
|
info "--------------------------------------------------"
|
|
info "Containers found locally:"
|
|
docker images
|
|
info "--------------------------------------------------"
|
|
|
|
}
|
|
################################################################################
|
|
#### Function ValidateLabel ####################################################
|
|
ValidateLabel() {
|
|
##############
|
|
# Grab input #
|
|
##############
|
|
CONTAINER_KEY="$1" # Example: org.opencontainers.image.created
|
|
CONTAINER_VALUE="$2" # Example: 1985-04-12T23:20:50.52Z
|
|
|
|
########################
|
|
# Get the docker label #
|
|
########################
|
|
LABEL=''
|
|
if [[ "${IMAGE}" == "slim" ]]; then
|
|
LABEL=$(docker inspect --format "{{ index .Config.Labels \"${CONTAINER_KEY}\" }}" "${REGISTRY}/${ORG_REPO}:slim-${GITHUB_SHA}")
|
|
else
|
|
LABEL=$(docker inspect --format "{{ index .Config.Labels \"${CONTAINER_KEY}\" }}" "${REGISTRY}/${ORG_REPO}:${GITHUB_SHA}")
|
|
fi
|
|
|
|
###################
|
|
# Check the value #
|
|
###################
|
|
if [[ ${LABEL} != "${CONTAINER_VALUE}" ]]; then
|
|
error "Assert failed [${CONTAINER_KEY} - '${LABEL}' != '${CONTAINER_VALUE}']"
|
|
ERROR=1
|
|
else
|
|
info "Assert passed [${CONTAINER_KEY}]"
|
|
fi
|
|
}
|
|
################################################################################
|
|
#### Function Footer ###########################################################
|
|
Footer() {
|
|
#####################################
|
|
# Check if any errors were reported #
|
|
#####################################
|
|
if [[ ${ERROR} -gt 0 ]]; then
|
|
fatal "There were some failed assertions. See above"
|
|
else
|
|
info "-------------------------------------------------------"
|
|
info "The step has completed"
|
|
info "-------------------------------------------------------"
|
|
fi
|
|
}
|
|
################################################################################
|
|
################################## MAIN ########################################
|
|
################################################################################
|
|
|
|
##########
|
|
# Header #
|
|
##########
|
|
Header
|
|
|
|
####################
|
|
# Validate created #
|
|
####################
|
|
ValidateLabel "org.opencontainers.image.created" "${BUILD_DATE}"
|
|
|
|
#####################
|
|
# Validate revision #
|
|
#####################
|
|
ValidateLabel "org.opencontainers.image.revision" "${BUILD_REVISION}"
|
|
|
|
####################
|
|
# Validate version #
|
|
####################
|
|
ValidateLabel "org.opencontainers.image.version" "${BUILD_VERSION}"
|
|
|
|
#################
|
|
# Report status #
|
|
#################
|
|
Footer
|