mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-22 06:01:05 -05:00
Merge remote-tracking branch 'upstream/master' into arm-ttk
This commit is contained in:
commit
4cbda27751
14 changed files with 655 additions and 586 deletions
|
@ -16,20 +16,19 @@
|
||||||
###########
|
###########
|
||||||
# Globals #
|
# Globals #
|
||||||
###########
|
###########
|
||||||
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # GitHub Workspace
|
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # GitHub Workspace
|
||||||
DOCKER_USERNAME="${DOCKER_USERNAME}" # Username to login to DockerHub
|
DOCKER_USERNAME="${DOCKER_USERNAME}" # Username to login to DockerHub
|
||||||
DOCKER_PASSWORD="${DOCKER_PASSWORD}" # Password to login to DockerHub
|
DOCKER_PASSWORD="${DOCKER_PASSWORD}" # Password to login to DockerHub
|
||||||
IMAGE_REPO="${IMAGE_REPO}" # Image repo to upload the image
|
IMAGE_REPO="${IMAGE_REPO}" # Image repo to upload the image
|
||||||
IMAGE_VERSION="${IMAGE_VERSION}" # Version to tag the image
|
IMAGE_VERSION="${IMAGE_VERSION}" # Version to tag the image
|
||||||
DOCKERFILE_PATH="${DOCKERFILE_PATH}" # Path to the Dockerfile to be uploaded
|
DOCKERFILE_PATH="${DOCKERFILE_PATH}" # Path to the Dockerfile to be uploaded
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
############################ FUNCTIONS BELOW ###################################
|
############################ FUNCTIONS BELOW ###################################
|
||||||
################################################################################
|
################################################################################
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function Header ###########################################################
|
#### Function Header ###########################################################
|
||||||
Header()
|
Header() {
|
||||||
{
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "-------------------------------------------------------"
|
echo "-------------------------------------------------------"
|
||||||
echo "----- GitHub Actions remove image from DockerHub ------"
|
echo "----- GitHub Actions remove image from DockerHub ------"
|
||||||
|
@ -38,8 +37,7 @@ Header()
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function ValidateInput ####################################################
|
#### Function ValidateInput ####################################################
|
||||||
ValidateInput()
|
ValidateInput() {
|
||||||
{
|
|
||||||
# Need to validate we have the basic variables
|
# Need to validate we have the basic variables
|
||||||
################
|
################
|
||||||
# Print header #
|
# Print header #
|
||||||
|
@ -54,8 +52,8 @@ ValidateInput()
|
||||||
# Validate GITHUB_WORKSPACE #
|
# Validate GITHUB_WORKSPACE #
|
||||||
############################
|
############################
|
||||||
if [ -z "$GITHUB_WORKSPACE" ]; then
|
if [ -z "$GITHUB_WORKSPACE" ]; then
|
||||||
echo "ERROR! Failed to get [GITHUB_WORKSPACE]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_WORKSPACE]!${NC}"
|
||||||
echo "ERROR:[$GITHUB_WORKSPACE]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_WORKSPACE]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[GITHUB_WORKSPACE], value:[$GITHUB_WORKSPACE]"
|
echo "Successfully found:[GITHUB_WORKSPACE], value:[$GITHUB_WORKSPACE]"
|
||||||
|
@ -66,15 +64,15 @@ ValidateInput()
|
||||||
#######################
|
#######################
|
||||||
if [ -z "$IMAGE_REPO" ]; then
|
if [ -z "$IMAGE_REPO" ]; then
|
||||||
# No repo was pulled
|
# No repo was pulled
|
||||||
echo "ERROR! Failed to get [IMAGE_REPO]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [IMAGE_REPO]!${NC}"
|
||||||
echo "ERROR:[$IMAGE_REPO]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$IMAGE_REPO]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
elif [[ "$IMAGE_REPO" == "github/super-linter" ]]; then
|
elif [[ $IMAGE_REPO == "github/super-linter" ]]; then
|
||||||
# Found our main repo
|
# Found our main repo
|
||||||
echo "Successfully found:[IMAGE_REPO], value:[$IMAGE_REPO]"
|
echo "Successfully found:[IMAGE_REPO], value:[$IMAGE_REPO]"
|
||||||
else
|
else
|
||||||
# This is a fork and we cant pull vars or any info
|
# This is a fork and we cant pull vars or any info
|
||||||
echo "WARN! No image to cleanup as this is a forked branch, and not being built with current automation!"
|
echo -e "${NC}${F[Y]}WARN!${NC} No image to cleanup as this is a forked branch, and not being built with current automation!${NC}"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -82,8 +80,8 @@ ValidateInput()
|
||||||
# Validate IMAGE_VERSION #
|
# Validate IMAGE_VERSION #
|
||||||
##########################
|
##########################
|
||||||
if [ -z "$IMAGE_VERSION" ]; then
|
if [ -z "$IMAGE_VERSION" ]; then
|
||||||
echo "ERROR! Failed to get [IMAGE_VERSION]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [IMAGE_VERSION]!${NC}"
|
||||||
echo "ERROR:[$IMAGE_VERSION]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$IMAGE_VERSION]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[IMAGE_VERSION], value:[$IMAGE_VERSION]"
|
echo "Successfully found:[IMAGE_VERSION], value:[$IMAGE_VERSION]"
|
||||||
|
@ -93,8 +91,8 @@ ValidateInput()
|
||||||
# Validate DOCKER_USERNAME #
|
# Validate DOCKER_USERNAME #
|
||||||
############################
|
############################
|
||||||
if [ -z "$DOCKER_USERNAME" ]; then
|
if [ -z "$DOCKER_USERNAME" ]; then
|
||||||
echo "ERROR! Failed to get [DOCKER_USERNAME]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_USERNAME]!${NC}"
|
||||||
echo "ERROR:[$DOCKER_USERNAME]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_USERNAME]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[DOCKER_USERNAME], value:[$DOCKER_USERNAME]"
|
echo "Successfully found:[DOCKER_USERNAME], value:[$DOCKER_USERNAME]"
|
||||||
|
@ -104,8 +102,8 @@ ValidateInput()
|
||||||
# Validate DOCKER_PASSWORD #
|
# Validate DOCKER_PASSWORD #
|
||||||
############################
|
############################
|
||||||
if [ -z "$DOCKER_PASSWORD" ]; then
|
if [ -z "$DOCKER_PASSWORD" ]; then
|
||||||
echo "ERROR! Failed to get [DOCKER_PASSWORD]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_PASSWORD]!${NC}"
|
||||||
echo "ERROR:[$DOCKER_PASSWORD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_PASSWORD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[DOCKER_PASSWORD], value:[********]"
|
echo "Successfully found:[DOCKER_PASSWORD], value:[********]"
|
||||||
|
@ -114,7 +112,7 @@ ValidateInput()
|
||||||
##################################################
|
##################################################
|
||||||
# Check if we need to get the name of the branch #
|
# Check if we need to get the name of the branch #
|
||||||
##################################################
|
##################################################
|
||||||
if [[ "$IMAGE_VERSION" != "latest" ]]; then
|
if [[ $IMAGE_VERSION != "latest" ]]; then
|
||||||
##################################
|
##################################
|
||||||
# Remove non alpha-numeric chars #
|
# Remove non alpha-numeric chars #
|
||||||
##################################
|
##################################
|
||||||
|
@ -131,8 +129,7 @@ ValidateInput()
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function LoginToDocker ####################################################
|
#### Function LoginToDocker ####################################################
|
||||||
LoginToDocker()
|
LoginToDocker() {
|
||||||
{
|
|
||||||
################
|
################
|
||||||
# Print header #
|
# Print header #
|
||||||
################
|
################
|
||||||
|
@ -157,8 +154,8 @@ LoginToDocker()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! Failed to authenticate to DockerHub!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to authenticate to DockerHub!${NC}"
|
||||||
echo "ERROR:[$LOGIN_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LOGIN_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# SUCCESS
|
# SUCCESS
|
||||||
|
@ -167,8 +164,7 @@ LoginToDocker()
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function RemoveImage ######################################################
|
#### Function RemoveImage ######################################################
|
||||||
RemoveImage()
|
RemoveImage() {
|
||||||
{
|
|
||||||
################
|
################
|
||||||
# Print header #
|
# Print header #
|
||||||
################
|
################
|
||||||
|
@ -187,23 +183,23 @@ RemoveImage()
|
||||||
-d "{\"username\": \"$DOCKER_USERNAME\", \"password\": \"$DOCKER_PASSWORD\"}" \
|
-d "{\"username\": \"$DOCKER_USERNAME\", \"password\": \"$DOCKER_PASSWORD\"}" \
|
||||||
"https://hub.docker.com/v2/users/login/" | jq -r .token 2>&1)
|
"https://hub.docker.com/v2/users/login/" | jq -r .token 2>&1)
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# Load the ERROR_CODE #
|
# Load the ERROR_CODE #
|
||||||
#######################
|
#######################
|
||||||
ERROR_CODE=$?
|
ERROR_CODE=$?
|
||||||
|
|
||||||
##############################
|
##############################
|
||||||
# Check the shell for errors #
|
# Check the shell for errors #
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! Failed to gain token from DockerHub!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to gain token from DockerHub!${NC}"
|
||||||
echo "ERROR:[$TOKEN]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$TOKEN]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# SUCCESS
|
# SUCCESS
|
||||||
echo "Successfully gained auth token from DockerHub!"
|
echo "Successfully gained auth token from DockerHub!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# Remove the tag from DockerHub #
|
# Remove the tag from DockerHub #
|
||||||
|
@ -222,8 +218,8 @@ RemoveImage()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! Failed to remove tag from DockerHub!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to remove tag from DockerHub!${NC}"
|
||||||
echo "ERROR:[$REMOVE_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$REMOVE_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# SUCCESS
|
# SUCCESS
|
||||||
|
@ -232,8 +228,7 @@ RemoveImage()
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function Footer ###########################################################
|
#### Function Footer ###########################################################
|
||||||
Footer()
|
Footer() {
|
||||||
{
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "-------------------------------------------------------"
|
echo "-------------------------------------------------------"
|
||||||
echo "The step has completed"
|
echo "The step has completed"
|
||||||
|
|
|
@ -53,8 +53,8 @@ CheckGHEPid()
|
||||||
# Check the shell for errors #
|
# Check the shell for errors #
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
echo "ERROR! Failed to sleep!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to sleep!${NC}"
|
||||||
echo "ERROR:[$SLEEP_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SLEEP_CMD]${NC}"
|
||||||
echo "Will try to call apply as last effort..."
|
echo "Will try to call apply as last effort..."
|
||||||
####################################
|
####################################
|
||||||
# Call config apply as last effort #
|
# Call config apply as last effort #
|
||||||
|
@ -117,8 +117,8 @@ CheckGHEProcess()
|
||||||
# Check the shell for errors #
|
# Check the shell for errors #
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
echo "ERROR! Failed to sleep!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to sleep!${NC}"
|
||||||
echo "ERROR:[$SLEEP_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SLEEP_CMD]${NC}"
|
||||||
echo "Will try to call apply as last effort..."
|
echo "Will try to call apply as last effort..."
|
||||||
####################################
|
####################################
|
||||||
# Call config apply as last effort #
|
# Call config apply as last effort #
|
||||||
|
@ -161,12 +161,12 @@ RunConfigApply()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# Errors
|
# Errors
|
||||||
echo "ERROR! Failed to run config apply command!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to run config apply command!${NC}"
|
||||||
echo "ERROR:[$APPLY_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$APPLY_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# Success
|
# Success
|
||||||
echo "Successfully ran $GHE_APPLY_COMMAND"
|
echo -e "${NC}${F[B]}Successfully ran ${F[C]}$GHE_APPLY_COMMAND${NC}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
|
@ -17,25 +17,24 @@
|
||||||
###########
|
###########
|
||||||
# Globals #
|
# Globals #
|
||||||
###########
|
###########
|
||||||
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # GitHub Workspace
|
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # GitHub Workspace
|
||||||
DOCKER_USERNAME="${DOCKER_USERNAME}" # Username to login to DockerHub
|
DOCKER_USERNAME="${DOCKER_USERNAME}" # Username to login to DockerHub
|
||||||
DOCKER_PASSWORD="${DOCKER_PASSWORD}" # Password to login to DockerHub
|
DOCKER_PASSWORD="${DOCKER_PASSWORD}" # Password to login to DockerHub
|
||||||
GPR_USERNAME="${GPR_USERNAME}" # Username to login to GitHub package registry
|
GPR_USERNAME="${GPR_USERNAME}" # Username to login to GitHub package registry
|
||||||
GPR_TOKEN="${GPR_TOKEN}" # Password to login to GitHub package registry
|
GPR_TOKEN="${GPR_TOKEN}" # Password to login to GitHub package registry
|
||||||
REGISTRY="${REGISTRY}" # What registry to upload | <GPR> or <Docker>
|
REGISTRY="${REGISTRY}" # What registry to upload | <GPR> or <Docker>
|
||||||
IMAGE_REPO="${IMAGE_REPO}" # Image repo to upload the image
|
IMAGE_REPO="${IMAGE_REPO}" # Image repo to upload the image
|
||||||
IMAGE_VERSION="${IMAGE_VERSION}" # Version to tag the image
|
IMAGE_VERSION="${IMAGE_VERSION}" # Version to tag the image
|
||||||
DOCKERFILE_PATH="${DOCKERFILE_PATH}" # Path to the Dockerfile to be uploaded
|
DOCKERFILE_PATH="${DOCKERFILE_PATH}" # Path to the Dockerfile to be uploaded
|
||||||
MAJOR_TAG='' # Major tag version if we need to update it
|
MAJOR_TAG='' # Major tag version if we need to update it
|
||||||
UPDATE_MAJOR_TAG=0 # Flag to deploy the major tag version as well
|
UPDATE_MAJOR_TAG=0 # Flag to deploy the major tag version as well
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
############################ FUNCTIONS BELOW ###################################
|
############################ FUNCTIONS BELOW ###################################
|
||||||
################################################################################
|
################################################################################
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function Header ###########################################################
|
#### Function Header ###########################################################
|
||||||
Header()
|
Header() {
|
||||||
{
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "-------------------------------------------------------"
|
echo "-------------------------------------------------------"
|
||||||
echo "---- GitHub Actions Upload image to [$REGISTRY] ----"
|
echo "---- GitHub Actions Upload image to [$REGISTRY] ----"
|
||||||
|
@ -44,8 +43,7 @@ Header()
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function ValidateInput ####################################################
|
#### Function ValidateInput ####################################################
|
||||||
ValidateInput()
|
ValidateInput() {
|
||||||
{
|
|
||||||
# Need to validate we have the basic variables
|
# Need to validate we have the basic variables
|
||||||
################
|
################
|
||||||
# Print header #
|
# Print header #
|
||||||
|
@ -60,97 +58,96 @@ ValidateInput()
|
||||||
# Validate GITHUB_WORKSPACE #
|
# Validate GITHUB_WORKSPACE #
|
||||||
#############################
|
#############################
|
||||||
if [ -z "$GITHUB_WORKSPACE" ]; then
|
if [ -z "$GITHUB_WORKSPACE" ]; then
|
||||||
echo "ERROR! Failed to get [GITHUB_WORKSPACE]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_WORKSPACE]!${NC}"
|
||||||
echo "ERROR:[$GITHUB_WORKSPACE]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_WORKSPACE]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[GITHUB_WORKSPACE], value:[$GITHUB_WORKSPACE]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GITHUB_WORKSPACE]${F[B]}, value:${F[W]}[$GITHUB_WORKSPACE]${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
# Validate REGISTRY #
|
# Validate REGISTRY #
|
||||||
#####################
|
#####################
|
||||||
if [ -z "$REGISTRY" ]; then
|
if [ -z "$REGISTRY" ]; then
|
||||||
echo "ERROR! Failed to get [REGISTRY]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [REGISTRY]!${NC}"
|
||||||
echo "ERROR:[$REGISTRY]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$REGISTRY]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[REGISTRY], value:[$REGISTRY]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[REGISTRY]${F[B]}, value:${F[W]}[$REGISTRY]${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#####################################################
|
#####################################################
|
||||||
# See if we need values for GitHub package Registry #
|
# See if we need values for GitHub package Registry #
|
||||||
#####################################################
|
#####################################################
|
||||||
if [[ "$REGISTRY" == "GPR" ]]; then
|
if [[ $REGISTRY == "GPR" ]]; then
|
||||||
#########################
|
#########################
|
||||||
# Validate GPR_USERNAME #
|
# Validate GPR_USERNAME #
|
||||||
#########################
|
#########################
|
||||||
if [ -z "$GPR_USERNAME" ]; then
|
if [ -z "$GPR_USERNAME" ]; then
|
||||||
echo "ERROR! Failed to get [GPR_USERNAME]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GPR_USERNAME]!${NC}"
|
||||||
echo "ERROR:[$GPR_USERNAME]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GPR_USERNAME]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[GPR_USERNAME], value:[$GPR_USERNAME]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GPR_USERNAME]${F[B]}, value:${F[W]}[$GPR_USERNAME]${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
######################
|
######################
|
||||||
# Validate GPR_TOKEN #
|
# Validate GPR_TOKEN #
|
||||||
######################
|
######################
|
||||||
if [ -z "$GPR_TOKEN" ]; then
|
if [ -z "$GPR_TOKEN" ]; then
|
||||||
echo "ERROR! Failed to get [GPR_TOKEN]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GPR_TOKEN]!${NC}"
|
||||||
echo "ERROR:[$GPR_TOKEN]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GPR_TOKEN]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[GPR_TOKEN], value:[********]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GPR_TOKEN]${F[B]}, value:${F[W]}[********]${NC}"
|
||||||
fi
|
fi
|
||||||
########################################
|
########################################
|
||||||
# See if we need values for Ducker hub #
|
# See if we need values for Ducker hub #
|
||||||
########################################
|
########################################
|
||||||
elif [[ "$REGISTRY" == "Docker" ]]; then
|
elif [[ $REGISTRY == "Docker" ]]; then
|
||||||
############################
|
############################
|
||||||
# Validate DOCKER_USERNAME #
|
# Validate DOCKER_USERNAME #
|
||||||
############################
|
############################
|
||||||
if [ -z "$DOCKER_USERNAME" ]; then
|
if [ -z "$DOCKER_USERNAME" ]; then
|
||||||
echo "ERROR! Failed to get [DOCKER_USERNAME]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_USERNAME]!${NC}"
|
||||||
echo "ERROR:[$DOCKER_USERNAME]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_USERNAME]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[DOCKER_USERNAME], value:[$DOCKER_USERNAME]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[DOCKER_USERNAME]${F[B]}, value:${F[W]}[$DOCKER_USERNAME]${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Validate DOCKER_PASSWORD #
|
# Validate DOCKER_PASSWORD #
|
||||||
############################
|
############################
|
||||||
if [ -z "$DOCKER_PASSWORD" ]; then
|
if [ -z "$DOCKER_PASSWORD" ]; then
|
||||||
echo "ERROR! Failed to get [DOCKER_PASSWORD]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_PASSWORD]!${NC}"
|
||||||
echo "ERROR:[$DOCKER_PASSWORD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_PASSWORD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[DOCKER_PASSWORD], value:[********]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[DOCKER_PASSWORD]${F[B]}, value:${F[B]}[********]${NC}"
|
||||||
fi
|
fi
|
||||||
###########################################
|
###########################################
|
||||||
# We were not passed a registry to update #
|
# We were not passed a registry to update #
|
||||||
###########################################
|
###########################################
|
||||||
else
|
else
|
||||||
echo "ERROR! Failed to find a valid registry!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find a valid registry!${NC}"
|
||||||
echo "Registry:[$REGISTRY]"
|
echo "Registry:[$REGISTRY]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# Validate IMAGE_REPO #
|
# Validate IMAGE_REPO #
|
||||||
#######################
|
#######################
|
||||||
if [ -z "$IMAGE_REPO" ]; then
|
if [ -z "$IMAGE_REPO" ]; then
|
||||||
echo "ERROR! Failed to get [IMAGE_REPO]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [IMAGE_REPO]!${NC}"
|
||||||
echo "ERROR:[$IMAGE_REPO]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$IMAGE_REPO]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[IMAGE_REPO], value:[$IMAGE_REPO]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[IMAGE_REPO]${F[B]}, value:${F[W]}[$IMAGE_REPO]${NC}"
|
||||||
###############################################
|
###############################################
|
||||||
# Need to see if GPR registry and update name #
|
# Need to see if GPR registry and update name #
|
||||||
###############################################
|
###############################################
|
||||||
if [[ "$REGISTRY" == "GPR" ]]; then
|
if [[ $REGISTRY == "GPR" ]]; then
|
||||||
NAME="docker.pkg.github.com/$IMAGE_REPO/super-linter"
|
NAME="docker.pkg.github.com/$IMAGE_REPO/super-linter"
|
||||||
IMAGE_REPO="$NAME"
|
IMAGE_REPO="$NAME"
|
||||||
echo "Updated [IMAGE_REPO] to:[$IMAGE_REPO] for GPR"
|
echo "Updated [IMAGE_REPO] to:[$IMAGE_REPO] for GPR"
|
||||||
|
@ -161,12 +158,12 @@ ValidateInput()
|
||||||
# Validate IMAGE_VERSION #
|
# Validate IMAGE_VERSION #
|
||||||
##########################
|
##########################
|
||||||
if [ -z "$IMAGE_VERSION" ]; then
|
if [ -z "$IMAGE_VERSION" ]; then
|
||||||
echo "WARN! Failed to get [IMAGE_VERSION]!"
|
echo -e "${NC}${F[Y]}WARN!${NC} Failed to get [IMAGE_VERSION]!${NC}"
|
||||||
echo "Pulling from Branch Name..."
|
echo "Pulling from Branch Name..."
|
||||||
##############################
|
##############################
|
||||||
# Get the name of the branch #
|
# Get the name of the branch #
|
||||||
##############################
|
##############################
|
||||||
BRANCH_NAME=$(git -C "$GITHUB_WORKSPACE" branch --contains "$GITHUB_SHA" |awk '{print $2}' 2>&1)
|
BRANCH_NAME=$(git -C "$GITHUB_WORKSPACE" branch --contains "$GITHUB_SHA" | awk '{print $2}' 2>&1)
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# Load the error code #
|
# Load the error code #
|
||||||
|
@ -177,8 +174,8 @@ ValidateInput()
|
||||||
# Check the shell for errors #
|
# Check the shell for errors #
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
echo "ERROR! Failed to get branch name!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get branch name!${NC}"
|
||||||
echo "ERROR:[$BRANCH_NAME]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$BRANCH_NAME]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -193,7 +190,7 @@ ValidateInput()
|
||||||
IMAGE_VERSION="$BRANCH_NAME"
|
IMAGE_VERSION="$BRANCH_NAME"
|
||||||
echo "Tag:[$IMAGE_VERSION]"
|
echo "Tag:[$IMAGE_VERSION]"
|
||||||
else
|
else
|
||||||
echo "Successfully found:[IMAGE_VERSION], value:[$IMAGE_VERSION]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[IMAGE_VERSION]${F[B]}, value:${F[W]}[$IMAGE_VERSION]${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##################################
|
##################################
|
||||||
|
@ -204,7 +201,7 @@ ValidateInput()
|
||||||
######################################################################
|
######################################################################
|
||||||
# Check if this is a latest to a versioned release at create new tag #
|
# Check if this is a latest to a versioned release at create new tag #
|
||||||
######################################################################
|
######################################################################
|
||||||
if [[ "$IMAGE_VERSION" =~ $REGEX ]]; then
|
if [[ $IMAGE_VERSION =~ $REGEX ]]; then
|
||||||
# Need to get the major version, and set flag to update
|
# Need to get the major version, and set flag to update
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
|
@ -224,24 +221,23 @@ ValidateInput()
|
||||||
# Validate DOCKERFILE_PATH #
|
# Validate DOCKERFILE_PATH #
|
||||||
############################
|
############################
|
||||||
if [ -z "$DOCKERFILE_PATH" ]; then
|
if [ -z "$DOCKERFILE_PATH" ]; then
|
||||||
echo "ERROR! Failed to get [DOCKERFILE_PATH]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKERFILE_PATH]!${NC}"
|
||||||
echo "ERROR:[$DOCKERFILE_PATH]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKERFILE_PATH]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[DOCKERFILE_PATH], value:[$DOCKERFILE_PATH]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[DOCKERFILE_PATH]${F[B]}, value:${F[W]}[$DOCKERFILE_PATH]${NC}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function Authenticate #####################################################
|
#### Function Authenticate #####################################################
|
||||||
Authenticate()
|
Authenticate() {
|
||||||
{
|
|
||||||
################
|
################
|
||||||
# Pull in Vars #
|
# Pull in Vars #
|
||||||
################
|
################
|
||||||
USERNAME="$1" # Name to auth with
|
USERNAME="$1" # Name to auth with
|
||||||
PASSWORD="$2" # Password to auth with
|
PASSWORD="$2" # Password to auth with
|
||||||
URL="$3" # Url to auth towards
|
URL="$3" # Url to auth towards
|
||||||
NAME="$4" # name of the service
|
NAME="$4" # name of the service
|
||||||
|
|
||||||
################
|
################
|
||||||
# Print header #
|
# Print header #
|
||||||
|
@ -267,18 +263,17 @@ Authenticate()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! Failed to authenticate to $NAME!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to authenticate to $NAME!${NC}"
|
||||||
echo "ERROR:[$LOGIN_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LOGIN_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# SUCCESS
|
# SUCCESS
|
||||||
echo "Successfully authenticated to $NAME!"
|
echo -e "${NC}${F[B]}Successfully authenticated to ${F[C]}$NAME${F[B]}!${NC}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function BuildImage #######################################################
|
#### Function BuildImage #######################################################
|
||||||
BuildImage()
|
BuildImage() {
|
||||||
{
|
|
||||||
################
|
################
|
||||||
# Print header #
|
# Print header #
|
||||||
################
|
################
|
||||||
|
@ -293,7 +288,7 @@ BuildImage()
|
||||||
################################
|
################################
|
||||||
if [ ! -f "$DOCKERFILE_PATH" ]; then
|
if [ ! -f "$DOCKERFILE_PATH" ]; then
|
||||||
# No file found
|
# No file found
|
||||||
echo "ERROR! failed to find Dockerfile at:[$DOCKERFILE_PATH]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to find Dockerfile at:[$DOCKERFILE_PATH]${NC}"
|
||||||
echo "Please make sure you give full path!"
|
echo "Please make sure you give full path!"
|
||||||
echo "Example:[/configs/Dockerfile] or [Dockerfile] if at root directory"
|
echo "Example:[/configs/Dockerfile] or [Dockerfile] if at root directory"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -314,11 +309,11 @@ BuildImage()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! failed to [build] Dockerfile!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [build] Dockerfile!${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# SUCCESS
|
# SUCCESS
|
||||||
echo "Successfully Built image!"
|
echo -e "${NC}${F[B]}Successfully Built image!${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
########################################################
|
########################################################
|
||||||
|
@ -338,18 +333,17 @@ BuildImage()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! failed to [tag] Dockerfile!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [tag] Dockerfile!${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# SUCCESS
|
# SUCCESS
|
||||||
echo "Successfully tagged image!"
|
echo -e "${NC}${F[B]}Successfully tagged image!${NC}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function UploadImage ######################################################
|
#### Function UploadImage ######################################################
|
||||||
UploadImage()
|
UploadImage() {
|
||||||
{
|
|
||||||
################
|
################
|
||||||
# Print header #
|
# Print header #
|
||||||
################
|
################
|
||||||
|
@ -374,11 +368,11 @@ UploadImage()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! failed to [upload] Dockerfile!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [upload] Dockerfile!${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# SUCCESS
|
# SUCCESS
|
||||||
echo "Successfully Uploaded Docker image:[$IMAGE_VERSION] to $REGISTRY!"
|
echo -e "${NC}${F[B]}Successfully Uploaded Docker image:${F[W]}[$IMAGE_VERSION]${F[B]} to ${F[C]}$REGISTRY${F[B]}!${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
|
@ -397,8 +391,8 @@ UploadImage()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! Failed to get information about built Image!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get information about built Image!${NC}"
|
||||||
echo "ERROR:[$GET_INFO_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GET_INFO_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
################
|
################
|
||||||
|
@ -440,18 +434,17 @@ UploadImage()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! failed to [upload] MAJOR_TAG:[$MAJOR_TAG] Dockerfile!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [upload] MAJOR_TAG:[$MAJOR_TAG] Dockerfile!${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# SUCCESS
|
# SUCCESS
|
||||||
echo "Successfully Uploaded TAGOR_TAG:[$MAJOR_TAG] Docker image to $REGISTRY!"
|
echo -e "${NC}${F[B]}Successfully Uploaded TAGOR_TAG:${F[W]}[$MAJOR_TAG]${F[B]} Docker image to ${F[C]}$REGISTRY${F[B]}!${NC}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function Footer ###########################################################
|
#### Function Footer ###########################################################
|
||||||
Footer()
|
Footer() {
|
||||||
{
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "-------------------------------------------------------"
|
echo "-------------------------------------------------------"
|
||||||
echo "The step has completed"
|
echo "The step has completed"
|
||||||
|
@ -480,14 +473,14 @@ BuildImage
|
||||||
######################
|
######################
|
||||||
# Login to DockerHub #
|
# Login to DockerHub #
|
||||||
######################
|
######################
|
||||||
if [[ "$REGISTRY" == "Docker" ]]; then
|
if [[ $REGISTRY == "Docker" ]]; then
|
||||||
# Authenticate "Username" "Password" "Url" "Name"
|
# Authenticate "Username" "Password" "Url" "Name"
|
||||||
Authenticate "$DOCKER_USERNAME" "$DOCKER_PASSWORD" "" "Dockerhub"
|
Authenticate "$DOCKER_USERNAME" "$DOCKER_PASSWORD" "" "Dockerhub"
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# Login to GitHub Package Registry #
|
# Login to GitHub Package Registry #
|
||||||
####################################
|
####################################
|
||||||
elif [[ "$REGISTRY" == "GPR" ]]; then
|
elif [[ $REGISTRY == "GPR" ]]; then
|
||||||
# Authenticate "Username" "Password" "Url" "Name"
|
# Authenticate "Username" "Password" "Url" "Name"
|
||||||
Authenticate "$GPR_USERNAME" "$GPR_TOKEN" "https://docker.pkg.github.com" "GitHub Package Registry"
|
Authenticate "$GPR_USERNAME" "$GPR_TOKEN" "https://docker.pkg.github.com" "GitHub Package Registry"
|
||||||
|
|
||||||
|
@ -495,7 +488,7 @@ else
|
||||||
#########
|
#########
|
||||||
# ERROR #
|
# ERROR #
|
||||||
#########
|
#########
|
||||||
echo "ERROR! Registry not set correctly!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Registry not set correctly!${NC}"
|
||||||
echo "Registry:[$REGISTRY]"
|
echo "Registry:[$REGISTRY]"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
2
.github/workflows/deploy-DEV.yml
vendored
2
.github/workflows/deploy-DEV.yml
vendored
|
@ -31,6 +31,8 @@ jobs:
|
||||||
name: Deploy Docker Image - DEV
|
name: Deploy Docker Image - DEV
|
||||||
# Set the agent to run on
|
# Set the agent to run on
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Prevent duplicate run from happening when a forked push is committed
|
||||||
|
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||||
##################
|
##################
|
||||||
# Load all steps #
|
# Load all steps #
|
||||||
##################
|
##################
|
||||||
|
|
61
.github/workflows/stale.yml
vendored
Normal file
61
.github/workflows/stale.yml
vendored
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
---
|
||||||
|
###############################
|
||||||
|
###############################
|
||||||
|
## StaleBot for Super-Linter ##
|
||||||
|
###############################
|
||||||
|
###############################
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
# every day at 0:00 UTC
|
||||||
|
- cron: "0 0 * * *"
|
||||||
|
issue_comment:
|
||||||
|
types: [created, deleted, edited]
|
||||||
|
|
||||||
|
###################
|
||||||
|
# Name of the Job #
|
||||||
|
###################
|
||||||
|
name: "Stale[bot]"
|
||||||
|
|
||||||
|
###############
|
||||||
|
# Run the job #
|
||||||
|
###############
|
||||||
|
jobs:
|
||||||
|
#######################
|
||||||
|
# Mark an Issue Stale #
|
||||||
|
#######################
|
||||||
|
markstale:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
# only run on schedule
|
||||||
|
if: "github.event_name == 'schedule'"
|
||||||
|
steps:
|
||||||
|
- name: Mark issue stale
|
||||||
|
uses: actions/stale@v3
|
||||||
|
with:
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity.\nIt will be closed in 14 days if no further activity occurs.\nThank you for your contributions.\n\nIf you think this issue should stay open, please remove the `O: stale 🤖` label or comment on the issue."
|
||||||
|
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity.\nIt will be closed in 14 days if no further activity occurs.\nThank you for your contributions.\n\nIf you think this pull request should stay open, please remove the `O: stale 🤖` label or comment on the pull request."
|
||||||
|
days-before-stale: 30
|
||||||
|
days-before-close: 14
|
||||||
|
stale-issue-label: "O: stale 🤖"
|
||||||
|
exempt-issue-label: "O: backlog 🤖"
|
||||||
|
stale-pr-label: "O: stale 🤖"
|
||||||
|
exempt-pr-label: "O: backlog 🤖"
|
||||||
|
|
||||||
|
##################
|
||||||
|
# Mark not stale #
|
||||||
|
##################
|
||||||
|
marknotstale:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
# do not run on schedule
|
||||||
|
if: "github.event_name == 'issue_comment' && contains(github.event.issue.labels.*.name, 'O: stale 🤖') && github.event.issue.user.type != 'Bot'"
|
||||||
|
steps:
|
||||||
|
- name: Mark issue not stale
|
||||||
|
uses: actions/github-script@v2
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
github.issues.removeLabel({
|
||||||
|
issue_number: context.issue.number,
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
name: 'O: stale 🤖'
|
||||||
|
})
|
11
README.md
11
README.md
|
@ -60,7 +60,7 @@ Developers on **GitHub** can call the **GitHub Action** to lint their code base
|
||||||
| **YAML** | [YamlLint](https://github.com/adrienverge/yamllint) |
|
| **YAML** | [YamlLint](https://github.com/adrienverge/yamllint) |
|
||||||
|
|
||||||
## How to use
|
## How to use
|
||||||
<img height="512" src="https://github.com/github/super-linter/blob/quickstart/docs/how-to.gif?raw=true" alt="How to gif">
|
More in-depth [tutorial](https://www.youtube.com/watch?v=EDAmFKO4Zt0&t=118s) available
|
||||||
|
|
||||||
To use this **GitHub** Action you will need to complete the following:
|
To use this **GitHub** Action you will need to complete the following:
|
||||||
1. Create a new file in your repository called `.github/workflows/linter.yml`
|
1. Create a new file in your repository called `.github/workflows/linter.yml`
|
||||||
|
@ -96,8 +96,10 @@ name: Lint Code Base
|
||||||
#############################
|
#############################
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches-ignore:
|
branches-ignore: [master]
|
||||||
- 'master'
|
# Remove the line above to run when pushing to master
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Set the Job #
|
# Set the Job #
|
||||||
|
@ -126,7 +128,8 @@ jobs:
|
||||||
uses: docker://github/super-linter:v3
|
uses: docker://github/super-linter:v3
|
||||||
env:
|
env:
|
||||||
VALIDATE_ALL_CODEBASE: false
|
VALIDATE_ALL_CODEBASE: false
|
||||||
VALIDATE_ANSIBLE: false
|
DEFAULT_BRANCH: master
|
||||||
|
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// https://github.com/terraform-linters/tflint/blob/master/docs/guides/config.md
|
// https://github.com/terraform-linters/tflint/blob/master/docs/guides/config.md
|
||||||
config {
|
config {
|
||||||
module = true
|
module = false
|
||||||
deep_check = false
|
deep_check = false
|
||||||
force = false
|
force = false
|
||||||
|
|
||||||
|
|
BIN
docs/how-to.gif
BIN
docs/how-to.gif
Binary file not shown.
Before Width: | Height: | Size: 17 MiB |
|
@ -9,15 +9,14 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function BuildFileList ####################################################
|
#### Function BuildFileList ####################################################
|
||||||
function BuildFileList()
|
function BuildFileList() {
|
||||||
{
|
|
||||||
# Need to build a list of all files changed
|
# Need to build a list of all files changed
|
||||||
# This can be pulled from the GITHUB_EVENT_PATH payload
|
# This can be pulled from the GITHUB_EVENT_PATH payload
|
||||||
|
|
||||||
################
|
################
|
||||||
# print header #
|
# print header #
|
||||||
################
|
################
|
||||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "----------------------------------------------"
|
echo "----------------------------------------------"
|
||||||
echo "Pulling in code history and branches..."
|
echo "Pulling in code history and branches..."
|
||||||
|
@ -26,7 +25,10 @@ function BuildFileList()
|
||||||
#################################################################################
|
#################################################################################
|
||||||
# Switch codebase back to the default branch to get a list of all files changed #
|
# Switch codebase back to the default branch to get a list of all files changed #
|
||||||
#################################################################################
|
#################################################################################
|
||||||
SWITCH_CMD=$(cd "$GITHUB_WORKSPACE" || exit; git pull --quiet; git checkout "$DEFAULT_BRANCH" 2>&1)
|
SWITCH_CMD=$(
|
||||||
|
git -C "$GITHUB_WORKSPACE" pull --quiet
|
||||||
|
git -C "$GITHUB_WORKSPACE" checkout "$DEFAULT_BRANCH" 2>&1
|
||||||
|
)
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# Load the error code #
|
# Load the error code #
|
||||||
|
@ -39,14 +41,14 @@ function BuildFileList()
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# Error
|
# Error
|
||||||
echo "Failed to switch to $DEFAULT_BRANCH branch to get files changed!"
|
echo "Failed to switch to $DEFAULT_BRANCH branch to get files changed!"
|
||||||
echo "ERROR:[$SWITCH_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SWITCH_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
################
|
################
|
||||||
# print header #
|
# print header #
|
||||||
################
|
################
|
||||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "----------------------------------------------"
|
echo "----------------------------------------------"
|
||||||
echo "Generating Diff with:[git diff --name-only '$DEFAULT_BRANCH..$GITHUB_SHA' --diff-filter=d]"
|
echo "Generating Diff with:[git diff --name-only '$DEFAULT_BRANCH..$GITHUB_SHA' --diff-filter=d]"
|
||||||
|
@ -67,8 +69,8 @@ function BuildFileList()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# Error
|
# Error
|
||||||
echo "ERROR! Failed to gain a list of all files changed!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to gain a list of all files changed!${NC}"
|
||||||
echo "ERROR:[${RAW_FILE_ARRAY[*]}]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${RAW_FILE_ARRAY[*]}]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -78,8 +80,7 @@ function BuildFileList()
|
||||||
echo ""
|
echo ""
|
||||||
echo "----------------------------------------------"
|
echo "----------------------------------------------"
|
||||||
echo "Files that have been modified in the commit(s):"
|
echo "Files that have been modified in the commit(s):"
|
||||||
for FILE in "${RAW_FILE_ARRAY[@]}"
|
for FILE in "${RAW_FILE_ARRAY[@]}"; do
|
||||||
do
|
|
||||||
##############
|
##############
|
||||||
# Print file #
|
# Print file #
|
||||||
##############
|
##############
|
||||||
|
@ -100,11 +101,11 @@ function BuildFileList()
|
||||||
#####################
|
#####################
|
||||||
# Get the CFN files #
|
# Get the CFN files #
|
||||||
#####################
|
#####################
|
||||||
if [ "$FILE_TYPE" == "json" ] || [ "$FILE_TYPE" == "yml" ] || [ "$FILE_TYPE" == "yaml" ] && DetectCloudFormationFile "$FILE"; then
|
if [ "$FILE_TYPE" == "yml" ] || [ "$FILE_TYPE" == "yaml" ]; then
|
||||||
################################
|
################################
|
||||||
# Append the file to the array #
|
# Append the file to the array #
|
||||||
################################
|
################################
|
||||||
FILE_ARRAY_CFN+=("$FILE")
|
FILE_ARRAY_YML+=("$FILE")
|
||||||
##########################################################
|
##########################################################
|
||||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
##########################################################
|
##########################################################
|
||||||
|
@ -118,11 +119,12 @@ function BuildFileList()
|
||||||
# Append the file to the array #
|
# Append the file to the array #
|
||||||
################################
|
################################
|
||||||
FILE_ARRAY_CFN+=("$FILE")
|
FILE_ARRAY_CFN+=("$FILE")
|
||||||
|
|
||||||
|
##########################################################
|
||||||
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
|
##########################################################
|
||||||
|
READ_ONLY_CHANGE_FLAG=1
|
||||||
fi
|
fi
|
||||||
##########################################################
|
|
||||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
|
||||||
##########################################################
|
|
||||||
READ_ONLY_CHANGE_FLAG=1
|
|
||||||
######################
|
######################
|
||||||
# Get the JSON files #
|
# Get the JSON files #
|
||||||
######################
|
######################
|
||||||
|
@ -351,7 +353,7 @@ function BuildFileList()
|
||||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
##########################################################
|
##########################################################
|
||||||
READ_ONLY_CHANGE_FLAG=1
|
READ_ONLY_CHANGE_FLAG=1
|
||||||
elif [ "$FILE" == "Dockerfile" ]; then
|
elif [ "$FILE" == "dockerfile" ]; then
|
||||||
################################
|
################################
|
||||||
# Append the file to the array #
|
# Append the file to the array #
|
||||||
################################
|
################################
|
||||||
|
@ -378,11 +380,11 @@ function BuildFileList()
|
||||||
#################
|
#################
|
||||||
# Check if bash #
|
# Check if bash #
|
||||||
#################
|
#################
|
||||||
if [[ "$GET_FILE_TYPE_CMD" == *"Bourne-Again shell script"* ]]; then
|
if [[ $GET_FILE_TYPE_CMD == *"Bourne-Again shell script"* ]]; then
|
||||||
#######################
|
#######################
|
||||||
# It is a bash script #
|
# It is a bash script #
|
||||||
#######################
|
#######################
|
||||||
echo "WARN! Found bash script without extension:[.sh]"
|
echo -e "${NC}${F[Y]}WARN!${NC} Found bash script without extension:[.sh]${NC}"
|
||||||
echo "Please update file with proper extensions."
|
echo "Please update file with proper extensions."
|
||||||
################################
|
################################
|
||||||
# Append the file to the array #
|
# Append the file to the array #
|
||||||
|
@ -392,11 +394,11 @@ function BuildFileList()
|
||||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
##########################################################
|
##########################################################
|
||||||
READ_ONLY_CHANGE_FLAG=1
|
READ_ONLY_CHANGE_FLAG=1
|
||||||
elif [[ "$GET_FILE_TYPE_CMD" == *"Ruby script"* ]]; then
|
elif [[ $GET_FILE_TYPE_CMD == *"Ruby script"* ]]; then
|
||||||
#######################
|
#######################
|
||||||
# It is a Ruby script #
|
# It is a Ruby script #
|
||||||
#######################
|
#######################
|
||||||
echo "WARN! Found ruby script without extension:[.rb]"
|
echo -e "${NC}${F[Y]}WARN!${NC} Found ruby script without extension:[.rb]${NC}"
|
||||||
echo "Please update file with proper extensions."
|
echo "Please update file with proper extensions."
|
||||||
################################
|
################################
|
||||||
# Append the file to the array #
|
# Append the file to the array #
|
||||||
|
@ -410,7 +412,7 @@ function BuildFileList()
|
||||||
############################
|
############################
|
||||||
# Extension was not found! #
|
# Extension was not found! #
|
||||||
############################
|
############################
|
||||||
echo " - WARN! Failed to get filetype for:[$FILE]!"
|
echo -e "${NC}${F[Y]} - WARN!${NC} Failed to get filetype for:[$FILE]!${NC}"
|
||||||
##########################################################
|
##########################################################
|
||||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
##########################################################
|
##########################################################
|
||||||
|
@ -419,12 +421,12 @@ function BuildFileList()
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
echo ${READ_ONLY_CHANGE_FLAG} > /dev/null 2>&1 || true # Workaround SC2034
|
echo ${READ_ONLY_CHANGE_FLAG} > /dev/null 2>&1 || true # Workaround SC2034
|
||||||
|
|
||||||
#########################################
|
#########################################
|
||||||
# Need to switch back to branch of code #
|
# Need to switch back to branch of code #
|
||||||
#########################################
|
#########################################
|
||||||
SWITCH2_CMD=$(cd "$GITHUB_WORKSPACE" || exit; git checkout --progress --force "$GITHUB_SHA" 2>&1)
|
SWITCH2_CMD=$(git -C "$GITHUB_WORKSPACE" checkout --progress --force "$GITHUB_SHA" 2>&1)
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# Load the error code #
|
# Load the error code #
|
||||||
|
@ -437,7 +439,7 @@ function BuildFileList()
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# Error
|
# Error
|
||||||
echo "Failed to switch back to branch!"
|
echo "Failed to switch back to branch!"
|
||||||
echo "ERROR:[$SWITCH2_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SWITCH2_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -446,5 +448,5 @@ function BuildFileList()
|
||||||
################
|
################
|
||||||
echo ""
|
echo ""
|
||||||
echo "----------------------------------------------"
|
echo "----------------------------------------------"
|
||||||
echo "Successfully gathered list of files..."
|
echo -e "${NC}${F[B]}Successfully gathered list of files...${NC}"
|
||||||
}
|
}
|
||||||
|
|
466
lib/linter.sh
466
lib/linter.sh
|
@ -10,11 +10,13 @@
|
||||||
# Source Function Files #
|
# Source Function Files #
|
||||||
#########################
|
#########################
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source /action/lib/buildFileList.sh # Source the function script(s)
|
source /action/lib/termColors.sh # Source the function script(s)
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source /action/lib/validation.sh # Source the function script(s)
|
source /action/lib/buildFileList.sh # Source the function script(s)
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source /action/lib/worker.sh # Source the function script(s)
|
source /action/lib/validation.sh # Source the function script(s)
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source /action/lib/worker.sh # Source the function script(s)
|
||||||
|
|
||||||
###########
|
###########
|
||||||
# GLOBALS #
|
# GLOBALS #
|
||||||
|
@ -99,138 +101,137 @@ LANGUAGE_ARRAY=('YML' 'JSON' 'XML' 'MARKDOWN' 'BASH' 'PERL' 'PHP' 'RUBY' 'PYTHON
|
||||||
###################
|
###################
|
||||||
# GitHub ENV Vars #
|
# GitHub ENV Vars #
|
||||||
###################
|
###################
|
||||||
GITHUB_SHA="${GITHUB_SHA}" # GitHub sha from the commit
|
GITHUB_SHA="${GITHUB_SHA}" # GitHub sha from the commit
|
||||||
GITHUB_EVENT_PATH="${GITHUB_EVENT_PATH}" # Github Event Path
|
GITHUB_EVENT_PATH="${GITHUB_EVENT_PATH}" # Github Event Path
|
||||||
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # Github Workspace
|
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # Github Workspace
|
||||||
DEFAULT_BRANCH="${DEFAULT_BRANCH:-master}" # Default Git Branch to use (master by default)
|
DEFAULT_BRANCH="${DEFAULT_BRANCH:-master}" # Default Git Branch to use (master by default)
|
||||||
ANSIBLE_DIRECTORY="${ANSIBLE_DIRECTORY}" # Ansible Directory
|
ANSIBLE_DIRECTORY="${ANSIBLE_DIRECTORY}" # Ansible Directory
|
||||||
VALIDATE_ALL_CODEBASE="${VALIDATE_ALL_CODEBASE}" # Boolean to validate all files
|
VALIDATE_ALL_CODEBASE="${VALIDATE_ALL_CODEBASE}" # Boolean to validate all files
|
||||||
VALIDATE_YAML="${VALIDATE_YAML}" # Boolean to validate language
|
VALIDATE_YAML="${VALIDATE_YAML}" # Boolean to validate language
|
||||||
VALIDATE_JSON="${VALIDATE_JSON}" # Boolean to validate language
|
VALIDATE_JSON="${VALIDATE_JSON}" # Boolean to validate language
|
||||||
VALIDATE_XML="${VALIDATE_XML}" # Boolean to validate language
|
VALIDATE_XML="${VALIDATE_XML}" # Boolean to validate language
|
||||||
VALIDATE_MD="${VALIDATE_MD}" # Boolean to validate language
|
VALIDATE_MD="${VALIDATE_MD}" # Boolean to validate language
|
||||||
VALIDATE_BASH="${VALIDATE_BASH}" # Boolean to validate language
|
VALIDATE_BASH="${VALIDATE_BASH}" # Boolean to validate language
|
||||||
VALIDATE_PERL="${VALIDATE_PERL}" # Boolean to validate language
|
VALIDATE_PERL="${VALIDATE_PERL}" # Boolean to validate language
|
||||||
VALIDATE_PHP="${VALIDATE_PHP}" # Boolean to validate language
|
VALIDATE_PHP="${VALIDATE_PHP}" # Boolean to validate language
|
||||||
VALIDATE_PYTHON="${VALIDATE_PYTHON}" # Boolean to validate language
|
VALIDATE_PYTHON="${VALIDATE_PYTHON}" # Boolean to validate language
|
||||||
VALIDATE_CLOUDFORMATION="${VALIDATE_CLOUDFORMATION}" # Boolean to validate language
|
VALIDATE_CLOUDFORMATION="${VALIDATE_CLOUDFORMATION}" # Boolean to validate language
|
||||||
VALIDATE_RUBY="${VALIDATE_RUBY}" # Boolean to validate language
|
VALIDATE_RUBY="${VALIDATE_RUBY}" # Boolean to validate language
|
||||||
VALIDATE_COFFEE="${VALIDATE_COFFEE}" # Boolean to validate language
|
VALIDATE_COFFEE="${VALIDATE_COFFEE}" # Boolean to validate language
|
||||||
VALIDATE_ANSIBLE="${VALIDATE_ANSIBLE}" # Boolean to validate language
|
VALIDATE_ANSIBLE="${VALIDATE_ANSIBLE}" # Boolean to validate language
|
||||||
VALIDATE_JAVASCRIPT_ES="${VALIDATE_JAVASCRIPT_ES}" # Boolean to validate language
|
VALIDATE_JAVASCRIPT_ES="${VALIDATE_JAVASCRIPT_ES}" # Boolean to validate language
|
||||||
VALIDATE_JAVASCRIPT_STANDARD="${VALIDATE_JAVASCRIPT_STANDARD}" # Boolean to validate language
|
VALIDATE_JAVASCRIPT_STANDARD="${VALIDATE_JAVASCRIPT_STANDARD}" # Boolean to validate language
|
||||||
VALIDATE_TYPESCRIPT_ES="${VALIDATE_TYPESCRIPT_ES}" # Boolean to validate language
|
VALIDATE_TYPESCRIPT_ES="${VALIDATE_TYPESCRIPT_ES}" # Boolean to validate language
|
||||||
VALIDATE_TYPESCRIPT_STANDARD="${VALIDATE_TYPESCRIPT_STANDARD}" # Boolean to validate language
|
VALIDATE_TYPESCRIPT_STANDARD="${VALIDATE_TYPESCRIPT_STANDARD}" # Boolean to validate language
|
||||||
VALIDATE_DOCKER="${VALIDATE_DOCKER}" # Boolean to validate language
|
VALIDATE_DOCKER="${VALIDATE_DOCKER}" # Boolean to validate language
|
||||||
VALIDATE_GO="${VALIDATE_GO}" # Boolean to validate language
|
VALIDATE_GO="${VALIDATE_GO}" # Boolean to validate language
|
||||||
VALIDATE_CSS="${VALIDATE_CSS}" # Boolean to validate language
|
VALIDATE_CSS="${VALIDATE_CSS}" # Boolean to validate language
|
||||||
VALIDATE_ENV="${VALIDATE_ENV}" # Boolean to validate language
|
VALIDATE_ENV="${VALIDATE_ENV}" # Boolean to validate language
|
||||||
VALIDATE_CLOJURE="${VALIDATE_CLOJURE}" # Boolean to validate language
|
VALIDATE_CLOJURE="${VALIDATE_CLOJURE}" # Boolean to validate language
|
||||||
VALIDATE_TERRAFORM="${VALIDATE_TERRAFORM}" # Boolean to validate language
|
VALIDATE_TERRAFORM="${VALIDATE_TERRAFORM}" # Boolean to validate language
|
||||||
VALIDATE_POWERSHELL="${VALIDATE_POWERSHELL}" # Boolean to validate language
|
VALIDATE_POWERSHELL="${VALIDATE_POWERSHELL}" # Boolean to validate language
|
||||||
VALIDATE_ARM="${VALIDATE_ARM}" # Boolean to validate language
|
VALIDATE_ARM="${VALIDATE_ARM}" # Boolean to validate language
|
||||||
VALIDATE_KOTLIN="${VALIDATE_KOTLIN}" # Boolean to validate language
|
VALIDATE_KOTLIN="${VALIDATE_KOTLIN}" # Boolean to validate language
|
||||||
VALIDATE_OPENAPI="${VALIDATE_OPENAPI}" # Boolean to validate language
|
VALIDATE_OPENAPI="${VALIDATE_OPENAPI}" # Boolean to validate language
|
||||||
TEST_CASE_RUN="${TEST_CASE_RUN}" # Boolean to validate only test cases
|
TEST_CASE_RUN="${TEST_CASE_RUN}" # Boolean to validate only test cases
|
||||||
DISABLE_ERRORS="${DISABLE_ERRORS}" # Boolean to enable warning-only output without throwing errors
|
DISABLE_ERRORS="${DISABLE_ERRORS}" # Boolean to enable warning-only output without throwing errors
|
||||||
|
|
||||||
##############
|
##############
|
||||||
# Debug Vars #
|
# Debug Vars #
|
||||||
##############
|
##############
|
||||||
RUN_LOCAL="${RUN_LOCAL}" # Boolean to see if we are running locally
|
RUN_LOCAL="${RUN_LOCAL}" # Boolean to see if we are running locally
|
||||||
ACTIONS_RUNNER_DEBUG="${ACTIONS_RUNNER_DEBUG:-false}" # Boolean to see even more info (debug)
|
ACTIONS_RUNNER_DEBUG="${ACTIONS_RUNNER_DEBUG:-false}" # Boolean to see even more info (debug)
|
||||||
|
|
||||||
################
|
################
|
||||||
# Default Vars #
|
# Default Vars #
|
||||||
################
|
################
|
||||||
DEFAULT_VALIDATE_ALL_CODEBASE='true' # Default value for validate all files
|
DEFAULT_VALIDATE_ALL_CODEBASE='true' # Default value for validate all files
|
||||||
DEFAULT_WORKSPACE="${DEFAULT_WORKSPACE:-/tmp/lint}" # Default workspace if running locally
|
DEFAULT_WORKSPACE="${DEFAULT_WORKSPACE:-/tmp/lint}" # Default workspace if running locally
|
||||||
DEFAULT_RUN_LOCAL='false' # Default value for debugging locally
|
DEFAULT_RUN_LOCAL='false' # Default value for debugging locally
|
||||||
DEFAULT_TEST_CASE_RUN='false' # Flag to tell code to run only test cases
|
DEFAULT_TEST_CASE_RUN='false' # Flag to tell code to run only test cases
|
||||||
DEFAULT_IFS="$IFS" # Get the Default IFS for updating
|
DEFAULT_IFS="$IFS" # Get the Default IFS for updating
|
||||||
|
|
||||||
###############################################################
|
###############################################################
|
||||||
# Default Vars that are called in Subs and need to be ignored #
|
# Default Vars that are called in Subs and need to be ignored #
|
||||||
###############################################################
|
###############################################################
|
||||||
DEFAULT_DISABLE_ERRORS='false' # Default to enabling errors
|
DEFAULT_DISABLE_ERRORS='false' # Default to enabling errors
|
||||||
echo "${DEFAULT_DISABLE_ERRORS}" > /dev/null 2>&1 || true # Workaround SC2034
|
echo "${DEFAULT_DISABLE_ERRORS}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||||
RAW_FILE_ARRAY=() # Array of all files that were changed
|
RAW_FILE_ARRAY=() # Array of all files that were changed
|
||||||
echo "${RAW_FILE_ARRAY[*]}" > /dev/null 2>&1 || true # Workaround SC2034
|
echo "${RAW_FILE_ARRAY[*]}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||||
READ_ONLY_CHANGE_FLAG=0 # Flag set to 1 if files changed are not txt or md
|
READ_ONLY_CHANGE_FLAG=0 # Flag set to 1 if files changed are not txt or md
|
||||||
echo "${READ_ONLY_CHANGE_FLAG}" > /dev/null 2>&1 || true # Workaround SC2034
|
echo "${READ_ONLY_CHANGE_FLAG}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||||
TEST_CASE_FOLDER='.automation/test' # Folder for test cases we should always ignore
|
TEST_CASE_FOLDER='.automation/test' # Folder for test cases we should always ignore
|
||||||
echo "${TEST_CASE_FOLDER}" > /dev/null 2>&1 || true # Workaround SC2034
|
echo "${TEST_CASE_FOLDER}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||||
DEFAULT_ANSIBLE_DIRECTORY="$GITHUB_WORKSPACE/ansible" # Default Ansible Directory
|
DEFAULT_ANSIBLE_DIRECTORY="$GITHUB_WORKSPACE/ansible" # Default Ansible Directory
|
||||||
echo "${DEFAULT_ANSIBLE_DIRECTORY}" > /dev/null 2>&1 || true # Workaround SC2034
|
echo "${DEFAULT_ANSIBLE_DIRECTORY}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||||
|
|
||||||
##########################
|
##########################
|
||||||
# Array of changed files #
|
# Array of changed files #
|
||||||
##########################
|
##########################
|
||||||
FILE_ARRAY_YML=() # Array of files to check
|
FILE_ARRAY_YML=() # Array of files to check
|
||||||
FILE_ARRAY_JSON=() # Array of files to check
|
FILE_ARRAY_JSON=() # Array of files to check
|
||||||
FILE_ARRAY_XML=() # Array of files to check
|
FILE_ARRAY_XML=() # Array of files to check
|
||||||
FILE_ARRAY_MD=() # Array of files to check
|
FILE_ARRAY_MD=() # Array of files to check
|
||||||
FILE_ARRAY_BASH=() # Array of files to check
|
FILE_ARRAY_BASH=() # Array of files to check
|
||||||
FILE_ARRAY_PERL=() # Array of files to check
|
FILE_ARRAY_PERL=() # Array of files to check
|
||||||
FILE_ARRAY_PHP=() # Array of files to check
|
FILE_ARRAY_PHP=() # Array of files to check
|
||||||
FILE_ARRAY_RUBY=() # Array of files to check
|
FILE_ARRAY_RUBY=() # Array of files to check
|
||||||
FILE_ARRAY_PYTHON=() # Array of files to check
|
FILE_ARRAY_PYTHON=() # Array of files to check
|
||||||
FILE_ARRAY_CFN=() # Array of files to check
|
FILE_ARRAY_CFN=() # Array of files to check
|
||||||
FILE_ARRAY_COFFEESCRIPT=() # Array of files to check
|
FILE_ARRAY_COFFEESCRIPT=() # Array of files to check
|
||||||
FILE_ARRAY_JAVASCRIPT_ES=() # Array of files to check
|
FILE_ARRAY_JAVASCRIPT_ES=() # Array of files to check
|
||||||
FILE_ARRAY_JAVASCRIPT_STANDARD=() # Array of files to check
|
FILE_ARRAY_JAVASCRIPT_STANDARD=() # Array of files to check
|
||||||
FILE_ARRAY_TYPESCRIPT_ES=() # Array of files to check
|
FILE_ARRAY_TYPESCRIPT_ES=() # Array of files to check
|
||||||
FILE_ARRAY_TYPESCRIPT_STANDARD=() # Array of files to check
|
FILE_ARRAY_TYPESCRIPT_STANDARD=() # Array of files to check
|
||||||
FILE_ARRAY_DOCKER=() # Array of files to check
|
FILE_ARRAY_DOCKER=() # Array of files to check
|
||||||
FILE_ARRAY_GO=() # Array of files to check
|
FILE_ARRAY_GO=() # Array of files to check
|
||||||
FILE_ARRAY_TERRAFORM=() # Array of files to check
|
FILE_ARRAY_TERRAFORM=() # Array of files to check
|
||||||
FILE_ARRAY_POWERSHELL=() # Array of files to check
|
FILE_ARRAY_POWERSHELL=() # Array of files to check
|
||||||
FILE_ARRAY_ARM=() # Array of files to check
|
FILE_ARRAY_ARM=() # Array of files to check
|
||||||
FILE_ARRAY_CSS=() # Array of files to check
|
FILE_ARRAY_CSS=() # Array of files to check
|
||||||
FILE_ARRAY_ENV=() # Array of files to check
|
FILE_ARRAY_ENV=() # Array of files to check
|
||||||
FILE_ARRAY_CLOJURE=() # Array of files to check
|
FILE_ARRAY_CLOJURE=() # Array of files to check
|
||||||
FILE_ARRAY_KOTLIN=() # Array of files to check
|
FILE_ARRAY_KOTLIN=() # Array of files to check
|
||||||
FILE_ARRAY_PROTOBUF=() # Array of files to check
|
FILE_ARRAY_PROTOBUF=() # Array of files to check
|
||||||
FILE_ARRAY_OPENAPI=() # Array of files to check
|
FILE_ARRAY_OPENAPI=() # Array of files to check
|
||||||
|
|
||||||
############
|
############
|
||||||
# Counters #
|
# Counters #
|
||||||
############
|
############
|
||||||
ERRORS_FOUND_YML=0 # Count of errors found
|
ERRORS_FOUND_YML=0 # Count of errors found
|
||||||
ERRORS_FOUND_JSON=0 # Count of errors found
|
ERRORS_FOUND_JSON=0 # Count of errors found
|
||||||
ERRORS_FOUND_XML=0 # Count of errors found
|
ERRORS_FOUND_XML=0 # Count of errors found
|
||||||
ERRORS_FOUND_MARKDOWN=0 # Count of errors found
|
ERRORS_FOUND_MARKDOWN=0 # Count of errors found
|
||||||
ERRORS_FOUND_BASH=0 # Count of errors found
|
ERRORS_FOUND_BASH=0 # Count of errors found
|
||||||
ERRORS_FOUND_PERL=0 # Count of errors found
|
ERRORS_FOUND_PERL=0 # Count of errors found
|
||||||
ERRORS_FOUND_PHP=0 # Count of errors found
|
ERRORS_FOUND_PHP=0 # Count of errors found
|
||||||
ERRORS_FOUND_RUBY=0 # Count of errors found
|
ERRORS_FOUND_RUBY=0 # Count of errors found
|
||||||
ERRORS_FOUND_PYTHON=0 # Count of errors found
|
ERRORS_FOUND_PYTHON=0 # Count of errors found
|
||||||
ERRORS_FOUND_CFN=0 # Count of errors found
|
ERRORS_FOUND_CFN=0 # Count of errors found
|
||||||
ERRORS_FOUND_COFFEESCRIPT=0 # Count of errors found
|
ERRORS_FOUND_COFFEESCRIPT=0 # Count of errors found
|
||||||
ERRORS_FOUND_ANSIBLE=0 # Count of errors found
|
ERRORS_FOUND_ANSIBLE=0 # Count of errors found
|
||||||
ERRORS_FOUND_JAVASCRIPT_STANDARD=0 # Count of errors found
|
ERRORS_FOUND_JAVASCRIPT_STANDARD=0 # Count of errors found
|
||||||
ERRORS_FOUND_JAVASCRIPT_ES=0 # Count of errors found
|
ERRORS_FOUND_JAVASCRIPT_ES=0 # Count of errors found
|
||||||
ERRORS_FOUND_TYPESCRIPT_STANDARD=0 # Count of errors found
|
ERRORS_FOUND_TYPESCRIPT_STANDARD=0 # Count of errors found
|
||||||
ERRORS_FOUND_TYPESCRIPT_ES=0 # Count of errors found
|
ERRORS_FOUND_TYPESCRIPT_ES=0 # Count of errors found
|
||||||
ERRORS_FOUND_DOCKER=0 # Count of errors found
|
ERRORS_FOUND_DOCKER=0 # Count of errors found
|
||||||
ERRORS_FOUND_GO=0 # Count of errors found
|
ERRORS_FOUND_GO=0 # Count of errors found
|
||||||
ERRORS_FOUND_TERRAFORM=0 # Count of errors found
|
ERRORS_FOUND_TERRAFORM=0 # Count of errors found
|
||||||
ERRORS_FOUND_POWERSHELL=0 # Count of errors found
|
ERRORS_FOUND_POWERSHELL=0 # Count of errors found
|
||||||
ERRORS_FOUND_ARM=0 # Count of errors found
|
ERRORS_FOUND_ARM=0 # Count of errors found
|
||||||
ERRORS_FOUND_CSS=0 # Count of errors found
|
ERRORS_FOUND_CSS=0 # Count of errors found
|
||||||
ERRORS_FOUND_ENV=0 # Count of errors found
|
ERRORS_FOUND_ENV=0 # Count of errors found
|
||||||
ERRORS_FOUND_CLOJURE=0 # Count of errors found
|
ERRORS_FOUND_CLOJURE=0 # Count of errors found
|
||||||
ERRORS_FOUND_KOTLIN=0 # Count of errors found
|
ERRORS_FOUND_KOTLIN=0 # Count of errors found
|
||||||
ERRORS_FOUND_PROTOBUF=0 # Count of errors found
|
ERRORS_FOUND_PROTOBUF=0 # Count of errors found
|
||||||
ERRORS_FOUND_OPENAPI=0 # Count of errors found
|
ERRORS_FOUND_OPENAPI=0 # Count of errors found
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
########################## FUNCTIONS BELOW #####################################
|
########################## FUNCTIONS BELOW #####################################
|
||||||
################################################################################
|
################################################################################
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function Header ###########################################################
|
#### Function Header ###########################################################
|
||||||
Header()
|
Header() {
|
||||||
{
|
|
||||||
###############################
|
###############################
|
||||||
# Give them the possum action #
|
# Give them the possum action #
|
||||||
###############################
|
###############################
|
||||||
|
@ -251,8 +252,7 @@ Header()
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function GetLinterVersions ################################################
|
#### Function GetLinterVersions ################################################
|
||||||
GetLinterVersions()
|
GetLinterVersions() {
|
||||||
{
|
|
||||||
#########################
|
#########################
|
||||||
# Print version headers #
|
# Print version headers #
|
||||||
#########################
|
#########################
|
||||||
|
@ -263,8 +263,8 @@ GetLinterVersions()
|
||||||
##########################################################
|
##########################################################
|
||||||
# Go through the array of linters and print version info #
|
# Go through the array of linters and print version info #
|
||||||
##########################################################
|
##########################################################
|
||||||
for LINTER in "${LINTER_ARRAY[@]}"
|
for LINTER in "${LINTER_ARRAY[@]}"; do
|
||||||
do
|
echo "[$LINTER]:"
|
||||||
###################
|
###################
|
||||||
# Get the version #
|
# Get the version #
|
||||||
###################
|
###################
|
||||||
|
@ -287,7 +287,7 @@ GetLinterVersions()
|
||||||
# Check the shell for errors #
|
# Check the shell for errors #
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ] || [ -z "${GET_VERSION_CMD[*]}" ]; then
|
if [ $ERROR_CODE -ne 0 ] || [ -z "${GET_VERSION_CMD[*]}" ]; then
|
||||||
echo "[$LINTER]: WARN! Failed to get version info for:[$LINTER]"
|
echo -e "${NC}${F[Y]}WARN!${NC} Failed to get version info for:[$LINTER]${NC}"
|
||||||
else
|
else
|
||||||
##########################
|
##########################
|
||||||
# Print the version info #
|
# Print the version info #
|
||||||
|
@ -303,54 +303,43 @@ GetLinterVersions()
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function GetLinterRules ###################################################
|
#### Function GetLinterRules ###################################################
|
||||||
GetLinterRules()
|
GetLinterRules() {
|
||||||
{
|
|
||||||
# Need to validate the rules files exist
|
# Need to validate the rules files exist
|
||||||
|
|
||||||
################
|
################
|
||||||
# Pull in vars #
|
# Pull in vars #
|
||||||
################
|
################
|
||||||
FILE_NAME="$1" # Name fo the linter file
|
LANGUAGE_NAME="$1" # Name of the language were looking for
|
||||||
FILE_LOCATION="$2" # Location of the linter file
|
|
||||||
|
#######################################################
|
||||||
|
# Need to create the variables for the real variables #
|
||||||
|
#######################################################
|
||||||
|
LANGUAGE_FILE_NAME="${LANGUAGE_NAME}_FILE_NAME"
|
||||||
|
LANGUAGE_LINTER_RULES="${LANGUAGE_NAME}_LINTER_RULES"
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# Validate we have the linter rules #
|
# Validate we have the linter rules #
|
||||||
#####################################
|
#####################################
|
||||||
if [ -f "$GITHUB_WORKSPACE/$LINTER_RULES_PATH/$FILE_NAME" ]; then
|
if [ -f "$GITHUB_WORKSPACE/$LINTER_RULES_PATH/${!LANGUAGE_FILE_NAME}" ]; then
|
||||||
echo "----------------------------------------------"
|
echo "----------------------------------------------"
|
||||||
echo "User provided file:[$FILE_NAME], setting rules file..."
|
echo "User provided file:[${!LANGUAGE_FILE_NAME}], setting rules file..."
|
||||||
|
|
||||||
####################################
|
########################################
|
||||||
# Copy users into default location #
|
# Update the path to the file location #
|
||||||
####################################
|
########################################
|
||||||
CP_CMD=$(cp "$GITHUB_WORKSPACE/$LINTER_RULES_PATH/$FILE_NAME" "$FILE_LOCATION" 2>&1)
|
declare -g "${LANGUAGE_LINTER_RULES}=$GITHUB_WORKSPACE/$LINTER_RULES_PATH/${!LANGUAGE_FILE_NAME}"
|
||||||
|
|
||||||
###################
|
|
||||||
# Load Error code #
|
|
||||||
###################
|
|
||||||
ERROR_CODE=$?
|
|
||||||
|
|
||||||
##############################
|
|
||||||
# Check the shell for errors #
|
|
||||||
##############################
|
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
|
||||||
echo "ERROR! Failed to set file:[$FILE_NAME] as default!"
|
|
||||||
echo "ERROR:[$CP_CMD]"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
########################################################
|
########################################################
|
||||||
# No user default provided, using the template default #
|
# No user default provided, using the template default #
|
||||||
########################################################
|
########################################################
|
||||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||||
echo " -> Codebase does NOT have file:[$LINTER_RULES_PATH/$FILE_NAME], using Default rules at:[$FILE_LOCATION]"
|
echo " -> Codebase does NOT have file:[$LINTER_RULES_PATH/${!LANGUAGE_FILE_NAME}], using Default rules at:[${!LANGUAGE_LINTER_RULES}]"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function GetStandardRules #################################################
|
#### Function GetStandardRules #################################################
|
||||||
GetStandardRules()
|
GetStandardRules() {
|
||||||
{
|
|
||||||
################
|
################
|
||||||
# Pull In Vars #
|
# Pull In Vars #
|
||||||
################
|
################
|
||||||
|
@ -369,9 +358,9 @@ GetStandardRules()
|
||||||
#########################################
|
#########################################
|
||||||
# Only env vars that are marked as true
|
# Only env vars that are marked as true
|
||||||
GET_ENV_ARRAY=()
|
GET_ENV_ARRAY=()
|
||||||
if [[ "$LINTER" == "javascript" ]]; then
|
if [[ $LINTER == "javascript" ]]; then
|
||||||
mapfile -t GET_ENV_ARRAY < <(yq .env "$JAVASCRIPT_LINTER_RULES" | grep true)
|
mapfile -t GET_ENV_ARRAY < <(yq .env "$JAVASCRIPT_LINTER_RULES" | grep true)
|
||||||
elif [[ "$LINTER" == "typescript" ]]; then
|
elif [[ $LINTER == "typescript" ]]; then
|
||||||
mapfile -t GET_ENV_ARRAY < <(yq .env "$TYPESCRIPT_LINTER_RULES" | grep true)
|
mapfile -t GET_ENV_ARRAY < <(yq .env "$TYPESCRIPT_LINTER_RULES" | grep true)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -385,8 +374,8 @@ GetStandardRules()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# ERROR
|
# ERROR
|
||||||
echo "ERROR! Failed to gain list of ENV vars to load!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to gain list of ENV vars to load!${NC}"
|
||||||
echo "ERROR:[${GET_ENV_ARRAY[*]}]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${GET_ENV_ARRAY[*]}]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -404,8 +393,7 @@ GetStandardRules()
|
||||||
#############################
|
#############################
|
||||||
# Pull out the envs to load #
|
# Pull out the envs to load #
|
||||||
#############################
|
#############################
|
||||||
for ENV in "${GET_ENV_ARRAY[@]}"
|
for ENV in "${GET_ENV_ARRAY[@]}"; do
|
||||||
do
|
|
||||||
#############################
|
#############################
|
||||||
# remove spaces from return #
|
# remove spaces from return #
|
||||||
#############################
|
#############################
|
||||||
|
@ -421,16 +409,15 @@ GetStandardRules()
|
||||||
#########################################
|
#########################################
|
||||||
# Remove trailing and ending whitespace #
|
# Remove trailing and ending whitespace #
|
||||||
#########################################
|
#########################################
|
||||||
if [[ "$LINTER" == "javascript" ]]; then
|
if [[ $LINTER == "javascript" ]]; then
|
||||||
JAVASCRIPT_STANDARD_LINTER_RULES="$(echo -e "${ENV_STRING}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
|
JAVASCRIPT_STANDARD_LINTER_RULES="$(echo -e "${ENV_STRING}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
|
||||||
elif [[ "$LINTER" == "typescript" ]]; then
|
elif [[ $LINTER == "typescript" ]]; then
|
||||||
TYPESCRIPT_STANDARD_LINTER_RULES="$(echo -e "${ENV_STRING}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
|
TYPESCRIPT_STANDARD_LINTER_RULES="$(echo -e "${ENV_STRING}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function DetectOpenAPIFile ################################################
|
#### Function DetectOpenAPIFile ################################################
|
||||||
DetectOpenAPIFile()
|
DetectOpenAPIFile() {
|
||||||
{
|
|
||||||
################
|
################
|
||||||
# Pull in vars #
|
# Pull in vars #
|
||||||
################
|
################
|
||||||
|
@ -439,7 +426,7 @@ DetectOpenAPIFile()
|
||||||
###############################
|
###############################
|
||||||
# Check the file for keywords #
|
# Check the file for keywords #
|
||||||
###############################
|
###############################
|
||||||
grep -E '"openapi":|"swagger":|^openapi:|^swagger:' "$GITHUB_WORKSPACE/$FILE" > /dev/null
|
grep -E '"openapi":|"swagger":|^openapi:|^swagger:' "$FILE" > /dev/null
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# Load the error code #
|
# Load the error code #
|
||||||
|
@ -453,12 +440,12 @@ DetectOpenAPIFile()
|
||||||
########################
|
########################
|
||||||
# Found string in file #
|
# Found string in file #
|
||||||
########################
|
########################
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
###################
|
###################
|
||||||
# No string match #
|
# No string match #
|
||||||
###################
|
###################
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -497,8 +484,7 @@ DetectARMFile()
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function DetectCloudFormationFile #########################################
|
#### Function DetectCloudFormationFile #########################################
|
||||||
DetectCloudFormationFile()
|
DetectCloudFormationFile() {
|
||||||
{
|
|
||||||
################
|
################
|
||||||
# Pull in Vars #
|
# Pull in Vars #
|
||||||
################
|
################
|
||||||
|
@ -527,7 +513,7 @@ DetectCloudFormationFile()
|
||||||
###############################
|
###############################
|
||||||
if jq -e 'has("Resources")' > /dev/null 2>&1 < "$FILE"; then
|
if jq -e 'has("Resources")' > /dev/null 2>&1 < "$FILE"; then
|
||||||
# Check if AWS Alexa or custom
|
# Check if AWS Alexa or custom
|
||||||
if jq ".Resources[].Type" 2>/dev/null | grep -q -E "(AWS|Alexa|Custom)" < "$FILE"; then
|
if jq ".Resources[].Type" 2> /dev/null | grep -q -E "(AWS|Alexa|Custom)" < "$FILE"; then
|
||||||
# Found it
|
# Found it
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
@ -549,8 +535,7 @@ DetectCloudFormationFile()
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function GetGitHubVars ####################################################
|
#### Function GetGitHubVars ####################################################
|
||||||
GetGitHubVars()
|
GetGitHubVars() {
|
||||||
{
|
|
||||||
##########
|
##########
|
||||||
# Prints #
|
# Prints #
|
||||||
##########
|
##########
|
||||||
|
@ -590,7 +575,7 @@ GetGitHubVars()
|
||||||
#################################
|
#################################
|
||||||
# Check if were running locally #
|
# Check if were running locally #
|
||||||
#################################
|
#################################
|
||||||
if [[ "$RUN_LOCAL" != "false" ]]; then
|
if [[ $RUN_LOCAL != "false" ]]; then
|
||||||
##########################################
|
##########################################
|
||||||
# We are running locally for a debug run #
|
# We are running locally for a debug run #
|
||||||
##########################################
|
##########################################
|
||||||
|
@ -611,7 +596,6 @@ GetGitHubVars()
|
||||||
# No need to touch or set the GITHUB_ORG
|
# No need to touch or set the GITHUB_ORG
|
||||||
# No need to touch or set the GITHUB_REPO
|
# No need to touch or set the GITHUB_REPO
|
||||||
|
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# Set the VALIDATE_ALL_CODEBASE #
|
# Set the VALIDATE_ALL_CODEBASE #
|
||||||
#################################
|
#################################
|
||||||
|
@ -621,33 +605,33 @@ GetGitHubVars()
|
||||||
# Validate we have a value #
|
# Validate we have a value #
|
||||||
############################
|
############################
|
||||||
if [ -z "$GITHUB_SHA" ]; then
|
if [ -z "$GITHUB_SHA" ]; then
|
||||||
echo "ERROR! Failed to get [GITHUB_SHA]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_SHA]!${NC}"
|
||||||
echo "ERROR:[$GITHUB_SHA]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_SHA]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[GITHUB_SHA], value:[$GITHUB_SHA]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GITHUB_SHA]${F[B]}, value:${F[W]}[$GITHUB_SHA]${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Validate we have a value #
|
# Validate we have a value #
|
||||||
############################
|
############################
|
||||||
if [ -z "$GITHUB_WORKSPACE" ]; then
|
if [ -z "$GITHUB_WORKSPACE" ]; then
|
||||||
echo "ERROR! Failed to get [GITHUB_WORKSPACE]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_WORKSPACE]!${NC}"
|
||||||
echo "ERROR:[$GITHUB_WORKSPACE]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_WORKSPACE]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[GITHUB_WORKSPACE], value:[$GITHUB_WORKSPACE]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GITHUB_WORKSPACE]${F[B]}, value:${F[W]}[$GITHUB_WORKSPACE]${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Validate we have a value #
|
# Validate we have a value #
|
||||||
############################
|
############################
|
||||||
if [ -z "$GITHUB_EVENT_PATH" ]; then
|
if [ -z "$GITHUB_EVENT_PATH" ]; then
|
||||||
echo "ERROR! Failed to get [GITHUB_EVENT_PATH]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_EVENT_PATH]!${NC}"
|
||||||
echo "ERROR:[$GITHUB_EVENT_PATH]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_EVENT_PATH]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[GITHUB_EVENT_PATH], value:[$GITHUB_EVENT_PATH]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GITHUB_EVENT_PATH]${F[B]}, value:${F[W]}[$GITHUB_EVENT_PATH]${F[B]}${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
|
@ -657,43 +641,42 @@ GetGitHubVars()
|
||||||
######################
|
######################
|
||||||
# Get the GitHub Org #
|
# Get the GitHub Org #
|
||||||
######################
|
######################
|
||||||
GITHUB_ORG=$(jq -r '.repository.owner.login' < "$GITHUB_EVENT_PATH" )
|
GITHUB_ORG=$(jq -r '.repository.owner.login' < "$GITHUB_EVENT_PATH")
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Validate we have a value #
|
# Validate we have a value #
|
||||||
############################
|
############################
|
||||||
if [ -z "$GITHUB_ORG" ]; then
|
if [ -z "$GITHUB_ORG" ]; then
|
||||||
echo "ERROR! Failed to get [GITHUB_ORG]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_ORG]!${NC}"
|
||||||
echo "ERROR:[$GITHUB_ORG]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_ORG]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[GITHUB_ORG], value:[$GITHUB_ORG]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GITHUB_ORG]${F[B]}, value:${F[W]}[$GITHUB_ORG]${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# Get the GitHub Repo #
|
# Get the GitHub Repo #
|
||||||
#######################
|
#######################
|
||||||
GITHUB_REPO=$(jq -r '.repository.name' < "$GITHUB_EVENT_PATH" )
|
GITHUB_REPO=$(jq -r '.repository.name' < "$GITHUB_EVENT_PATH")
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Validate we have a value #
|
# Validate we have a value #
|
||||||
############################
|
############################
|
||||||
if [ -z "$GITHUB_REPO" ]; then
|
if [ -z "$GITHUB_REPO" ]; then
|
||||||
echo "ERROR! Failed to get [GITHUB_REPO]!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_REPO]!${NC}"
|
||||||
echo "ERROR:[$GITHUB_REPO]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_REPO]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Successfully found:[GITHUB_REPO], value:[$GITHUB_REPO]"
|
echo -e "${NC}${F[B]}Successfully found:${F[W]}[GITHUB_REPO]${F[B]}, value:${F[W]}[$GITHUB_REPO]${NC}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function ValidatePowershellModules ########################################
|
#### Function ValidatePowershellModules ########################################
|
||||||
function ValidatePowershellModules()
|
function ValidatePowershellModules() {
|
||||||
{
|
|
||||||
VALIDATE_PSSA_MODULE=$(pwsh -c "(Get-Module -Name PSScriptAnalyzer -ListAvailable | Select-Object -First 1).Name" 2>&1)
|
VALIDATE_PSSA_MODULE=$(pwsh -c "(Get-Module -Name PSScriptAnalyzer -ListAvailable | Select-Object -First 1).Name" 2>&1)
|
||||||
# If module found, ensure Invoke-ScriptAnalyzer command is available
|
# If module found, ensure Invoke-ScriptAnalyzer command is available
|
||||||
if [[ "$VALIDATE_PSSA_MODULE" == "PSScriptAnalyzer" ]]; then
|
if [[ $VALIDATE_PSSA_MODULE == "PSScriptAnalyzer" ]]; then
|
||||||
VALIDATE_PSSA_CMD=$(pwsh -c "(Get-Command Invoke-ScriptAnalyzer | Select-Object -First 1).Name" 2>&1)
|
VALIDATE_PSSA_CMD=$(pwsh -c "(Get-Command Invoke-ScriptAnalyzer | Select-Object -First 1).Name" 2>&1)
|
||||||
else
|
else
|
||||||
# Failed to find module
|
# Failed to find module
|
||||||
|
@ -703,7 +686,7 @@ function ValidatePowershellModules()
|
||||||
#########################################
|
#########################################
|
||||||
# validate we found the script analyzer #
|
# validate we found the script analyzer #
|
||||||
#########################################
|
#########################################
|
||||||
if [[ "$VALIDATE_PSSA_CMD" != "Invoke-ScriptAnalyzer" ]]; then
|
if [[ $VALIDATE_PSSA_CMD != "Invoke-ScriptAnalyzer" ]]; then
|
||||||
# Failed to find module
|
# Failed to find module
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -718,21 +701,20 @@ function ValidatePowershellModules()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# Failed
|
# Failed
|
||||||
echo "ERROR! Failed find module [PSScriptAnalyzer] for [$LINTER_NAME] in system!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed find module [PSScriptAnalyzer] for [$LINTER_NAME] in system!${NC}"
|
||||||
echo "ERROR:[PSSA_MODULE $VALIDATE_PSSA_MODULE] [PSSA_CMD $VALIDATE_PSSA_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[PSSA_MODULE $VALIDATE_PSSA_MODULE] [PSSA_CMD $VALIDATE_PSSA_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# Success
|
# Success
|
||||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||||
echo "Successfully found module [$VALIDATE_PSSA_MODULE] in system"
|
echo -e "${NC}${F[B]}Successfully found module ${F[W]}[$VALIDATE_PSSA_MODULE]${F[B]} in system${NC}"
|
||||||
echo "Successfully found command [$VALIDATE_PSSA_CMD] in system"
|
echo -e "${NC}${F[B]}Successfully found command ${F[W]}[$VALIDATE_PSSA_CMD]${F[B]} in system${NC}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function Footer ###########################################################
|
#### Function Footer ###########################################################
|
||||||
Footer()
|
Footer() {
|
||||||
{
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "----------------------------------------------"
|
echo "----------------------------------------------"
|
||||||
echo "----------------------------------------------"
|
echo "----------------------------------------------"
|
||||||
|
@ -744,8 +726,7 @@ Footer()
|
||||||
##############################
|
##############################
|
||||||
# Prints for errors if found #
|
# Prints for errors if found #
|
||||||
##############################
|
##############################
|
||||||
for LANGUAGE in "${LANGUAGE_ARRAY[@]}"
|
for LANGUAGE in "${LANGUAGE_ARRAY[@]}"; do
|
||||||
do
|
|
||||||
###########################
|
###########################
|
||||||
# Build the error counter #
|
# Build the error counter #
|
||||||
###########################
|
###########################
|
||||||
|
@ -756,7 +737,7 @@ Footer()
|
||||||
##################
|
##################
|
||||||
if [ "${!ERROR_COUNTER}" -ne 0 ]; then
|
if [ "${!ERROR_COUNTER}" -ne 0 ]; then
|
||||||
# Print the goods
|
# Print the goods
|
||||||
echo "ERRORS FOUND in $LANGUAGE:[${!ERROR_COUNTER}]"
|
echo -e "${NC}${B[R]}${F[W]}ERRORS FOUND${NC} in $LANGUAGE:[${!ERROR_COUNTER}]${NC}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -764,47 +745,47 @@ Footer()
|
||||||
# Exit with 0 if errors disabled #
|
# Exit with 0 if errors disabled #
|
||||||
##################################
|
##################################
|
||||||
if [ "$DISABLE_ERRORS" == "true" ]; then
|
if [ "$DISABLE_ERRORS" == "true" ]; then
|
||||||
echo "WARN! Exiting with exit code:[0] as:[DISABLE_ERRORS] was set to:[$DISABLE_ERRORS]"
|
echo -e "${NC}${F[Y]}WARN!${NC} Exiting with exit code:[0] as:[DISABLE_ERRORS] was set to:[$DISABLE_ERRORS]${NC}"
|
||||||
exit 0
|
exit 0
|
||||||
###############################
|
###############################
|
||||||
# Exit with 1 if errors found #
|
# Exit with 1 if errors found #
|
||||||
###############################
|
###############################
|
||||||
elif [ "$ERRORS_FOUND_YML" -ne 0 ] || \
|
elif [ "$ERRORS_FOUND_YML" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_JSON" -ne 0 ] || \
|
[ "$ERRORS_FOUND_JSON" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_XML" -ne 0 ] || \
|
[ "$ERRORS_FOUND_XML" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_MARKDOWN" -ne 0 ] || \
|
[ "$ERRORS_FOUND_MARKDOWN" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_BASH" -ne 0 ] || \
|
[ "$ERRORS_FOUND_BASH" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_PERL" -ne 0 ] || \
|
[ "$ERRORS_FOUND_PERL" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_PHP" -ne 0 ] || \
|
[ "$ERRORS_FOUND_PHP" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_PYTHON" -ne 0 ] || \
|
[ "$ERRORS_FOUND_PYTHON" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_COFFEESCRIPT" -ne 0 ] || \
|
[ "$ERRORS_FOUND_COFFEESCRIPT" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_ANSIBLE" -ne 0 ] || \
|
[ "$ERRORS_FOUND_ANSIBLE" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_JAVASCRIPT_ES" -ne 0 ] || \
|
[ "$ERRORS_FOUND_JAVASCRIPT_ES" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_JAVASCRIPT_STANDARD" -ne 0 ] || \
|
[ "$ERRORS_FOUND_JAVASCRIPT_STANDARD" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_TYPESCRIPT_ES" -ne 0 ] || \
|
[ "$ERRORS_FOUND_TYPESCRIPT_ES" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_TYPESCRIPT_STANDARD" -ne 0 ] || \
|
[ "$ERRORS_FOUND_TYPESCRIPT_STANDARD" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_DOCKER" -ne 0 ] || \
|
[ "$ERRORS_FOUND_DOCKER" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_GO" -ne 0 ] || \
|
[ "$ERRORS_FOUND_GO" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_TERRAFORM" -ne 0 ] || \
|
[ "$ERRORS_FOUND_TERRAFORM" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_POWERSHELL" -ne 0 ] || \
|
[ "$ERRORS_FOUND_POWERSHELL" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_ARM" -ne 0 ] || \
|
[ "$ERRORS_FOUND_ARM" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_RUBY" -ne 0 ] || \
|
[ "$ERRORS_FOUND_RUBY" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_CSS" -ne 0 ] || \
|
[ "$ERRORS_FOUND_CSS" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_CFN" -ne 0 ] || \
|
[ "$ERRORS_FOUND_CFN" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_ENV" -ne 0 ] || \
|
[ "$ERRORS_FOUND_ENV" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_OPENAPI" -ne 0 ] || \
|
[ "$ERRORS_FOUND_OPENAPI" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_PROTOBUF" -ne 0 ] || \
|
[ "$ERRORS_FOUND_PROTOBUF" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_CLOJURE" -ne 0 ] || \
|
[ "$ERRORS_FOUND_CLOJURE" -ne 0 ] ||
|
||||||
[ "$ERRORS_FOUND_KOTLIN" -ne 0 ]; then
|
[ "$ERRORS_FOUND_KOTLIN" -ne 0 ]; then
|
||||||
# Failed exit
|
# Failed exit
|
||||||
echo "Exiting with errors found!"
|
echo -e "${NC}${F[R]}Exiting with errors found!${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
#################
|
#################
|
||||||
# Footer prints #
|
# Footer prints #
|
||||||
#################
|
#################
|
||||||
echo ""
|
echo ""
|
||||||
echo "All file(s) linted successfully with no errors detected"
|
echo -e "${NC}${F[G]}All file(s) linted successfully with no errors detected${NC}"
|
||||||
echo "----------------------------------------------"
|
echo "----------------------------------------------"
|
||||||
echo ""
|
echo ""
|
||||||
# Successful exit
|
# Successful exit
|
||||||
|
@ -836,40 +817,40 @@ GetValidationInfo
|
||||||
# Get the linter rules #
|
# Get the linter rules #
|
||||||
########################
|
########################
|
||||||
# Get YML rules
|
# Get YML rules
|
||||||
GetLinterRules "$YAML_FILE_NAME" "$YAML_LINTER_RULES"
|
GetLinterRules "YAML"
|
||||||
# Get Markdown rules
|
# Get Markdown rules
|
||||||
GetLinterRules "$MD_FILE_NAME" "$MD_LINTER_RULES"
|
GetLinterRules "MD"
|
||||||
# Get Python rules
|
# Get Python rules
|
||||||
GetLinterRules "$PYTHON_FILE_NAME" "$PYTHON_LINTER_RULES"
|
GetLinterRules "PYTHON"
|
||||||
# Get Ruby rules
|
# Get Ruby rules
|
||||||
GetLinterRules "$RUBY_FILE_NAME" "$RUBY_LINTER_RULES"
|
GetLinterRules "RUBY"
|
||||||
# Get Coffeescript rules
|
# Get Coffeescript rules
|
||||||
GetLinterRules "$COFFEE_FILE_NAME" "$COFFEESCRIPT_LINTER_RULES"
|
GetLinterRules "COFFEESCRIPT"
|
||||||
# Get Ansible rules
|
# Get Ansible rules
|
||||||
GetLinterRules "$ANSIBLE_FILE_NAME" "$ANSIBLE_LINTER_RULES"
|
GetLinterRules "ANSIBLE"
|
||||||
# Get JavaScript rules
|
# Get JavaScript rules
|
||||||
GetLinterRules "$JAVASCRIPT_FILE_NAME" "$JAVASCRIPT_LINTER_RULES"
|
GetLinterRules "JAVASCRIPT"
|
||||||
# Get TypeScript rules
|
# Get TypeScript rules
|
||||||
GetLinterRules "$TYPESCRIPT_FILE_NAME" "$TYPESCRIPT_LINTER_RULES"
|
GetLinterRules "TYPESCRIPT"
|
||||||
# Get Golang rules
|
# Get Golang rules
|
||||||
GetLinterRules "$GO_FILE_NAME" "$GO_LINTER_RULES"
|
GetLinterRules "GO"
|
||||||
# Get Docker rules
|
# Get Docker rules
|
||||||
GetLinterRules "$DOCKER_FILE_NAME" "$DOCKER_LINTER_RULES"
|
GetLinterRules "DOCKER"
|
||||||
# Get Terraform rules
|
# Get Terraform rules
|
||||||
GetLinterRules "$TERRAFORM_FILE_NAME" "$TERRAFORM_LINTER_RULES"
|
GetLinterRules "TERRAFORM"
|
||||||
# Get PowerShell rules
|
# Get PowerShell rules
|
||||||
GetLinterRules "$POWERSHELL_FILE_NAME" "$POWERSHELL_LINTER_RULES"
|
GetLinterRules "POWERSHELL"
|
||||||
# Get ARM rules
|
# Get ARM rules
|
||||||
GetLinterRules "$ARM_FILE_NAME" "$ARM_LINTER_RULES"
|
GetLinterRules "ARM"
|
||||||
# Get CSS rules
|
# Get CSS rules
|
||||||
GetLinterRules "$CSS_FILE_NAME" "$CSS_LINTER_RULES"
|
GetLinterRules "CSS"
|
||||||
# Get CFN rules
|
# Get CFN rules
|
||||||
GetLinterRules "$CFN_FILE_NAME" "$CFN_LINTER_RULES"
|
GetLinterRules "CFN"
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# Check if were in verbose mode #
|
# Check if were in verbose mode #
|
||||||
#################################
|
#################################
|
||||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||||
##################################
|
##################################
|
||||||
# Get and print all version info #
|
# Get and print all version info #
|
||||||
##################################
|
##################################
|
||||||
|
@ -879,7 +860,7 @@ fi
|
||||||
###########################################
|
###########################################
|
||||||
# Check to see if this is a test case run #
|
# Check to see if this is a test case run #
|
||||||
###########################################
|
###########################################
|
||||||
if [[ "$TEST_CASE_RUN" != "false" ]]; then
|
if [[ $TEST_CASE_RUN != "false" ]]; then
|
||||||
###########################
|
###########################
|
||||||
# Run only the test cases #
|
# Run only the test cases #
|
||||||
###########################
|
###########################
|
||||||
|
@ -949,7 +930,7 @@ if [ "$VALIDATE_BASH" == "true" ]; then
|
||||||
# Lint the bash files #
|
# Lint the bash files #
|
||||||
#######################
|
#######################
|
||||||
# LintCodebase "FILE_TYPE" "LINTER_NAME" "LINTER_CMD" "FILE_TYPES_REGEX" "FILE_ARRAY"
|
# LintCodebase "FILE_TYPE" "LINTER_NAME" "LINTER_CMD" "FILE_TYPES_REGEX" "FILE_ARRAY"
|
||||||
LintCodebase "BASH" "shellcheck" "shellcheck" ".*\.\(sh\)\$" "${FILE_ARRAY_BASH[@]}"
|
LintCodebase "BASH" "shellcheck" "shellcheck --color" ".*\.\(sh\)\$" "${FILE_ARRAY_BASH[@]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##################
|
##################
|
||||||
|
@ -1050,7 +1031,7 @@ if [ "$VALIDATE_ANSIBLE" == "true" ]; then
|
||||||
# Due to the nature of how we want to validate Ansible, we cannot use the
|
# Due to the nature of how we want to validate Ansible, we cannot use the
|
||||||
# standard loop, since it looks for an ansible folder, excludes certain
|
# standard loop, since it looks for an ansible folder, excludes certain
|
||||||
# files, and looks for additional changes, it should be an outlier
|
# files, and looks for additional changes, it should be an outlier
|
||||||
LintAnsibleFiles
|
LintAnsibleFiles "$ANSIBLE_LINTER_RULES" # Passing rules but not needed, dont want to exclude unused var
|
||||||
fi
|
fi
|
||||||
|
|
||||||
######################
|
######################
|
||||||
|
@ -1214,8 +1195,7 @@ if [ "$VALIDATE_OPENAPI" == "true" ]; then
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
|
|
||||||
mapfile -t LIST_FILES < <(find "$GITHUB_WORKSPACE" -type f -regex ".*\.\(yml\|yaml\|json\)\$" 2>&1)
|
mapfile -t LIST_FILES < <(find "$GITHUB_WORKSPACE" -type f -regex ".*\.\(yml\|yaml\|json\)\$" 2>&1)
|
||||||
for FILE in "${LIST_FILES[@]}"
|
for FILE in "${LIST_FILES[@]}"; do
|
||||||
do
|
|
||||||
if DetectOpenAPIFile "$FILE"; then
|
if DetectOpenAPIFile "$FILE"; then
|
||||||
FILE_ARRAY_OPENAPI+=("$FILE")
|
FILE_ARRAY_OPENAPI+=("$FILE")
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
cat <<EOF
|
cat << EOF
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
/@@#///////@@/(@//@%/(@.@( @@
|
/@@#///////@@/(@//@%/(@.@( @@
|
||||||
|
|
27
lib/termColors.sh
Normal file
27
lib/termColors.sh
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
declare -Agr B=(
|
||||||
|
[B]=$(echo -e "\e[44m")
|
||||||
|
[C]=$(echo -e "\e[46m")
|
||||||
|
[G]=$(echo -e "\e[42m")
|
||||||
|
[K]=$(echo -e "\e[40m")
|
||||||
|
[M]=$(echo -e "\e[45m")
|
||||||
|
[R]=$(echo -e "\e[41m")
|
||||||
|
[W]=$(echo -e "\e[47m")
|
||||||
|
[Y]=$(echo -e "\e[43m")
|
||||||
|
)
|
||||||
|
declare -Agr F=(
|
||||||
|
[B]=$(echo -e "\e[0;34m")
|
||||||
|
[C]=$(echo -e "\e[0;36m")
|
||||||
|
[G]=$(echo -e "\e[0;32m")
|
||||||
|
[K]=$(echo -e "\e[0;30m")
|
||||||
|
[M]=$(echo -e "\e[0;35m")
|
||||||
|
[R]=$(echo -e "\e[0;31m")
|
||||||
|
[W]=$(echo -e "\e[0;37m")
|
||||||
|
[Y]=$(echo -e "\e[0;33m")
|
||||||
|
)
|
||||||
|
readonly NC=$(echo -e "\e[0m")
|
||||||
|
|
||||||
|
export B
|
||||||
|
export F
|
||||||
|
export NC
|
|
@ -9,8 +9,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function GetValidationInfo ################################################
|
#### Function GetValidationInfo ################################################
|
||||||
function GetValidationInfo()
|
function GetValidationInfo() {
|
||||||
{
|
|
||||||
############################################
|
############################################
|
||||||
# Print headers for user provided env vars #
|
# Print headers for user provided env vars #
|
||||||
############################################
|
############################################
|
||||||
|
@ -21,7 +20,7 @@ function GetValidationInfo()
|
||||||
###########################################
|
###########################################
|
||||||
# Skip validation if were running locally #
|
# Skip validation if were running locally #
|
||||||
###########################################
|
###########################################
|
||||||
if [[ "$RUN_LOCAL" != "true" ]]; then
|
if [[ $RUN_LOCAL != "true" ]]; then
|
||||||
###############################
|
###############################
|
||||||
# Convert string to lowercase #
|
# Convert string to lowercase #
|
||||||
###############################
|
###############################
|
||||||
|
@ -29,7 +28,7 @@ function GetValidationInfo()
|
||||||
######################################
|
######################################
|
||||||
# Validate we should check all files #
|
# Validate we should check all files #
|
||||||
######################################
|
######################################
|
||||||
if [[ "$VALIDATE_ALL_CODEBASE" != "false" ]]; then
|
if [[ $VALIDATE_ALL_CODEBASE != "false" ]]; then
|
||||||
# Set to true
|
# Set to true
|
||||||
VALIDATE_ALL_CODEBASE="$DEFAULT_VALIDATE_ALL_CODEBASE"
|
VALIDATE_ALL_CODEBASE="$DEFAULT_VALIDATE_ALL_CODEBASE"
|
||||||
echo "- Validating ALL files in code base..."
|
echo "- Validating ALL files in code base..."
|
||||||
|
@ -78,41 +77,41 @@ function GetValidationInfo()
|
||||||
# Determine if any linters were explicitly set #
|
# Determine if any linters were explicitly set #
|
||||||
################################################
|
################################################
|
||||||
ANY_SET="false"
|
ANY_SET="false"
|
||||||
if [[ -n "$VALIDATE_YAML" || \
|
if [[ -n $VALIDATE_YAML || -n \
|
||||||
-n "$VALIDATE_JSON" || \
|
$VALIDATE_JSON || -n \
|
||||||
-n "$VALIDATE_XML" || \
|
$VALIDATE_XML || -n \
|
||||||
-n "$VALIDATE_MD" || \
|
$VALIDATE_MD || -n \
|
||||||
-n "$VALIDATE_BASH" || \
|
$VALIDATE_BASH || -n \
|
||||||
-n "$VALIDATE_PERL" || \
|
$VALIDATE_PERL || -n \
|
||||||
-n "$VALIDATE_PHP" || \
|
$VALIDATE_PHP || -n \
|
||||||
-n "$VALIDATE_PYTHON" || \
|
$VALIDATE_PYTHON || -n \
|
||||||
-n "$VALIDATE_RUBY" || \
|
$VALIDATE_RUBY || -n \
|
||||||
-n "$VALIDATE_COFFEE" || \
|
$VALIDATE_COFFEE || -n \
|
||||||
-n "$VALIDATE_ANSIBLE" || \
|
$VALIDATE_ANSIBLE || -n \
|
||||||
-n "$VALIDATE_JAVASCRIPT_ES" || \
|
$VALIDATE_JAVASCRIPT_ES || -n \
|
||||||
-n "$VALIDATE_JAVASCRIPT_STANDARD" || \
|
$VALIDATE_JAVASCRIPT_STANDARD || -n \
|
||||||
-n "$VALIDATE_TYPESCRIPT_ES" || \
|
$VALIDATE_TYPESCRIPT_ES || -n \
|
||||||
-n "$VALIDATE_TYPESCRIPT_STANDARD" || \
|
$VALIDATE_TYPESCRIPT_STANDARD || -n \
|
||||||
-n "$VALIDATE_DOCKER" || \
|
$VALIDATE_DOCKER || -n \
|
||||||
-n "$VALIDATE_GO" || \
|
$VALIDATE_GO || -n \
|
||||||
-n "$VALIDATE_TERRAFORM" || \
|
$VALIDATE_TERRAFORM || -n \
|
||||||
-n "$VALIDATE_POWERSHELL" || \
|
$VALIDATE_POWERSHELL || -n \
|
||||||
-n "$VALIDATE_ARM" || \
|
$VALIDATE_ARM || -n \
|
||||||
-n "$VALIDATE_CSS" || \
|
$VALIDATE_CSS || -n \
|
||||||
-n "$VALIDATE_ENV" || \
|
$VALIDATE_ENV || -n \
|
||||||
-n "$VALIDATE_CLOJURE" || \
|
$VALIDATE_CLOJURE || -n \
|
||||||
-n "$VALIDATE_PROTOBUF" || \
|
$VALIDATE_PROTOBUF || -n \
|
||||||
-n "$VALIDATE_OPENAPI" || \
|
$VALIDATE_OPENAPI || -n \
|
||||||
-n "$VALIDATE_KOTLIN" ]]; then
|
$VALIDATE_KOTLIN ]]; then
|
||||||
ANY_SET="true"
|
ANY_SET="true"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# Validate if we should check YAML #
|
# Validate if we should check YAML #
|
||||||
####################################
|
####################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_YAML" ]]; then
|
if [[ -z $VALIDATE_YAML ]]; then
|
||||||
# YAML flag was not set - default to false
|
# YAML flag was not set - default to false
|
||||||
VALIDATE_YAML="false"
|
VALIDATE_YAML="false"
|
||||||
fi
|
fi
|
||||||
|
@ -124,9 +123,9 @@ function GetValidationInfo()
|
||||||
####################################
|
####################################
|
||||||
# Validate if we should check JSON #
|
# Validate if we should check JSON #
|
||||||
####################################
|
####################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_JSON" ]]; then
|
if [[ -z $VALIDATE_JSON ]]; then
|
||||||
# JSON flag was not set - default to false
|
# JSON flag was not set - default to false
|
||||||
VALIDATE_JSON="false"
|
VALIDATE_JSON="false"
|
||||||
fi
|
fi
|
||||||
|
@ -138,9 +137,9 @@ function GetValidationInfo()
|
||||||
###################################
|
###################################
|
||||||
# Validate if we should check XML #
|
# Validate if we should check XML #
|
||||||
###################################
|
###################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_XML" ]]; then
|
if [[ -z $VALIDATE_XML ]]; then
|
||||||
# XML flag was not set - default to false
|
# XML flag was not set - default to false
|
||||||
VALIDATE_XML="false"
|
VALIDATE_XML="false"
|
||||||
fi
|
fi
|
||||||
|
@ -152,9 +151,9 @@ function GetValidationInfo()
|
||||||
########################################
|
########################################
|
||||||
# Validate if we should check MARKDOWN #
|
# Validate if we should check MARKDOWN #
|
||||||
########################################
|
########################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_MD" ]]; then
|
if [[ -z $VALIDATE_MD ]]; then
|
||||||
# MD flag was not set - default to false
|
# MD flag was not set - default to false
|
||||||
VALIDATE_MD="false"
|
VALIDATE_MD="false"
|
||||||
fi
|
fi
|
||||||
|
@ -166,9 +165,9 @@ function GetValidationInfo()
|
||||||
####################################
|
####################################
|
||||||
# Validate if we should check BASH #
|
# Validate if we should check BASH #
|
||||||
####################################
|
####################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_BASH" ]]; then
|
if [[ -z $VALIDATE_BASH ]]; then
|
||||||
# BASH flag was not set - default to false
|
# BASH flag was not set - default to false
|
||||||
VALIDATE_BASH="false"
|
VALIDATE_BASH="false"
|
||||||
fi
|
fi
|
||||||
|
@ -180,9 +179,9 @@ function GetValidationInfo()
|
||||||
####################################
|
####################################
|
||||||
# Validate if we should check PERL #
|
# Validate if we should check PERL #
|
||||||
####################################
|
####################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_PERL" ]]; then
|
if [[ -z $VALIDATE_PERL ]]; then
|
||||||
# PERL flag was not set - default to false
|
# PERL flag was not set - default to false
|
||||||
VALIDATE_PERL="false"
|
VALIDATE_PERL="false"
|
||||||
fi
|
fi
|
||||||
|
@ -194,9 +193,9 @@ function GetValidationInfo()
|
||||||
####################################
|
####################################
|
||||||
# Validate if we should check PHP #
|
# Validate if we should check PHP #
|
||||||
####################################
|
####################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_PHP" ]]; then
|
if [[ -z $VALIDATE_PHP ]]; then
|
||||||
# PHP flag was not set - default to false
|
# PHP flag was not set - default to false
|
||||||
VALIDATE_PHP="false"
|
VALIDATE_PHP="false"
|
||||||
fi
|
fi
|
||||||
|
@ -208,9 +207,9 @@ function GetValidationInfo()
|
||||||
######################################
|
######################################
|
||||||
# Validate if we should check PYTHON #
|
# Validate if we should check PYTHON #
|
||||||
######################################
|
######################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_PYTHON" ]]; then
|
if [[ -z $VALIDATE_PYTHON ]]; then
|
||||||
# PYTHON flag was not set - default to false
|
# PYTHON flag was not set - default to false
|
||||||
VALIDATE_PYTHON="false"
|
VALIDATE_PYTHON="false"
|
||||||
fi
|
fi
|
||||||
|
@ -222,9 +221,9 @@ function GetValidationInfo()
|
||||||
####################################
|
####################################
|
||||||
# Validate if we should check RUBY #
|
# Validate if we should check RUBY #
|
||||||
####################################
|
####################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_RUBY" ]]; then
|
if [[ -z $VALIDATE_RUBY ]]; then
|
||||||
# RUBY flag was not set - default to false
|
# RUBY flag was not set - default to false
|
||||||
VALIDATE_RUBY="false"
|
VALIDATE_RUBY="false"
|
||||||
fi
|
fi
|
||||||
|
@ -236,9 +235,9 @@ function GetValidationInfo()
|
||||||
######################################
|
######################################
|
||||||
# Validate if we should check COFFEE #
|
# Validate if we should check COFFEE #
|
||||||
######################################
|
######################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_COFFEE" ]]; then
|
if [[ -z $VALIDATE_COFFEE ]]; then
|
||||||
# COFFEE flag was not set - default to false
|
# COFFEE flag was not set - default to false
|
||||||
VALIDATE_COFFEE="false"
|
VALIDATE_COFFEE="false"
|
||||||
fi
|
fi
|
||||||
|
@ -250,9 +249,9 @@ function GetValidationInfo()
|
||||||
#######################################
|
#######################################
|
||||||
# Validate if we should check ANSIBLE #
|
# Validate if we should check ANSIBLE #
|
||||||
#######################################
|
#######################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_ANSIBLE" ]]; then
|
if [[ -z $VALIDATE_ANSIBLE ]]; then
|
||||||
# ANSIBLE flag was not set - default to false
|
# ANSIBLE flag was not set - default to false
|
||||||
VALIDATE_ANSIBLE="false"
|
VALIDATE_ANSIBLE="false"
|
||||||
fi
|
fi
|
||||||
|
@ -264,9 +263,9 @@ function GetValidationInfo()
|
||||||
#############################################
|
#############################################
|
||||||
# Validate if we should check JAVASCRIPT_ES #
|
# Validate if we should check JAVASCRIPT_ES #
|
||||||
#############################################
|
#############################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_JAVASCRIPT_ES" ]]; then
|
if [[ -z $VALIDATE_JAVASCRIPT_ES ]]; then
|
||||||
# JAVASCRIPT_ES flag was not set - default to false
|
# JAVASCRIPT_ES flag was not set - default to false
|
||||||
VALIDATE_JAVASCRIPT_ES="false"
|
VALIDATE_JAVASCRIPT_ES="false"
|
||||||
fi
|
fi
|
||||||
|
@ -278,9 +277,9 @@ function GetValidationInfo()
|
||||||
###################################################
|
###################################################
|
||||||
# Validate if we should check JAVASCRIPT_STANDARD #
|
# Validate if we should check JAVASCRIPT_STANDARD #
|
||||||
###################################################
|
###################################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_JAVASCRIPT_STANDARD" ]]; then
|
if [[ -z $VALIDATE_JAVASCRIPT_STANDARD ]]; then
|
||||||
# JAVASCRIPT_STANDARD flag was not set - default to false
|
# JAVASCRIPT_STANDARD flag was not set - default to false
|
||||||
VALIDATE_JAVASCRIPT_STANDARD="false"
|
VALIDATE_JAVASCRIPT_STANDARD="false"
|
||||||
fi
|
fi
|
||||||
|
@ -292,9 +291,9 @@ function GetValidationInfo()
|
||||||
#############################################
|
#############################################
|
||||||
# Validate if we should check TYPESCRIPT_ES #
|
# Validate if we should check TYPESCRIPT_ES #
|
||||||
#############################################
|
#############################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_TYPESCRIPT_ES" ]]; then
|
if [[ -z $VALIDATE_TYPESCRIPT_ES ]]; then
|
||||||
# TYPESCRIPT_ES flag was not set - default to false
|
# TYPESCRIPT_ES flag was not set - default to false
|
||||||
VALIDATE_TYPESCRIPT_ES="false"
|
VALIDATE_TYPESCRIPT_ES="false"
|
||||||
fi
|
fi
|
||||||
|
@ -306,9 +305,9 @@ function GetValidationInfo()
|
||||||
###################################################
|
###################################################
|
||||||
# Validate if we should check TYPESCRIPT_STANDARD #
|
# Validate if we should check TYPESCRIPT_STANDARD #
|
||||||
###################################################
|
###################################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_TYPESCRIPT_STANDARD" ]]; then
|
if [[ -z $VALIDATE_TYPESCRIPT_STANDARD ]]; then
|
||||||
# TYPESCRIPT_STANDARD flag was not set - default to false
|
# TYPESCRIPT_STANDARD flag was not set - default to false
|
||||||
VALIDATE_TYPESCRIPT_STANDARD="false"
|
VALIDATE_TYPESCRIPT_STANDARD="false"
|
||||||
fi
|
fi
|
||||||
|
@ -320,9 +319,9 @@ function GetValidationInfo()
|
||||||
######################################
|
######################################
|
||||||
# Validate if we should check DOCKER #
|
# Validate if we should check DOCKER #
|
||||||
######################################
|
######################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_DOCKER" ]]; then
|
if [[ -z $VALIDATE_DOCKER ]]; then
|
||||||
# DOCKER flag was not set - default to false
|
# DOCKER flag was not set - default to false
|
||||||
VALIDATE_DOCKER="false"
|
VALIDATE_DOCKER="false"
|
||||||
fi
|
fi
|
||||||
|
@ -334,9 +333,9 @@ function GetValidationInfo()
|
||||||
##################################
|
##################################
|
||||||
# Validate if we should check GO #
|
# Validate if we should check GO #
|
||||||
##################################
|
##################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_GO" ]]; then
|
if [[ -z $VALIDATE_GO ]]; then
|
||||||
# GO flag was not set - default to false
|
# GO flag was not set - default to false
|
||||||
VALIDATE_GO="false"
|
VALIDATE_GO="false"
|
||||||
fi
|
fi
|
||||||
|
@ -348,9 +347,9 @@ function GetValidationInfo()
|
||||||
#########################################
|
#########################################
|
||||||
# Validate if we should check TERRAFORM #
|
# Validate if we should check TERRAFORM #
|
||||||
#########################################
|
#########################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_TERRAFORM" ]]; then
|
if [[ -z $VALIDATE_TERRAFORM ]]; then
|
||||||
# TERRAFORM flag was not set - default to false
|
# TERRAFORM flag was not set - default to false
|
||||||
VALIDATE_TERRAFORM="false"
|
VALIDATE_TERRAFORM="false"
|
||||||
fi
|
fi
|
||||||
|
@ -362,9 +361,9 @@ function GetValidationInfo()
|
||||||
#########################################
|
#########################################
|
||||||
# Validate if we should check POWERSHELL #
|
# Validate if we should check POWERSHELL #
|
||||||
#########################################
|
#########################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_POWERSHELL" ]]; then
|
if [[ -z $VALIDATE_POWERSHELL ]]; then
|
||||||
# POWERSHELL flag was not set - default to false
|
# POWERSHELL flag was not set - default to false
|
||||||
VALIDATE_POWERSHELL="false"
|
VALIDATE_POWERSHELL="false"
|
||||||
fi
|
fi
|
||||||
|
@ -390,9 +389,9 @@ function GetValidationInfo()
|
||||||
###################################
|
###################################
|
||||||
# Validate if we should check CSS #
|
# Validate if we should check CSS #
|
||||||
###################################
|
###################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_CSS" ]]; then
|
if [[ -z $VALIDATE_CSS ]]; then
|
||||||
# CSS flag was not set - default to false
|
# CSS flag was not set - default to false
|
||||||
VALIDATE_CSS="false"
|
VALIDATE_CSS="false"
|
||||||
fi
|
fi
|
||||||
|
@ -404,9 +403,9 @@ function GetValidationInfo()
|
||||||
###################################
|
###################################
|
||||||
# Validate if we should check ENV #
|
# Validate if we should check ENV #
|
||||||
###################################
|
###################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_ENV" ]]; then
|
if [[ -z $VALIDATE_ENV ]]; then
|
||||||
# ENV flag was not set - default to false
|
# ENV flag was not set - default to false
|
||||||
VALIDATE_ENV="false"
|
VALIDATE_ENV="false"
|
||||||
fi
|
fi
|
||||||
|
@ -418,9 +417,9 @@ function GetValidationInfo()
|
||||||
######################################
|
######################################
|
||||||
# Validate if we should check KOTLIN #
|
# Validate if we should check KOTLIN #
|
||||||
######################################
|
######################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_KOTLIN" ]]; then
|
if [[ -z $VALIDATE_KOTLIN ]]; then
|
||||||
# ENV flag was not set - default to false
|
# ENV flag was not set - default to false
|
||||||
VALIDATE_KOTLIN="false"
|
VALIDATE_KOTLIN="false"
|
||||||
fi
|
fi
|
||||||
|
@ -432,9 +431,9 @@ function GetValidationInfo()
|
||||||
#######################################
|
#######################################
|
||||||
# Validate if we should check OPENAPI #
|
# Validate if we should check OPENAPI #
|
||||||
#######################################
|
#######################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_OPENAPI" ]]; then
|
if [[ -z $VALIDATE_OPENAPI ]]; then
|
||||||
# OPENAPI flag was not set - default to false
|
# OPENAPI flag was not set - default to false
|
||||||
VALIDATE_OPENAPI="false"
|
VALIDATE_OPENAPI="false"
|
||||||
fi
|
fi
|
||||||
|
@ -446,9 +445,9 @@ function GetValidationInfo()
|
||||||
#######################################
|
#######################################
|
||||||
# Validate if we should check PROTOBUF #
|
# Validate if we should check PROTOBUF #
|
||||||
#######################################
|
#######################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_PROTOBUF" ]]; then
|
if [[ -z $VALIDATE_PROTOBUF ]]; then
|
||||||
# PROTOBUF flag was not set - default to false
|
# PROTOBUF flag was not set - default to false
|
||||||
VALIDATE_PROTOBUF="false"
|
VALIDATE_PROTOBUF="false"
|
||||||
fi
|
fi
|
||||||
|
@ -460,9 +459,9 @@ function GetValidationInfo()
|
||||||
#######################################
|
#######################################
|
||||||
# Validate if we should check Clojure #
|
# Validate if we should check Clojure #
|
||||||
#######################################
|
#######################################
|
||||||
if [[ "$ANY_SET" == "true" ]]; then
|
if [[ $ANY_SET == "true" ]]; then
|
||||||
# Some linter flags were set - only run those set to true
|
# Some linter flags were set - only run those set to true
|
||||||
if [[ -z "$VALIDATE_CLOJURE" ]]; then
|
if [[ -z $VALIDATE_CLOJURE ]]; then
|
||||||
# Clojure flag was not set - default to false
|
# Clojure flag was not set - default to false
|
||||||
VALIDATE_CLOJURE="false"
|
VALIDATE_CLOJURE="false"
|
||||||
fi
|
fi
|
||||||
|
@ -474,132 +473,132 @@ function GetValidationInfo()
|
||||||
#######################################
|
#######################################
|
||||||
# Print which linters we are enabling #
|
# Print which linters we are enabling #
|
||||||
#######################################
|
#######################################
|
||||||
if [[ "$VALIDATE_YAML" == "true" ]]; then
|
if [[ $VALIDATE_YAML == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [YAML] files in code base...")
|
PRINT_ARRAY+=("- Validating [YAML] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [YAML] files in code base...")
|
PRINT_ARRAY+=("- Excluding [YAML] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_JSON" == "true" ]]; then
|
if [[ $VALIDATE_JSON == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [JSON] files in code base...")
|
PRINT_ARRAY+=("- Validating [JSON] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [JSON] files in code base...")
|
PRINT_ARRAY+=("- Excluding [JSON] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_XML" == "true" ]]; then
|
if [[ $VALIDATE_XML == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [XML] files in code base...")
|
PRINT_ARRAY+=("- Validating [XML] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [XML] files in code base...")
|
PRINT_ARRAY+=("- Excluding [XML] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_MD" == "true" ]]; then
|
if [[ $VALIDATE_MD == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [MARKDOWN] files in code base...")
|
PRINT_ARRAY+=("- Validating [MARKDOWN] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [MARKDOWN] files in code base...")
|
PRINT_ARRAY+=("- Excluding [MARKDOWN] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_BASH" == "true" ]]; then
|
if [[ $VALIDATE_BASH == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [BASH] files in code base...")
|
PRINT_ARRAY+=("- Validating [BASH] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [BASH] files in code base...")
|
PRINT_ARRAY+=("- Excluding [BASH] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_PERL" == "true" ]]; then
|
if [[ $VALIDATE_PERL == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [PERL] files in code base...")
|
PRINT_ARRAY+=("- Validating [PERL] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [PERL] files in code base...")
|
PRINT_ARRAY+=("- Excluding [PERL] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_PHP" == "true" ]]; then
|
if [[ $VALIDATE_PHP == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [PHP] files in code base...")
|
PRINT_ARRAY+=("- Validating [PHP] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [PHP] files in code base...")
|
PRINT_ARRAY+=("- Excluding [PHP] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_PYTHON" == "true" ]]; then
|
if [[ $VALIDATE_PYTHON == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [PYTHON] files in code base...")
|
PRINT_ARRAY+=("- Validating [PYTHON] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [PYTHON] files in code base...")
|
PRINT_ARRAY+=("- Excluding [PYTHON] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_RUBY" == "true" ]]; then
|
if [[ $VALIDATE_RUBY == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [RUBY] files in code base...")
|
PRINT_ARRAY+=("- Validating [RUBY] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [RUBY] files in code base...")
|
PRINT_ARRAY+=("- Excluding [RUBY] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_COFFEE" == "true" ]]; then
|
if [[ $VALIDATE_COFFEE == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [COFFEE] files in code base...")
|
PRINT_ARRAY+=("- Validating [COFFEE] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [COFFEE] files in code base...")
|
PRINT_ARRAY+=("- Excluding [COFFEE] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_ANSIBLE" == "true" ]]; then
|
if [[ $VALIDATE_ANSIBLE == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [ANSIBLE] files in code base...")
|
PRINT_ARRAY+=("- Validating [ANSIBLE] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [ANSIBLE] files in code base...")
|
PRINT_ARRAY+=("- Excluding [ANSIBLE] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_JAVASCRIPT_ES" == "true" ]]; then
|
if [[ $VALIDATE_JAVASCRIPT_ES == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [JAVASCRIPT(eslint)] files in code base...")
|
PRINT_ARRAY+=("- Validating [JAVASCRIPT(eslint)] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [JAVASCRIPT(eslint)] files in code base...")
|
PRINT_ARRAY+=("- Excluding [JAVASCRIPT(eslint)] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_JAVASCRIPT_STANDARD" == "true" ]]; then
|
if [[ $VALIDATE_JAVASCRIPT_STANDARD == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [JAVASCRIPT(standard)] files in code base...")
|
PRINT_ARRAY+=("- Validating [JAVASCRIPT(standard)] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [JAVASCRIPT(standard)] files in code base...")
|
PRINT_ARRAY+=("- Excluding [JAVASCRIPT(standard)] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_TYPESCRIPT_ES" == "true" ]]; then
|
if [[ $VALIDATE_TYPESCRIPT_ES == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [TYPESCRIPT(eslint)] files in code base...")
|
PRINT_ARRAY+=("- Validating [TYPESCRIPT(eslint)] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [TYPESCRIPT(eslint)] files in code base...")
|
PRINT_ARRAY+=("- Excluding [TYPESCRIPT(eslint)] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_TYPESCRIPT_STANDARD" == "true" ]]; then
|
if [[ $VALIDATE_TYPESCRIPT_STANDARD == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [TYPESCRIPT(standard)] files in code base...")
|
PRINT_ARRAY+=("- Validating [TYPESCRIPT(standard)] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [TYPESCRIPT(standard)] files in code base...")
|
PRINT_ARRAY+=("- Excluding [TYPESCRIPT(standard)] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_DOCKER" == "true" ]]; then
|
if [[ $VALIDATE_DOCKER == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [DOCKER] files in code base...")
|
PRINT_ARRAY+=("- Validating [DOCKER] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [DOCKER] files in code base...")
|
PRINT_ARRAY+=("- Excluding [DOCKER] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_GO" == "true" ]]; then
|
if [[ $VALIDATE_GO == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [GOLANG] files in code base...")
|
PRINT_ARRAY+=("- Validating [GOLANG] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [GOLANG] files in code base...")
|
PRINT_ARRAY+=("- Excluding [GOLANG] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_TERRAFORM" == "true" ]]; then
|
if [[ $VALIDATE_TERRAFORM == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [TERRAFORM] files in code base...")
|
PRINT_ARRAY+=("- Validating [TERRAFORM] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [TERRAFORM] files in code base...")
|
PRINT_ARRAY+=("- Excluding [TERRAFORM] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_POWERSHELL" == "true" ]]; then
|
if [[ $VALIDATE_POWERSHELL == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [POWERSHELL] files in code base...")
|
PRINT_ARRAY+=("- Validating [POWERSHELL] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [POWERSHELL] files in code base...")
|
PRINT_ARRAY+=("- Excluding [POWERSHELL] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_ARM" == "true" ]]; then
|
if [[ $VALIDATE_ARM == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [ARM] files in code base...")
|
PRINT_ARRAY+=("- Validating [ARM] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [ARM] files in code base...")
|
PRINT_ARRAY+=("- Excluding [ARM] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_CSS" == "true" ]]; then
|
if [[ $VALIDATE_CSS == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [CSS] files in code base...")
|
PRINT_ARRAY+=("- Validating [CSS] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [CSS] files in code base...")
|
PRINT_ARRAY+=("- Excluding [CSS] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_CLOJURE" == "true" ]]; then
|
if [[ $VALIDATE_CLOJURE == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [CLOJURE] files in code base...")
|
PRINT_ARRAY+=("- Validating [CLOJURE] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [CLOJURE] files in code base...")
|
PRINT_ARRAY+=("- Excluding [CLOJURE] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_ENV" == "true" ]]; then
|
if [[ $VALIDATE_ENV == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [ENV] files in code base...")
|
PRINT_ARRAY+=("- Validating [ENV] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [ENV] files in code base...")
|
PRINT_ARRAY+=("- Excluding [ENV] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_KOTLIN" == "true" ]]; then
|
if [[ $VALIDATE_KOTLIN == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [KOTLIN] files in code base...")
|
PRINT_ARRAY+=("- Validating [KOTLIN] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [KOTLIN] files in code base...")
|
PRINT_ARRAY+=("- Excluding [KOTLIN] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_OPENAPI" == "true" ]]; then
|
if [[ $VALIDATE_OPENAPI == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [OPENAPI] files in code base...")
|
PRINT_ARRAY+=("- Validating [OPENAPI] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [OPENAPI] files in code base...")
|
PRINT_ARRAY+=("- Excluding [OPENAPI] files in code base...")
|
||||||
fi
|
fi
|
||||||
if [[ "$VALIDATE_PROTOBUF" == "true" ]]; then
|
if [[ $VALIDATE_PROTOBUF == "true" ]]; then
|
||||||
PRINT_ARRAY+=("- Validating [PROTOBUF] files in code base...")
|
PRINT_ARRAY+=("- Validating [PROTOBUF] files in code base...")
|
||||||
else
|
else
|
||||||
PRINT_ARRAY+=("- Excluding [PROTOBUF] files in code base...")
|
PRINT_ARRAY+=("- Excluding [PROTOBUF] files in code base...")
|
||||||
|
@ -670,12 +669,11 @@ function GetValidationInfo()
|
||||||
###################
|
###################
|
||||||
# Debug on runner #
|
# Debug on runner #
|
||||||
###################
|
###################
|
||||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||||
###########################
|
###########################
|
||||||
# Print the validate info #
|
# Print the validate info #
|
||||||
###########################
|
###########################
|
||||||
for LINE in "${PRINT_ARRAY[@]}"
|
for LINE in "${PRINT_ARRAY[@]}"; do
|
||||||
do
|
|
||||||
echo "$LINE"
|
echo "$LINE"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
142
lib/worker.sh
142
lib/worker.sh
|
@ -9,8 +9,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function LintCodebase #####################################################
|
#### Function LintCodebase #####################################################
|
||||||
function LintCodebase()
|
function LintCodebase() {
|
||||||
{
|
|
||||||
####################
|
####################
|
||||||
# Pull in the vars #
|
# Pull in the vars #
|
||||||
####################
|
####################
|
||||||
|
@ -50,13 +49,13 @@ function LintCodebase()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# Failed
|
# Failed
|
||||||
echo "ERROR! Failed to find [$LINTER_NAME] in system!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find [$LINTER_NAME] in system!${NC}"
|
||||||
echo "ERROR:[$VALIDATE_INSTALL_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$VALIDATE_INSTALL_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# Success
|
# Success
|
||||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||||
echo "Successfully found binary for [$LINTER_NAME] in system"
|
echo -e "${NC}${F[B]}Successfully found binary for ${F[W]}[$LINTER_NAME]${F[B]} in system${NC}"
|
||||||
echo "Location:[$VALIDATE_INSTALL_CMD]"
|
echo "Location:[$VALIDATE_INSTALL_CMD]"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -119,8 +118,7 @@ function LintCodebase()
|
||||||
######################
|
######################
|
||||||
# Print Header array #
|
# Print Header array #
|
||||||
######################
|
######################
|
||||||
for LINE in "${PRINT_ARRAY[@]}"
|
for LINE in "${PRINT_ARRAY[@]}"; do
|
||||||
do
|
|
||||||
#########################
|
#########################
|
||||||
# Print the header info #
|
# Print the header info #
|
||||||
#########################
|
#########################
|
||||||
|
@ -130,8 +128,7 @@ function LintCodebase()
|
||||||
##################
|
##################
|
||||||
# Lint the files #
|
# Lint the files #
|
||||||
##################
|
##################
|
||||||
for FILE in "${LIST_FILES[@]}"
|
for FILE in "${LIST_FILES[@]}"; do
|
||||||
do
|
|
||||||
#####################
|
#####################
|
||||||
# Get the file name #
|
# Get the file name #
|
||||||
#####################
|
#####################
|
||||||
|
@ -164,17 +161,24 @@ function LintCodebase()
|
||||||
# - PowerShell (PSScriptAnalyzer) #
|
# - PowerShell (PSScriptAnalyzer) #
|
||||||
# - ARM (arm-ttk) #
|
# - ARM (arm-ttk) #
|
||||||
####################################
|
####################################
|
||||||
if [[ "$FILE_TYPE" == "POWERSHELL" ]] || [[ "$FILE_TYPE" == "ARM" ]]; then
|
if [[ $FILE_TYPE == "POWERSHELL" ]] || [[ $FILE_TYPE == "ARM" ]]; then
|
||||||
################################
|
################################
|
||||||
# Lint the file with the rules #
|
# Lint the file with the rules #
|
||||||
################################
|
################################
|
||||||
# Need to run PowerShell commands using pwsh -c, also exit with exit code from inner subshell
|
# Need to run PowerShell commands using pwsh -c, also exit with exit code from inner subshell
|
||||||
LINT_CMD=$(cd "$GITHUB_WORKSPACE" || exit; pwsh -NoProfile -NoLogo -Command "$LINTER_COMMAND $FILE; if (\$Error.Count) { exit 1 }"; exit $? 2>&1)
|
LINT_CMD=$(
|
||||||
|
cd "$GITHUB_WORKSPACE" || exit
|
||||||
|
pwsh -NoProfile -NoLogo -Command "$LINTER_COMMAND $FILE; if (\$Error.Count) { exit 1 }"
|
||||||
|
exit $? 2>&1
|
||||||
|
)
|
||||||
else
|
else
|
||||||
################################
|
################################
|
||||||
# Lint the file with the rules #
|
# Lint the file with the rules #
|
||||||
################################
|
################################
|
||||||
LINT_CMD=$(cd "$GITHUB_WORKSPACE" || exit; $LINTER_COMMAND "$FILE" 2>&1)
|
LINT_CMD=$(
|
||||||
|
cd "$GITHUB_WORKSPACE" || exit
|
||||||
|
$LINTER_COMMAND "$FILE" 2>&1
|
||||||
|
)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
|
@ -189,32 +193,31 @@ function LintCodebase()
|
||||||
#########
|
#########
|
||||||
# Error #
|
# Error #
|
||||||
#########
|
#########
|
||||||
echo "ERROR! Found errors in [$LINTER_NAME] linter!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
|
||||||
echo "ERROR:[$LINT_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
|
||||||
# Increment the error count
|
# Increment the error count
|
||||||
(("ERRORS_FOUND_$FILE_TYPE++"))
|
(("ERRORS_FOUND_$FILE_TYPE++"))
|
||||||
else
|
else
|
||||||
###########
|
###########
|
||||||
# Success #
|
# Success #
|
||||||
###########
|
###########
|
||||||
echo " - File:[$FILE_NAME] was linted with [$LINTER_NAME] successfully"
|
echo -e "${NC}${F[B]} - File:${F[W]}[$FILE_NAME]${F[B]} was linted with ${F[W]}[$LINTER_NAME]${F[B]} successfully${NC}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function TestCodebase #####################################################
|
#### Function TestCodebase #####################################################
|
||||||
function TestCodebase()
|
function TestCodebase() {
|
||||||
{
|
|
||||||
####################
|
####################
|
||||||
# Pull in the vars #
|
# Pull in the vars #
|
||||||
####################
|
####################
|
||||||
FILE_TYPE="$1" # Pull the variable and remove from array path (Example: JSON)
|
FILE_TYPE="$1" # Pull the variable and remove from array path (Example: JSON)
|
||||||
LINTER_NAME="$2" # Pull the variable and remove from array path (Example: jsonlint)
|
LINTER_NAME="$2" # Pull the variable and remove from array path (Example: jsonlint)
|
||||||
LINTER_COMMAND="$3" # Pull the variable and remove from array path (Example: jsonlint -c ConfigFile /path/to/file)
|
LINTER_COMMAND="$3" # Pull the variable and remove from array path (Example: jsonlint -c ConfigFile /path/to/file)
|
||||||
FILE_EXTENSIONS="$4" # Pull the variable and remove from array path (Example: *.json)
|
FILE_EXTENSIONS="$4" # Pull the variable and remove from array path (Example: *.json)
|
||||||
INDVIDUAL_TEST_FOLDER="$5" # Folder for specific tests
|
INDVIDUAL_TEST_FOLDER="$5" # Folder for specific tests
|
||||||
TESTS_RAN=0 # Incremented when tests are ran, this will help find failed finds
|
TESTS_RAN=0 # Incremented when tests are ran, this will help find failed finds
|
||||||
|
|
||||||
################
|
################
|
||||||
# print header #
|
# print header #
|
||||||
|
@ -242,12 +245,12 @@ function TestCodebase()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# Failed
|
# Failed
|
||||||
echo "ERROR! Failed to find [$LINTER_NAME] in system!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find [$LINTER_NAME] in system!${NC}"
|
||||||
echo "ERROR:[$VALIDATE_INSTALL_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$VALIDATE_INSTALL_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# Success
|
# Success
|
||||||
echo "Successfully found binary in system"
|
echo -e "${NC}${F[B]}Successfully found binary in system${NC}"
|
||||||
echo "Location:[$VALIDATE_INSTALL_CMD]"
|
echo "Location:[$VALIDATE_INSTALL_CMD]"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -264,8 +267,7 @@ function TestCodebase()
|
||||||
##################
|
##################
|
||||||
# Lint the files #
|
# Lint the files #
|
||||||
##################
|
##################
|
||||||
for FILE in "${LIST_FILES[@]}"
|
for FILE in "${LIST_FILES[@]}"; do
|
||||||
do
|
|
||||||
#####################
|
#####################
|
||||||
# Get the file name #
|
# Get the file name #
|
||||||
#####################
|
#####################
|
||||||
|
@ -275,12 +277,12 @@ function TestCodebase()
|
||||||
# Get the file pass status #
|
# Get the file pass status #
|
||||||
############################
|
############################
|
||||||
# Example: markdown_good_1.md -> good
|
# Example: markdown_good_1.md -> good
|
||||||
FILE_STATUS=$(echo "$FILE_NAME" |cut -f2 -d'_')
|
FILE_STATUS=$(echo "$FILE_NAME" | cut -f2 -d'_')
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# If not found, assume it should be linted successfully #
|
# If not found, assume it should be linted successfully #
|
||||||
#########################################################
|
#########################################################
|
||||||
if [ -z "$FILE_STATUS" ] || [[ "$FILE" == *"README"* ]]; then
|
if [ -z "$FILE_STATUS" ] || [[ $FILE == *"README"* ]]; then
|
||||||
##################################
|
##################################
|
||||||
# Set to good for proper linting #
|
# Set to good for proper linting #
|
||||||
##################################
|
##################################
|
||||||
|
@ -301,8 +303,8 @@ function TestCodebase()
|
||||||
#######################################
|
#######################################
|
||||||
# Check if docker and get folder name #
|
# Check if docker and get folder name #
|
||||||
#######################################
|
#######################################
|
||||||
if [[ "$FILE_TYPE" == "DOCKER" ]]; then
|
if [[ $FILE_TYPE == "DOCKER" ]]; then
|
||||||
if [[ "$FILE" == *"good"* ]]; then
|
if [[ $FILE == *"good"* ]]; then
|
||||||
#############
|
#############
|
||||||
# Good file #
|
# Good file #
|
||||||
#############
|
#############
|
||||||
|
@ -318,7 +320,7 @@ function TestCodebase()
|
||||||
#####################
|
#####################
|
||||||
# Check for ansible #
|
# Check for ansible #
|
||||||
#####################
|
#####################
|
||||||
if [[ "$FILE_TYPE" == "ANSIBLE" ]]; then
|
if [[ $FILE_TYPE == "ANSIBLE" ]]; then
|
||||||
########################################
|
########################################
|
||||||
# Make sure we dont lint certain files #
|
# Make sure we dont lint certain files #
|
||||||
########################################
|
########################################
|
||||||
|
@ -330,18 +332,28 @@ function TestCodebase()
|
||||||
################################
|
################################
|
||||||
# Lint the file with the rules #
|
# Lint the file with the rules #
|
||||||
################################
|
################################
|
||||||
LINT_CMD=$(cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER/$INDVIDUAL_TEST_FOLDER" || exit; $LINTER_COMMAND "$FILE" 2>&1)
|
LINT_CMD=$(
|
||||||
elif [[ "$FILE_TYPE" == "POWERSHELL" ]]; then
|
cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER/$INDVIDUAL_TEST_FOLDER" || exit
|
||||||
|
$LINTER_COMMAND "$FILE" 2>&1
|
||||||
|
)
|
||||||
|
elif [[ $FILE_TYPE == "POWERSHELL" ]]; then
|
||||||
################################
|
################################
|
||||||
# Lint the file with the rules #
|
# Lint the file with the rules #
|
||||||
################################
|
################################
|
||||||
# Need to run PowerShell commands using pwsh -c, also exit with exit code from inner subshell
|
# Need to run PowerShell commands using pwsh -c, also exit with exit code from inner subshell
|
||||||
LINT_CMD=$(cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER" || exit; pwsh -c "($LINTER_COMMAND $FILE)"; exit $? 2>&1)
|
LINT_CMD=$(
|
||||||
|
cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER" || exit
|
||||||
|
pwsh -c "($LINTER_COMMAND $FILE)"
|
||||||
|
exit $? 2>&1
|
||||||
|
)
|
||||||
else
|
else
|
||||||
################################
|
################################
|
||||||
# Lint the file with the rules #
|
# Lint the file with the rules #
|
||||||
################################
|
################################
|
||||||
LINT_CMD=$(cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER" || exit; $LINTER_COMMAND "$FILE" 2>&1)
|
LINT_CMD=$(
|
||||||
|
cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER" || exit
|
||||||
|
$LINTER_COMMAND "$FILE" 2>&1
|
||||||
|
)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
|
@ -352,7 +364,7 @@ function TestCodebase()
|
||||||
########################################
|
########################################
|
||||||
# Check for if it was supposed to pass #
|
# Check for if it was supposed to pass #
|
||||||
########################################
|
########################################
|
||||||
if [[ "$FILE_STATUS" == "good" ]]; then
|
if [[ $FILE_STATUS == "good" ]]; then
|
||||||
##############################
|
##############################
|
||||||
# Check the shell for errors #
|
# Check the shell for errors #
|
||||||
##############################
|
##############################
|
||||||
|
@ -360,9 +372,9 @@ function TestCodebase()
|
||||||
#########
|
#########
|
||||||
# Error #
|
# Error #
|
||||||
#########
|
#########
|
||||||
echo "ERROR! Found errors in [$LINTER_NAME] linter!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
|
||||||
echo "ERROR:[$LINT_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
|
||||||
echo "ERROR: Linter CMD:[$LINTER_COMMAND $FILE]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC} Linter CMD:[$LINTER_COMMAND $FILE]${NC}"
|
||||||
# Increment the error count
|
# Increment the error count
|
||||||
(("ERRORS_FOUND_$FILE_TYPE++"))
|
(("ERRORS_FOUND_$FILE_TYPE++"))
|
||||||
# Increment counter that check was ran
|
# Increment counter that check was ran
|
||||||
|
@ -371,7 +383,7 @@ function TestCodebase()
|
||||||
###########
|
###########
|
||||||
# Success #
|
# Success #
|
||||||
###########
|
###########
|
||||||
echo " - File:[$FILE_NAME] was linted with [$LINTER_NAME] successfully"
|
echo -e "${NC}${F[B]} - File:${F[W]}[$FILE_NAME]${F[B]} was linted with ${F[W]}[$LINTER_NAME]${F[B]} successfully${NC}"
|
||||||
# Increment counter that check was ran
|
# Increment counter that check was ran
|
||||||
((TESTS_RAN++))
|
((TESTS_RAN++))
|
||||||
fi
|
fi
|
||||||
|
@ -386,10 +398,10 @@ function TestCodebase()
|
||||||
#########
|
#########
|
||||||
# Error #
|
# Error #
|
||||||
#########
|
#########
|
||||||
echo "ERROR! Found errors in [$LINTER_NAME] linter!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
|
||||||
echo "ERROR! This file should have failed test case!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} This file should have failed test case!${NC}"
|
||||||
echo "ERROR:[$LINT_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
|
||||||
echo "ERROR: Linter CMD:[$LINTER_COMMAND $FILE]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC} Linter CMD:[$LINTER_COMMAND $FILE]${NC}"
|
||||||
# Increment the error count
|
# Increment the error count
|
||||||
(("ERRORS_FOUND_$FILE_TYPE++"))
|
(("ERRORS_FOUND_$FILE_TYPE++"))
|
||||||
# Increment counter that check was ran
|
# Increment counter that check was ran
|
||||||
|
@ -398,7 +410,7 @@ function TestCodebase()
|
||||||
###########
|
###########
|
||||||
# Success #
|
# Success #
|
||||||
###########
|
###########
|
||||||
echo " - File:[$FILE_NAME] failed test case with [$LINTER_NAME] successfully"
|
echo -e "${NC}${F[B]} - File:${F[W]}[$FILE_NAME]${F[B]} failed test case with ${F[W]}[$LINTER_NAME]${F[B]} successfully${NC}"
|
||||||
# Increment counter that check was ran
|
# Increment counter that check was ran
|
||||||
((TESTS_RAN++))
|
((TESTS_RAN++))
|
||||||
fi
|
fi
|
||||||
|
@ -412,15 +424,14 @@ function TestCodebase()
|
||||||
#################################################
|
#################################################
|
||||||
# We failed to find files and no tests were ran #
|
# We failed to find files and no tests were ran #
|
||||||
#################################################
|
#################################################
|
||||||
echo "ERROR! Failed to find any tests ran for the Linter:[$LINTER_NAME]"!
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find any tests ran for the Linter:[$LINTER_NAME]${NC}"!
|
||||||
echo "Please validate logic or that tests exist!"
|
echo "Please validate logic or that tests exist!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function RunTestCases #####################################################
|
#### Function RunTestCases #####################################################
|
||||||
function RunTestCases()
|
function RunTestCases() {
|
||||||
{
|
|
||||||
# This loop will run the test cases and exclude user code
|
# This loop will run the test cases and exclude user code
|
||||||
# This is called from the automation process to validate new code
|
# This is called from the automation process to validate new code
|
||||||
# When a PR is opened, the new code is validated with the default branch
|
# When a PR is opened, the new code is validated with the default branch
|
||||||
|
@ -446,7 +457,7 @@ function RunTestCases()
|
||||||
TestCodebase "JSON" "jsonlint" "jsonlint" ".*\.\(json\)\$" "json"
|
TestCodebase "JSON" "jsonlint" "jsonlint" ".*\.\(json\)\$" "json"
|
||||||
TestCodebase "XML" "xmllint" "xmllint" ".*\.\(xml\)\$" "xml"
|
TestCodebase "XML" "xmllint" "xmllint" ".*\.\(xml\)\$" "xml"
|
||||||
TestCodebase "MARKDOWN" "markdownlint" "markdownlint -c $MD_LINTER_RULES" ".*\.\(md\)\$" "markdown"
|
TestCodebase "MARKDOWN" "markdownlint" "markdownlint -c $MD_LINTER_RULES" ".*\.\(md\)\$" "markdown"
|
||||||
TestCodebase "BASH" "shellcheck" "shellcheck" ".*\.\(sh\)\$" "shell"
|
TestCodebase "BASH" "shellcheck" "shellcheck --color" ".*\.\(sh\)\$" "shell"
|
||||||
TestCodebase "PYTHON" "pylint" "pylint --rcfile $PYTHON_LINTER_RULES" ".*\.\(py\)\$" "python"
|
TestCodebase "PYTHON" "pylint" "pylint --rcfile $PYTHON_LINTER_RULES" ".*\.\(py\)\$" "python"
|
||||||
TestCodebase "PERL" "perl" "perl -Mstrict -cw" ".*\.\(pl\)\$" "perl"
|
TestCodebase "PERL" "perl" "perl -Mstrict -cw" ".*\.\(pl\)\$" "perl"
|
||||||
TestCodebase "PHP" "php" "php -l" ".*\.\(php\)\$" "php"
|
TestCodebase "PHP" "php" "php -l" ".*\.\(php\)\$" "php"
|
||||||
|
@ -479,8 +490,7 @@ function RunTestCases()
|
||||||
}
|
}
|
||||||
################################################################################
|
################################################################################
|
||||||
#### Function LintAnsibleFiles #################################################
|
#### Function LintAnsibleFiles #################################################
|
||||||
function LintAnsibleFiles()
|
function LintAnsibleFiles() {
|
||||||
{
|
|
||||||
######################
|
######################
|
||||||
# Create Print Array #
|
# Create Print Array #
|
||||||
######################
|
######################
|
||||||
|
@ -516,14 +526,14 @@ function LintAnsibleFiles()
|
||||||
##############################
|
##############################
|
||||||
if [ $ERROR_CODE -ne 0 ]; then
|
if [ $ERROR_CODE -ne 0 ]; then
|
||||||
# Failed
|
# Failed
|
||||||
echo "ERROR! Failed to find $LINTER_NAME in system!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find $LINTER_NAME in system!${NC}"
|
||||||
echo "ERROR:[$VALIDATE_INSTALL_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$VALIDATE_INSTALL_CMD]${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# Success
|
# Success
|
||||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||||
# Success
|
# Success
|
||||||
echo "Successfully found binary in system"
|
echo -e "${NC}${F[B]}Successfully found binary in system${NC}"
|
||||||
echo "Location:[$VALIDATE_INSTALL_CMD]"
|
echo "Location:[$VALIDATE_INSTALL_CMD]"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -571,8 +581,7 @@ function LintAnsibleFiles()
|
||||||
# Check if we have data to look at #
|
# Check if we have data to look at #
|
||||||
####################################
|
####################################
|
||||||
if [ $SKIP_FLAG -eq 0 ]; then
|
if [ $SKIP_FLAG -eq 0 ]; then
|
||||||
for LINE in "${PRINT_ARRAY[@]}"
|
for LINE in "${PRINT_ARRAY[@]}"; do
|
||||||
do
|
|
||||||
#########################
|
#########################
|
||||||
# Print the header line #
|
# Print the header line #
|
||||||
#########################
|
#########################
|
||||||
|
@ -583,8 +592,7 @@ function LintAnsibleFiles()
|
||||||
##################
|
##################
|
||||||
# Lint the files #
|
# Lint the files #
|
||||||
##################
|
##################
|
||||||
for FILE in "${LIST_FILES[@]}"
|
for FILE in "${LIST_FILES[@]}"; do
|
||||||
do
|
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
# Make sure we dont lint certain files #
|
# Make sure we dont lint certain files #
|
||||||
|
@ -622,26 +630,26 @@ function LintAnsibleFiles()
|
||||||
#########
|
#########
|
||||||
# Error #
|
# Error #
|
||||||
#########
|
#########
|
||||||
echo "ERROR! Found errors in [$LINTER_NAME] linter!"
|
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
|
||||||
echo "ERROR:[$LINT_CMD]"
|
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
|
||||||
# Increment error count
|
# Increment error count
|
||||||
((ERRORS_FOUND_ANSIBLE++))
|
((ERRORS_FOUND_ANSIBLE++))
|
||||||
else
|
else
|
||||||
###########
|
###########
|
||||||
# Success #
|
# Success #
|
||||||
###########
|
###########
|
||||||
echo " - File:[$FILE_NAME] was linted with [$LINTER_NAME] successfully"
|
echo -e "${NC}${F[B]} - File:${F[W]}[$FILE_NAME]${F[B]} was linted with ${F[W]}[$LINTER_NAME]${F[B]} successfully${NC}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
else # No ansible directory found in path
|
else # No ansible directory found in path
|
||||||
###############################
|
###############################
|
||||||
# Check to see if debug is on #
|
# Check to see if debug is on #
|
||||||
###############################
|
###############################
|
||||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||||
########################
|
########################
|
||||||
# No Ansible dir found #
|
# No Ansible dir found #
|
||||||
########################
|
########################
|
||||||
echo "WARN! No Ansible base directory found at:[$ANSIBLE_DIRECTORY]"
|
echo -e "${NC}${F[Y]}WARN!${NC} No Ansible base directory found at:[$ANSIBLE_DIRECTORY]${NC}"
|
||||||
echo "skipping ansible lint"
|
echo "skipping ansible lint"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue