Validate docker labels in the DEV workflow

This commit is contained in:
Victor Martinez 2020-09-04 10:26:13 +01:00
parent d3c992bec7
commit 7380bad950
No known key found for this signature in database
GPG key ID: 4058B656AD58C4F5
2 changed files with 91 additions and 1 deletions

View file

@ -0,0 +1,77 @@
#!/usr/bin/env bash
################################################################################
############# Clean all code base for additonal testing @admiralawkbar #########
################################################################################
###########
# Globals #
###########
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # GitHub Workspace
GITHUB_SHA="${GITHUB_SHA}" # Sha used to create this branch
BUILD_DATE="${BUILD_DATE}"
BUILD_REVISION="${GITHUB_SHA}"
BUILD_VERSION="${GITHUB_SHA}"
ERROR=0
#########################
# Source Function Files #
#########################
# shellcheck source=/dev/null
source "${GITHUB_WORKSPACE}/lib/log.sh" # Source the function script(s)
################################################################################
############################ FUNCTIONS BELOW ###################################
################################################################################
################################################################################
#### Function Header ###########################################################
Header() {
info "--------------------------------------------------"
info "----- GitHub Actions validate docker labels ------"
info "--------------------------------------------------"
}
################################################################################
#### Function ValidateLabel ####################################################
ValidateLabel() {
LABEL=$(docker inspect --format "{{ index .Config.Labels \"$1\" }}" github/super-linter:"${GITHUB_SHA}")
if [[ ${LABEL} != "$2" ]]; then
error "Assert failed [$1 - '${LABEL}' != '$2']"
ERROR=1
else
info "Assert passed [$1]"
fi
}
################################################################################
#### Function Footer ###########################################################
Footer() {
if [[ ${ERROR} -gt 0 ]]; then
fatal "There were some failed assertions. See above"
else
info "-------------------------------------------------------"
info "The step has completed"
info "-------------------------------------------------------"
fi
}
################################################################################
################################## MAIN ########################################
################################################################################
####################
# 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

View file

@ -43,12 +43,18 @@ jobs:
- name: Checkout Code
uses: actions/checkout@v2.3.2
########################
# Get the current date #
########################
- name: Get current date
run: echo "::set-env name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ')"
###################################
# Build image locally for testing #
###################################
- name: Build image
shell: bash
run: docker build --no-cache -t github/super-linter:${GITHUB_SHA} .
run: docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${GITHUB_SHA}" --build-arg "BUILD_VERSION=${GITHUB_SHA}" --no-cache -t github/super-linter:${GITHUB_SHA} .
#####################################
# Run Linter against Test code base #
@ -70,3 +76,10 @@ jobs:
- name: Run against all code base
shell: bash
run: docker run -e RUN_LOCAL=true -e OUTPUT_DETAILS=detailed -v ${GITHUB_WORKSPACE}:/tmp/lint github/super-linter:${GITHUB_SHA}
########################################
# Validates the metadata docker labels #
########################################
- name: Run Docker label test cases
shell: bash
run: .automation/validate-docker-labels.sh