mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-21 21:50:59 -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 #
|
||||
###########
|
||||
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # GitHub Workspace
|
||||
DOCKER_USERNAME="${DOCKER_USERNAME}" # Username to login to DockerHub
|
||||
DOCKER_PASSWORD="${DOCKER_PASSWORD}" # Password to login to DockerHub
|
||||
IMAGE_REPO="${IMAGE_REPO}" # Image repo to upload the image
|
||||
IMAGE_VERSION="${IMAGE_VERSION}" # Version to tag the image
|
||||
DOCKERFILE_PATH="${DOCKERFILE_PATH}" # Path to the Dockerfile to be uploaded
|
||||
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # GitHub Workspace
|
||||
DOCKER_USERNAME="${DOCKER_USERNAME}" # Username to login to DockerHub
|
||||
DOCKER_PASSWORD="${DOCKER_PASSWORD}" # Password to login to DockerHub
|
||||
IMAGE_REPO="${IMAGE_REPO}" # Image repo to upload the image
|
||||
IMAGE_VERSION="${IMAGE_VERSION}" # Version to tag the image
|
||||
DOCKERFILE_PATH="${DOCKERFILE_PATH}" # Path to the Dockerfile to be uploaded
|
||||
|
||||
################################################################################
|
||||
############################ FUNCTIONS BELOW ###################################
|
||||
################################################################################
|
||||
################################################################################
|
||||
#### Function Header ###########################################################
|
||||
Header()
|
||||
{
|
||||
Header() {
|
||||
echo ""
|
||||
echo "-------------------------------------------------------"
|
||||
echo "----- GitHub Actions remove image from DockerHub ------"
|
||||
|
@ -38,8 +37,7 @@ Header()
|
|||
}
|
||||
################################################################################
|
||||
#### Function ValidateInput ####################################################
|
||||
ValidateInput()
|
||||
{
|
||||
ValidateInput() {
|
||||
# Need to validate we have the basic variables
|
||||
################
|
||||
# Print header #
|
||||
|
@ -54,8 +52,8 @@ ValidateInput()
|
|||
# Validate GITHUB_WORKSPACE #
|
||||
############################
|
||||
if [ -z "$GITHUB_WORKSPACE" ]; then
|
||||
echo "ERROR! Failed to get [GITHUB_WORKSPACE]!"
|
||||
echo "ERROR:[$GITHUB_WORKSPACE]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_WORKSPACE]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_WORKSPACE]${NC}"
|
||||
exit 1
|
||||
else
|
||||
echo "Successfully found:[GITHUB_WORKSPACE], value:[$GITHUB_WORKSPACE]"
|
||||
|
@ -66,15 +64,15 @@ ValidateInput()
|
|||
#######################
|
||||
if [ -z "$IMAGE_REPO" ]; then
|
||||
# No repo was pulled
|
||||
echo "ERROR! Failed to get [IMAGE_REPO]!"
|
||||
echo "ERROR:[$IMAGE_REPO]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [IMAGE_REPO]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$IMAGE_REPO]${NC}"
|
||||
exit 1
|
||||
elif [[ "$IMAGE_REPO" == "github/super-linter" ]]; then
|
||||
elif [[ $IMAGE_REPO == "github/super-linter" ]]; then
|
||||
# Found our main repo
|
||||
echo "Successfully found:[IMAGE_REPO], value:[$IMAGE_REPO]"
|
||||
else
|
||||
# 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
|
||||
fi
|
||||
|
||||
|
@ -82,8 +80,8 @@ ValidateInput()
|
|||
# Validate IMAGE_VERSION #
|
||||
##########################
|
||||
if [ -z "$IMAGE_VERSION" ]; then
|
||||
echo "ERROR! Failed to get [IMAGE_VERSION]!"
|
||||
echo "ERROR:[$IMAGE_VERSION]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [IMAGE_VERSION]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$IMAGE_VERSION]${NC}"
|
||||
exit 1
|
||||
else
|
||||
echo "Successfully found:[IMAGE_VERSION], value:[$IMAGE_VERSION]"
|
||||
|
@ -93,8 +91,8 @@ ValidateInput()
|
|||
# Validate DOCKER_USERNAME #
|
||||
############################
|
||||
if [ -z "$DOCKER_USERNAME" ]; then
|
||||
echo "ERROR! Failed to get [DOCKER_USERNAME]!"
|
||||
echo "ERROR:[$DOCKER_USERNAME]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_USERNAME]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_USERNAME]${NC}"
|
||||
exit 1
|
||||
else
|
||||
echo "Successfully found:[DOCKER_USERNAME], value:[$DOCKER_USERNAME]"
|
||||
|
@ -104,8 +102,8 @@ ValidateInput()
|
|||
# Validate DOCKER_PASSWORD #
|
||||
############################
|
||||
if [ -z "$DOCKER_PASSWORD" ]; then
|
||||
echo "ERROR! Failed to get [DOCKER_PASSWORD]!"
|
||||
echo "ERROR:[$DOCKER_PASSWORD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_PASSWORD]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_PASSWORD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
echo "Successfully found:[DOCKER_PASSWORD], value:[********]"
|
||||
|
@ -114,7 +112,7 @@ ValidateInput()
|
|||
##################################################
|
||||
# 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 #
|
||||
##################################
|
||||
|
@ -131,8 +129,7 @@ ValidateInput()
|
|||
}
|
||||
################################################################################
|
||||
#### Function LoginToDocker ####################################################
|
||||
LoginToDocker()
|
||||
{
|
||||
LoginToDocker() {
|
||||
################
|
||||
# Print header #
|
||||
################
|
||||
|
@ -157,8 +154,8 @@ LoginToDocker()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo "ERROR! Failed to authenticate to DockerHub!"
|
||||
echo "ERROR:[$LOGIN_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to authenticate to DockerHub!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LOGIN_CMD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
# SUCCESS
|
||||
|
@ -167,8 +164,7 @@ LoginToDocker()
|
|||
}
|
||||
################################################################################
|
||||
#### Function RemoveImage ######################################################
|
||||
RemoveImage()
|
||||
{
|
||||
RemoveImage() {
|
||||
################
|
||||
# Print header #
|
||||
################
|
||||
|
@ -187,23 +183,23 @@ RemoveImage()
|
|||
-d "{\"username\": \"$DOCKER_USERNAME\", \"password\": \"$DOCKER_PASSWORD\"}" \
|
||||
"https://hub.docker.com/v2/users/login/" | jq -r .token 2>&1)
|
||||
|
||||
#######################
|
||||
# Load the ERROR_CODE #
|
||||
#######################
|
||||
ERROR_CODE=$?
|
||||
#######################
|
||||
# Load the ERROR_CODE #
|
||||
#######################
|
||||
ERROR_CODE=$?
|
||||
|
||||
##############################
|
||||
# Check the shell for errors #
|
||||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo "ERROR! Failed to gain token from DockerHub!"
|
||||
echo "ERROR:[$TOKEN]"
|
||||
exit 1
|
||||
else
|
||||
# SUCCESS
|
||||
echo "Successfully gained auth token from DockerHub!"
|
||||
fi
|
||||
##############################
|
||||
# Check the shell for errors #
|
||||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to gain token from DockerHub!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$TOKEN]${NC}"
|
||||
exit 1
|
||||
else
|
||||
# SUCCESS
|
||||
echo "Successfully gained auth token from DockerHub!"
|
||||
fi
|
||||
|
||||
#################################
|
||||
# Remove the tag from DockerHub #
|
||||
|
@ -222,8 +218,8 @@ RemoveImage()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo "ERROR! Failed to remove tag from DockerHub!"
|
||||
echo "ERROR:[$REMOVE_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to remove tag from DockerHub!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$REMOVE_CMD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
# SUCCESS
|
||||
|
@ -232,8 +228,7 @@ RemoveImage()
|
|||
}
|
||||
################################################################################
|
||||
#### Function Footer ###########################################################
|
||||
Footer()
|
||||
{
|
||||
Footer() {
|
||||
echo ""
|
||||
echo "-------------------------------------------------------"
|
||||
echo "The step has completed"
|
||||
|
|
|
@ -53,8 +53,8 @@ CheckGHEPid()
|
|||
# Check the shell for errors #
|
||||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
echo "ERROR! Failed to sleep!"
|
||||
echo "ERROR:[$SLEEP_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to sleep!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SLEEP_CMD]${NC}"
|
||||
echo "Will try to call apply as last effort..."
|
||||
####################################
|
||||
# Call config apply as last effort #
|
||||
|
@ -117,8 +117,8 @@ CheckGHEProcess()
|
|||
# Check the shell for errors #
|
||||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
echo "ERROR! Failed to sleep!"
|
||||
echo "ERROR:[$SLEEP_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to sleep!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$SLEEP_CMD]${NC}"
|
||||
echo "Will try to call apply as last effort..."
|
||||
####################################
|
||||
# Call config apply as last effort #
|
||||
|
@ -161,12 +161,12 @@ RunConfigApply()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# Errors
|
||||
echo "ERROR! Failed to run config apply command!"
|
||||
echo "ERROR:[$APPLY_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to run config apply command!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$APPLY_CMD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
# Success
|
||||
echo "Successfully ran $GHE_APPLY_COMMAND"
|
||||
echo -e "${NC}${F[B]}Successfully ran ${F[C]}$GHE_APPLY_COMMAND${NC}"
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
|
|
|
@ -17,25 +17,24 @@
|
|||
###########
|
||||
# Globals #
|
||||
###########
|
||||
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # GitHub Workspace
|
||||
DOCKER_USERNAME="${DOCKER_USERNAME}" # Username 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_TOKEN="${GPR_TOKEN}" # Password to login to GitHub package registry
|
||||
REGISTRY="${REGISTRY}" # What registry to upload | <GPR> or <Docker>
|
||||
IMAGE_REPO="${IMAGE_REPO}" # Image repo to upload the image
|
||||
IMAGE_VERSION="${IMAGE_VERSION}" # Version to tag the image
|
||||
DOCKERFILE_PATH="${DOCKERFILE_PATH}" # Path to the Dockerfile to be uploaded
|
||||
MAJOR_TAG='' # Major tag version if we need to update it
|
||||
UPDATE_MAJOR_TAG=0 # Flag to deploy the major tag version as well
|
||||
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # GitHub Workspace
|
||||
DOCKER_USERNAME="${DOCKER_USERNAME}" # Username 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_TOKEN="${GPR_TOKEN}" # Password to login to GitHub package registry
|
||||
REGISTRY="${REGISTRY}" # What registry to upload | <GPR> or <Docker>
|
||||
IMAGE_REPO="${IMAGE_REPO}" # Image repo to upload the image
|
||||
IMAGE_VERSION="${IMAGE_VERSION}" # Version to tag the image
|
||||
DOCKERFILE_PATH="${DOCKERFILE_PATH}" # Path to the Dockerfile to be uploaded
|
||||
MAJOR_TAG='' # Major tag version if we need to update it
|
||||
UPDATE_MAJOR_TAG=0 # Flag to deploy the major tag version as well
|
||||
|
||||
################################################################################
|
||||
############################ FUNCTIONS BELOW ###################################
|
||||
################################################################################
|
||||
################################################################################
|
||||
#### Function Header ###########################################################
|
||||
Header()
|
||||
{
|
||||
Header() {
|
||||
echo ""
|
||||
echo "-------------------------------------------------------"
|
||||
echo "---- GitHub Actions Upload image to [$REGISTRY] ----"
|
||||
|
@ -44,8 +43,7 @@ Header()
|
|||
}
|
||||
################################################################################
|
||||
#### Function ValidateInput ####################################################
|
||||
ValidateInput()
|
||||
{
|
||||
ValidateInput() {
|
||||
# Need to validate we have the basic variables
|
||||
################
|
||||
# Print header #
|
||||
|
@ -60,97 +58,96 @@ ValidateInput()
|
|||
# Validate GITHUB_WORKSPACE #
|
||||
#############################
|
||||
if [ -z "$GITHUB_WORKSPACE" ]; then
|
||||
echo "ERROR! Failed to get [GITHUB_WORKSPACE]!"
|
||||
echo "ERROR:[$GITHUB_WORKSPACE]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_WORKSPACE]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_WORKSPACE]${NC}"
|
||||
exit 1
|
||||
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
|
||||
|
||||
#####################
|
||||
# Validate REGISTRY #
|
||||
#####################
|
||||
if [ -z "$REGISTRY" ]; then
|
||||
echo "ERROR! Failed to get [REGISTRY]!"
|
||||
echo "ERROR:[$REGISTRY]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [REGISTRY]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$REGISTRY]${NC}"
|
||||
exit 1
|
||||
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
|
||||
|
||||
#####################################################
|
||||
# See if we need values for GitHub package Registry #
|
||||
#####################################################
|
||||
if [[ "$REGISTRY" == "GPR" ]]; then
|
||||
if [[ $REGISTRY == "GPR" ]]; then
|
||||
#########################
|
||||
# Validate GPR_USERNAME #
|
||||
#########################
|
||||
if [ -z "$GPR_USERNAME" ]; then
|
||||
echo "ERROR! Failed to get [GPR_USERNAME]!"
|
||||
echo "ERROR:[$GPR_USERNAME]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GPR_USERNAME]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GPR_USERNAME]${NC}"
|
||||
exit 1
|
||||
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
|
||||
|
||||
######################
|
||||
# Validate GPR_TOKEN #
|
||||
######################
|
||||
if [ -z "$GPR_TOKEN" ]; then
|
||||
echo "ERROR! Failed to get [GPR_TOKEN]!"
|
||||
echo "ERROR:[$GPR_TOKEN]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GPR_TOKEN]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GPR_TOKEN]${NC}"
|
||||
exit 1
|
||||
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
|
||||
########################################
|
||||
# See if we need values for Ducker hub #
|
||||
########################################
|
||||
elif [[ "$REGISTRY" == "Docker" ]]; then
|
||||
elif [[ $REGISTRY == "Docker" ]]; then
|
||||
############################
|
||||
# Validate DOCKER_USERNAME #
|
||||
############################
|
||||
if [ -z "$DOCKER_USERNAME" ]; then
|
||||
echo "ERROR! Failed to get [DOCKER_USERNAME]!"
|
||||
echo "ERROR:[$DOCKER_USERNAME]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_USERNAME]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_USERNAME]${NC}"
|
||||
exit 1
|
||||
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
|
||||
|
||||
############################
|
||||
# Validate DOCKER_PASSWORD #
|
||||
############################
|
||||
if [ -z "$DOCKER_PASSWORD" ]; then
|
||||
echo "ERROR! Failed to get [DOCKER_PASSWORD]!"
|
||||
echo "ERROR:[$DOCKER_PASSWORD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKER_PASSWORD]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKER_PASSWORD]${NC}"
|
||||
exit 1
|
||||
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
|
||||
###########################################
|
||||
# We were not passed a registry to update #
|
||||
###########################################
|
||||
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]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
#######################
|
||||
# Validate IMAGE_REPO #
|
||||
#######################
|
||||
if [ -z "$IMAGE_REPO" ]; then
|
||||
echo "ERROR! Failed to get [IMAGE_REPO]!"
|
||||
echo "ERROR:[$IMAGE_REPO]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [IMAGE_REPO]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$IMAGE_REPO]${NC}"
|
||||
exit 1
|
||||
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 #
|
||||
###############################################
|
||||
if [[ "$REGISTRY" == "GPR" ]]; then
|
||||
if [[ $REGISTRY == "GPR" ]]; then
|
||||
NAME="docker.pkg.github.com/$IMAGE_REPO/super-linter"
|
||||
IMAGE_REPO="$NAME"
|
||||
echo "Updated [IMAGE_REPO] to:[$IMAGE_REPO] for GPR"
|
||||
|
@ -161,12 +158,12 @@ ValidateInput()
|
|||
# Validate IMAGE_VERSION #
|
||||
##########################
|
||||
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..."
|
||||
##############################
|
||||
# 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 #
|
||||
|
@ -177,8 +174,8 @@ ValidateInput()
|
|||
# Check the shell for errors #
|
||||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
echo "ERROR! Failed to get branch name!"
|
||||
echo "ERROR:[$BRANCH_NAME]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get branch name!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$BRANCH_NAME]${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -193,7 +190,7 @@ ValidateInput()
|
|||
IMAGE_VERSION="$BRANCH_NAME"
|
||||
echo "Tag:[$IMAGE_VERSION]"
|
||||
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
|
||||
|
||||
##################################
|
||||
|
@ -204,7 +201,7 @@ ValidateInput()
|
|||
######################################################################
|
||||
# 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
|
||||
|
||||
#####################
|
||||
|
@ -224,24 +221,23 @@ ValidateInput()
|
|||
# Validate DOCKERFILE_PATH #
|
||||
############################
|
||||
if [ -z "$DOCKERFILE_PATH" ]; then
|
||||
echo "ERROR! Failed to get [DOCKERFILE_PATH]!"
|
||||
echo "ERROR:[$DOCKERFILE_PATH]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [DOCKERFILE_PATH]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$DOCKERFILE_PATH]${NC}"
|
||||
exit 1
|
||||
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
|
||||
}
|
||||
################################################################################
|
||||
#### Function Authenticate #####################################################
|
||||
Authenticate()
|
||||
{
|
||||
Authenticate() {
|
||||
################
|
||||
# Pull in Vars #
|
||||
################
|
||||
USERNAME="$1" # Name to auth with
|
||||
PASSWORD="$2" # Password to auth with
|
||||
URL="$3" # Url to auth towards
|
||||
NAME="$4" # name of the service
|
||||
USERNAME="$1" # Name to auth with
|
||||
PASSWORD="$2" # Password to auth with
|
||||
URL="$3" # Url to auth towards
|
||||
NAME="$4" # name of the service
|
||||
|
||||
################
|
||||
# Print header #
|
||||
|
@ -267,18 +263,17 @@ Authenticate()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo "ERROR! Failed to authenticate to $NAME!"
|
||||
echo "ERROR:[$LOGIN_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to authenticate to $NAME!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LOGIN_CMD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
# SUCCESS
|
||||
echo "Successfully authenticated to $NAME!"
|
||||
echo -e "${NC}${F[B]}Successfully authenticated to ${F[C]}$NAME${F[B]}!${NC}"
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
#### Function BuildImage #######################################################
|
||||
BuildImage()
|
||||
{
|
||||
BuildImage() {
|
||||
################
|
||||
# Print header #
|
||||
################
|
||||
|
@ -293,7 +288,7 @@ BuildImage()
|
|||
################################
|
||||
if [ ! -f "$DOCKERFILE_PATH" ]; then
|
||||
# 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 "Example:[/configs/Dockerfile] or [Dockerfile] if at root directory"
|
||||
exit 1
|
||||
|
@ -314,11 +309,11 @@ BuildImage()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo "ERROR! failed to [build] Dockerfile!"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [build] Dockerfile!${NC}"
|
||||
exit 1
|
||||
else
|
||||
# SUCCESS
|
||||
echo "Successfully Built image!"
|
||||
echo -e "${NC}${F[B]}Successfully Built image!${NC}"
|
||||
fi
|
||||
|
||||
########################################################
|
||||
|
@ -338,18 +333,17 @@ BuildImage()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo "ERROR! failed to [tag] Dockerfile!"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [tag] Dockerfile!${NC}"
|
||||
exit 1
|
||||
else
|
||||
# SUCCESS
|
||||
echo "Successfully tagged image!"
|
||||
echo -e "${NC}${F[B]}Successfully tagged image!${NC}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
#### Function UploadImage ######################################################
|
||||
UploadImage()
|
||||
{
|
||||
UploadImage() {
|
||||
################
|
||||
# Print header #
|
||||
################
|
||||
|
@ -374,11 +368,11 @@ UploadImage()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo "ERROR! failed to [upload] Dockerfile!"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} failed to [upload] Dockerfile!${NC}"
|
||||
exit 1
|
||||
else
|
||||
# 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
|
||||
|
||||
#########################
|
||||
|
@ -397,8 +391,8 @@ UploadImage()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo "ERROR! Failed to get information about built Image!"
|
||||
echo "ERROR:[$GET_INFO_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get information about built Image!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GET_INFO_CMD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
################
|
||||
|
@ -440,18 +434,17 @@ UploadImage()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# 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
|
||||
else
|
||||
# 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
|
||||
}
|
||||
################################################################################
|
||||
#### Function Footer ###########################################################
|
||||
Footer()
|
||||
{
|
||||
Footer() {
|
||||
echo ""
|
||||
echo "-------------------------------------------------------"
|
||||
echo "The step has completed"
|
||||
|
@ -480,14 +473,14 @@ BuildImage
|
|||
######################
|
||||
# Login to DockerHub #
|
||||
######################
|
||||
if [[ "$REGISTRY" == "Docker" ]]; then
|
||||
if [[ $REGISTRY == "Docker" ]]; then
|
||||
# Authenticate "Username" "Password" "Url" "Name"
|
||||
Authenticate "$DOCKER_USERNAME" "$DOCKER_PASSWORD" "" "Dockerhub"
|
||||
|
||||
####################################
|
||||
# Login to GitHub Package Registry #
|
||||
####################################
|
||||
elif [[ "$REGISTRY" == "GPR" ]]; then
|
||||
elif [[ $REGISTRY == "GPR" ]]; then
|
||||
# Authenticate "Username" "Password" "Url" "Name"
|
||||
Authenticate "$GPR_USERNAME" "$GPR_TOKEN" "https://docker.pkg.github.com" "GitHub Package Registry"
|
||||
|
||||
|
@ -495,7 +488,7 @@ else
|
|||
#########
|
||||
# ERROR #
|
||||
#########
|
||||
echo "ERROR! Registry not set correctly!"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Registry not set correctly!${NC}"
|
||||
echo "Registry:[$REGISTRY]"
|
||||
exit 1
|
||||
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
|
||||
# Set the agent to run on
|
||||
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 #
|
||||
##################
|
||||
|
|
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) |
|
||||
|
||||
## 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:
|
||||
1. Create a new file in your repository called `.github/workflows/linter.yml`
|
||||
|
@ -96,8 +96,10 @@ name: Lint Code Base
|
|||
#############################
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'master'
|
||||
branches-ignore: [master]
|
||||
# Remove the line above to run when pushing to master
|
||||
pull_request:
|
||||
branches: [master]
|
||||
|
||||
###############
|
||||
# Set the Job #
|
||||
|
@ -126,7 +128,8 @@ jobs:
|
|||
uses: docker://github/super-linter:v3
|
||||
env:
|
||||
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
|
||||
config {
|
||||
module = true
|
||||
module = false
|
||||
deep_check = 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() {
|
||||
# Need to build a list of all files changed
|
||||
# This can be pulled from the GITHUB_EVENT_PATH payload
|
||||
|
||||
################
|
||||
# print header #
|
||||
################
|
||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
||||
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||
echo ""
|
||||
echo "----------------------------------------------"
|
||||
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_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 #
|
||||
|
@ -39,14 +41,14 @@ function BuildFileList()
|
|||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# Error
|
||||
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
|
||||
fi
|
||||
|
||||
################
|
||||
# print header #
|
||||
################
|
||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
||||
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||
echo ""
|
||||
echo "----------------------------------------------"
|
||||
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
|
||||
# Error
|
||||
echo "ERROR! Failed to gain a list of all files changed!"
|
||||
echo "ERROR:[${RAW_FILE_ARRAY[*]}]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to gain a list of all files changed!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${RAW_FILE_ARRAY[*]}]${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -78,8 +80,7 @@ function BuildFileList()
|
|||
echo ""
|
||||
echo "----------------------------------------------"
|
||||
echo "Files that have been modified in the commit(s):"
|
||||
for FILE in "${RAW_FILE_ARRAY[@]}"
|
||||
do
|
||||
for FILE in "${RAW_FILE_ARRAY[@]}"; do
|
||||
##############
|
||||
# Print file #
|
||||
##############
|
||||
|
@ -100,11 +101,11 @@ function BuildFileList()
|
|||
#####################
|
||||
# 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 #
|
||||
################################
|
||||
FILE_ARRAY_CFN+=("$FILE")
|
||||
FILE_ARRAY_YML+=("$FILE")
|
||||
##########################################################
|
||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||
##########################################################
|
||||
|
@ -118,11 +119,12 @@ function BuildFileList()
|
|||
# Append the file to the array #
|
||||
################################
|
||||
FILE_ARRAY_CFN+=("$FILE")
|
||||
|
||||
##########################################################
|
||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||
##########################################################
|
||||
READ_ONLY_CHANGE_FLAG=1
|
||||
fi
|
||||
##########################################################
|
||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||
##########################################################
|
||||
READ_ONLY_CHANGE_FLAG=1
|
||||
######################
|
||||
# Get the JSON files #
|
||||
######################
|
||||
|
@ -351,7 +353,7 @@ function BuildFileList()
|
|||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||
##########################################################
|
||||
READ_ONLY_CHANGE_FLAG=1
|
||||
elif [ "$FILE" == "Dockerfile" ]; then
|
||||
elif [ "$FILE" == "dockerfile" ]; then
|
||||
################################
|
||||
# Append the file to the array #
|
||||
################################
|
||||
|
@ -378,11 +380,11 @@ function BuildFileList()
|
|||
#################
|
||||
# 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 #
|
||||
#######################
|
||||
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."
|
||||
################################
|
||||
# Append the file to the array #
|
||||
|
@ -392,11 +394,11 @@ function BuildFileList()
|
|||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||
##########################################################
|
||||
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 #
|
||||
#######################
|
||||
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."
|
||||
################################
|
||||
# Append the file to the array #
|
||||
|
@ -410,7 +412,7 @@ function BuildFileList()
|
|||
############################
|
||||
# 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 #
|
||||
##########################################################
|
||||
|
@ -419,12 +421,12 @@ function BuildFileList()
|
|||
fi
|
||||
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 #
|
||||
#########################################
|
||||
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 #
|
||||
|
@ -437,7 +439,7 @@ function BuildFileList()
|
|||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# Error
|
||||
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
|
||||
fi
|
||||
|
||||
|
@ -446,5 +448,5 @@ function BuildFileList()
|
|||
################
|
||||
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 #
|
||||
#########################
|
||||
# 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
|
||||
source /action/lib/validation.sh # Source the function script(s)
|
||||
source /action/lib/buildFileList.sh # Source the function script(s)
|
||||
# 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 #
|
||||
|
@ -99,138 +101,137 @@ LANGUAGE_ARRAY=('YML' 'JSON' 'XML' 'MARKDOWN' 'BASH' 'PERL' 'PHP' 'RUBY' 'PYTHON
|
|||
###################
|
||||
# GitHub ENV Vars #
|
||||
###################
|
||||
GITHUB_SHA="${GITHUB_SHA}" # GitHub sha from the commit
|
||||
GITHUB_EVENT_PATH="${GITHUB_EVENT_PATH}" # Github Event Path
|
||||
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # Github Workspace
|
||||
DEFAULT_BRANCH="${DEFAULT_BRANCH:-master}" # Default Git Branch to use (master by default)
|
||||
ANSIBLE_DIRECTORY="${ANSIBLE_DIRECTORY}" # Ansible Directory
|
||||
VALIDATE_ALL_CODEBASE="${VALIDATE_ALL_CODEBASE}" # Boolean to validate all files
|
||||
VALIDATE_YAML="${VALIDATE_YAML}" # Boolean to validate language
|
||||
VALIDATE_JSON="${VALIDATE_JSON}" # Boolean to validate language
|
||||
VALIDATE_XML="${VALIDATE_XML}" # Boolean to validate language
|
||||
VALIDATE_MD="${VALIDATE_MD}" # Boolean to validate language
|
||||
VALIDATE_BASH="${VALIDATE_BASH}" # Boolean to validate language
|
||||
VALIDATE_PERL="${VALIDATE_PERL}" # Boolean to validate language
|
||||
VALIDATE_PHP="${VALIDATE_PHP}" # Boolean to validate language
|
||||
VALIDATE_PYTHON="${VALIDATE_PYTHON}" # Boolean to validate language
|
||||
VALIDATE_CLOUDFORMATION="${VALIDATE_CLOUDFORMATION}" # Boolean to validate language
|
||||
VALIDATE_RUBY="${VALIDATE_RUBY}" # Boolean to validate language
|
||||
VALIDATE_COFFEE="${VALIDATE_COFFEE}" # Boolean to validate language
|
||||
VALIDATE_ANSIBLE="${VALIDATE_ANSIBLE}" # 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_TYPESCRIPT_ES="${VALIDATE_TYPESCRIPT_ES}" # Boolean to validate language
|
||||
VALIDATE_TYPESCRIPT_STANDARD="${VALIDATE_TYPESCRIPT_STANDARD}" # Boolean to validate language
|
||||
VALIDATE_DOCKER="${VALIDATE_DOCKER}" # Boolean to validate language
|
||||
VALIDATE_GO="${VALIDATE_GO}" # Boolean to validate language
|
||||
VALIDATE_CSS="${VALIDATE_CSS}" # Boolean to validate language
|
||||
VALIDATE_ENV="${VALIDATE_ENV}" # Boolean to validate language
|
||||
VALIDATE_CLOJURE="${VALIDATE_CLOJURE}" # Boolean to validate language
|
||||
VALIDATE_TERRAFORM="${VALIDATE_TERRAFORM}" # Boolean to validate language
|
||||
VALIDATE_POWERSHELL="${VALIDATE_POWERSHELL}" # Boolean to validate language
|
||||
VALIDATE_ARM="${VALIDATE_ARM}" # Boolean to validate language
|
||||
VALIDATE_KOTLIN="${VALIDATE_KOTLIN}" # Boolean to validate language
|
||||
VALIDATE_OPENAPI="${VALIDATE_OPENAPI}" # Boolean to validate language
|
||||
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
|
||||
GITHUB_SHA="${GITHUB_SHA}" # GitHub sha from the commit
|
||||
GITHUB_EVENT_PATH="${GITHUB_EVENT_PATH}" # Github Event Path
|
||||
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" # Github Workspace
|
||||
DEFAULT_BRANCH="${DEFAULT_BRANCH:-master}" # Default Git Branch to use (master by default)
|
||||
ANSIBLE_DIRECTORY="${ANSIBLE_DIRECTORY}" # Ansible Directory
|
||||
VALIDATE_ALL_CODEBASE="${VALIDATE_ALL_CODEBASE}" # Boolean to validate all files
|
||||
VALIDATE_YAML="${VALIDATE_YAML}" # Boolean to validate language
|
||||
VALIDATE_JSON="${VALIDATE_JSON}" # Boolean to validate language
|
||||
VALIDATE_XML="${VALIDATE_XML}" # Boolean to validate language
|
||||
VALIDATE_MD="${VALIDATE_MD}" # Boolean to validate language
|
||||
VALIDATE_BASH="${VALIDATE_BASH}" # Boolean to validate language
|
||||
VALIDATE_PERL="${VALIDATE_PERL}" # Boolean to validate language
|
||||
VALIDATE_PHP="${VALIDATE_PHP}" # Boolean to validate language
|
||||
VALIDATE_PYTHON="${VALIDATE_PYTHON}" # Boolean to validate language
|
||||
VALIDATE_CLOUDFORMATION="${VALIDATE_CLOUDFORMATION}" # Boolean to validate language
|
||||
VALIDATE_RUBY="${VALIDATE_RUBY}" # Boolean to validate language
|
||||
VALIDATE_COFFEE="${VALIDATE_COFFEE}" # Boolean to validate language
|
||||
VALIDATE_ANSIBLE="${VALIDATE_ANSIBLE}" # 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_TYPESCRIPT_ES="${VALIDATE_TYPESCRIPT_ES}" # Boolean to validate language
|
||||
VALIDATE_TYPESCRIPT_STANDARD="${VALIDATE_TYPESCRIPT_STANDARD}" # Boolean to validate language
|
||||
VALIDATE_DOCKER="${VALIDATE_DOCKER}" # Boolean to validate language
|
||||
VALIDATE_GO="${VALIDATE_GO}" # Boolean to validate language
|
||||
VALIDATE_CSS="${VALIDATE_CSS}" # Boolean to validate language
|
||||
VALIDATE_ENV="${VALIDATE_ENV}" # Boolean to validate language
|
||||
VALIDATE_CLOJURE="${VALIDATE_CLOJURE}" # Boolean to validate language
|
||||
VALIDATE_TERRAFORM="${VALIDATE_TERRAFORM}" # Boolean to validate language
|
||||
VALIDATE_POWERSHELL="${VALIDATE_POWERSHELL}" # Boolean to validate language
|
||||
VALIDATE_ARM="${VALIDATE_ARM}" # Boolean to validate language
|
||||
VALIDATE_KOTLIN="${VALIDATE_KOTLIN}" # Boolean to validate language
|
||||
VALIDATE_OPENAPI="${VALIDATE_OPENAPI}" # Boolean to validate language
|
||||
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
|
||||
|
||||
##############
|
||||
# Debug Vars #
|
||||
##############
|
||||
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)
|
||||
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)
|
||||
|
||||
################
|
||||
# Default Vars #
|
||||
################
|
||||
DEFAULT_VALIDATE_ALL_CODEBASE='true' # Default value for validate all files
|
||||
DEFAULT_WORKSPACE="${DEFAULT_WORKSPACE:-/tmp/lint}" # Default workspace if running 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_IFS="$IFS" # Get the Default IFS for updating
|
||||
DEFAULT_VALIDATE_ALL_CODEBASE='true' # Default value for validate all files
|
||||
DEFAULT_WORKSPACE="${DEFAULT_WORKSPACE:-/tmp/lint}" # Default workspace if running 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_IFS="$IFS" # Get the Default IFS for updating
|
||||
|
||||
###############################################################
|
||||
# Default Vars that are called in Subs and need to be ignored #
|
||||
###############################################################
|
||||
DEFAULT_DISABLE_ERRORS='false' # Default to enabling errors
|
||||
echo "${DEFAULT_DISABLE_ERRORS}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||
RAW_FILE_ARRAY=() # Array of all files that were changed
|
||||
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
|
||||
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
|
||||
echo "${TEST_CASE_FOLDER}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||
DEFAULT_ANSIBLE_DIRECTORY="$GITHUB_WORKSPACE/ansible" # Default Ansible Directory
|
||||
DEFAULT_DISABLE_ERRORS='false' # Default to enabling errors
|
||||
echo "${DEFAULT_DISABLE_ERRORS}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||
RAW_FILE_ARRAY=() # Array of all files that were changed
|
||||
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
|
||||
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
|
||||
echo "${TEST_CASE_FOLDER}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||
DEFAULT_ANSIBLE_DIRECTORY="$GITHUB_WORKSPACE/ansible" # Default Ansible Directory
|
||||
echo "${DEFAULT_ANSIBLE_DIRECTORY}" > /dev/null 2>&1 || true # Workaround SC2034
|
||||
|
||||
##########################
|
||||
# Array of changed files #
|
||||
##########################
|
||||
FILE_ARRAY_YML=() # Array of files to check
|
||||
FILE_ARRAY_JSON=() # Array of files to check
|
||||
FILE_ARRAY_XML=() # Array of files to check
|
||||
FILE_ARRAY_MD=() # Array of files to check
|
||||
FILE_ARRAY_BASH=() # Array of files to check
|
||||
FILE_ARRAY_PERL=() # Array of files to check
|
||||
FILE_ARRAY_PHP=() # Array of files to check
|
||||
FILE_ARRAY_RUBY=() # Array of files to check
|
||||
FILE_ARRAY_PYTHON=() # Array of files to check
|
||||
FILE_ARRAY_CFN=() # 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_STANDARD=() # 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_DOCKER=() # Array of files to check
|
||||
FILE_ARRAY_GO=() # Array of files to check
|
||||
FILE_ARRAY_TERRAFORM=() # Array of files to check
|
||||
FILE_ARRAY_POWERSHELL=() # Array of files to check
|
||||
FILE_ARRAY_ARM=() # Array of files to check
|
||||
FILE_ARRAY_CSS=() # Array of files to check
|
||||
FILE_ARRAY_ENV=() # Array of files to check
|
||||
FILE_ARRAY_CLOJURE=() # Array of files to check
|
||||
FILE_ARRAY_KOTLIN=() # Array of files to check
|
||||
FILE_ARRAY_PROTOBUF=() # Array of files to check
|
||||
FILE_ARRAY_OPENAPI=() # Array of files to check
|
||||
FILE_ARRAY_YML=() # Array of files to check
|
||||
FILE_ARRAY_JSON=() # Array of files to check
|
||||
FILE_ARRAY_XML=() # Array of files to check
|
||||
FILE_ARRAY_MD=() # Array of files to check
|
||||
FILE_ARRAY_BASH=() # Array of files to check
|
||||
FILE_ARRAY_PERL=() # Array of files to check
|
||||
FILE_ARRAY_PHP=() # Array of files to check
|
||||
FILE_ARRAY_RUBY=() # Array of files to check
|
||||
FILE_ARRAY_PYTHON=() # Array of files to check
|
||||
FILE_ARRAY_CFN=() # 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_STANDARD=() # 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_DOCKER=() # Array of files to check
|
||||
FILE_ARRAY_GO=() # Array of files to check
|
||||
FILE_ARRAY_TERRAFORM=() # Array of files to check
|
||||
FILE_ARRAY_POWERSHELL=() # Array of files to check
|
||||
FILE_ARRAY_ARM=() # Array of files to check
|
||||
FILE_ARRAY_CSS=() # Array of files to check
|
||||
FILE_ARRAY_ENV=() # Array of files to check
|
||||
FILE_ARRAY_CLOJURE=() # Array of files to check
|
||||
FILE_ARRAY_KOTLIN=() # Array of files to check
|
||||
FILE_ARRAY_PROTOBUF=() # Array of files to check
|
||||
FILE_ARRAY_OPENAPI=() # Array of files to check
|
||||
|
||||
############
|
||||
# Counters #
|
||||
############
|
||||
ERRORS_FOUND_YML=0 # Count of errors found
|
||||
ERRORS_FOUND_JSON=0 # Count of errors found
|
||||
ERRORS_FOUND_XML=0 # Count of errors found
|
||||
ERRORS_FOUND_MARKDOWN=0 # Count of errors found
|
||||
ERRORS_FOUND_BASH=0 # Count of errors found
|
||||
ERRORS_FOUND_PERL=0 # Count of errors found
|
||||
ERRORS_FOUND_PHP=0 # Count of errors found
|
||||
ERRORS_FOUND_RUBY=0 # Count of errors found
|
||||
ERRORS_FOUND_PYTHON=0 # Count of errors found
|
||||
ERRORS_FOUND_CFN=0 # Count of errors found
|
||||
ERRORS_FOUND_COFFEESCRIPT=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_ES=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_DOCKER=0 # Count of errors found
|
||||
ERRORS_FOUND_GO=0 # Count of errors found
|
||||
ERRORS_FOUND_TERRAFORM=0 # Count of errors found
|
||||
ERRORS_FOUND_POWERSHELL=0 # Count of errors found
|
||||
ERRORS_FOUND_ARM=0 # Count of errors found
|
||||
ERRORS_FOUND_CSS=0 # Count of errors found
|
||||
ERRORS_FOUND_ENV=0 # Count of errors found
|
||||
ERRORS_FOUND_CLOJURE=0 # Count of errors found
|
||||
ERRORS_FOUND_KOTLIN=0 # Count of errors found
|
||||
ERRORS_FOUND_PROTOBUF=0 # Count of errors found
|
||||
ERRORS_FOUND_OPENAPI=0 # Count of errors found
|
||||
ERRORS_FOUND_YML=0 # Count of errors found
|
||||
ERRORS_FOUND_JSON=0 # Count of errors found
|
||||
ERRORS_FOUND_XML=0 # Count of errors found
|
||||
ERRORS_FOUND_MARKDOWN=0 # Count of errors found
|
||||
ERRORS_FOUND_BASH=0 # Count of errors found
|
||||
ERRORS_FOUND_PERL=0 # Count of errors found
|
||||
ERRORS_FOUND_PHP=0 # Count of errors found
|
||||
ERRORS_FOUND_RUBY=0 # Count of errors found
|
||||
ERRORS_FOUND_PYTHON=0 # Count of errors found
|
||||
ERRORS_FOUND_CFN=0 # Count of errors found
|
||||
ERRORS_FOUND_COFFEESCRIPT=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_ES=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_DOCKER=0 # Count of errors found
|
||||
ERRORS_FOUND_GO=0 # Count of errors found
|
||||
ERRORS_FOUND_TERRAFORM=0 # Count of errors found
|
||||
ERRORS_FOUND_POWERSHELL=0 # Count of errors found
|
||||
ERRORS_FOUND_ARM=0 # Count of errors found
|
||||
ERRORS_FOUND_CSS=0 # Count of errors found
|
||||
ERRORS_FOUND_ENV=0 # Count of errors found
|
||||
ERRORS_FOUND_CLOJURE=0 # Count of errors found
|
||||
ERRORS_FOUND_KOTLIN=0 # Count of errors found
|
||||
ERRORS_FOUND_PROTOBUF=0 # Count of errors found
|
||||
ERRORS_FOUND_OPENAPI=0 # Count of errors found
|
||||
|
||||
################################################################################
|
||||
########################## FUNCTIONS BELOW #####################################
|
||||
################################################################################
|
||||
################################################################################
|
||||
#### Function Header ###########################################################
|
||||
Header()
|
||||
{
|
||||
Header() {
|
||||
###############################
|
||||
# Give them the possum action #
|
||||
###############################
|
||||
|
@ -251,8 +252,7 @@ Header()
|
|||
}
|
||||
################################################################################
|
||||
#### Function GetLinterVersions ################################################
|
||||
GetLinterVersions()
|
||||
{
|
||||
GetLinterVersions() {
|
||||
#########################
|
||||
# Print version headers #
|
||||
#########################
|
||||
|
@ -263,8 +263,8 @@ GetLinterVersions()
|
|||
##########################################################
|
||||
# Go through the array of linters and print version info #
|
||||
##########################################################
|
||||
for LINTER in "${LINTER_ARRAY[@]}"
|
||||
do
|
||||
for LINTER in "${LINTER_ARRAY[@]}"; do
|
||||
echo "[$LINTER]:"
|
||||
###################
|
||||
# Get the version #
|
||||
###################
|
||||
|
@ -287,7 +287,7 @@ GetLinterVersions()
|
|||
# Check the shell for errors #
|
||||
##############################
|
||||
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
|
||||
##########################
|
||||
# Print the version info #
|
||||
|
@ -303,54 +303,43 @@ GetLinterVersions()
|
|||
}
|
||||
################################################################################
|
||||
#### Function GetLinterRules ###################################################
|
||||
GetLinterRules()
|
||||
{
|
||||
GetLinterRules() {
|
||||
# Need to validate the rules files exist
|
||||
|
||||
################
|
||||
# Pull in vars #
|
||||
################
|
||||
FILE_NAME="$1" # Name fo the linter file
|
||||
FILE_LOCATION="$2" # Location of the linter file
|
||||
LANGUAGE_NAME="$1" # Name of the language were looking for
|
||||
|
||||
#######################################################
|
||||
# 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 #
|
||||
#####################################
|
||||
if [ -f "$GITHUB_WORKSPACE/$LINTER_RULES_PATH/$FILE_NAME" ]; then
|
||||
if [ -f "$GITHUB_WORKSPACE/$LINTER_RULES_PATH/${!LANGUAGE_FILE_NAME}" ]; then
|
||||
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 #
|
||||
####################################
|
||||
CP_CMD=$(cp "$GITHUB_WORKSPACE/$LINTER_RULES_PATH/$FILE_NAME" "$FILE_LOCATION" 2>&1)
|
||||
|
||||
###################
|
||||
# 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
|
||||
########################################
|
||||
# Update the path to the file location #
|
||||
########################################
|
||||
declare -g "${LANGUAGE_LINTER_RULES}=$GITHUB_WORKSPACE/$LINTER_RULES_PATH/${!LANGUAGE_FILE_NAME}"
|
||||
else
|
||||
########################################################
|
||||
# No user default provided, using the template default #
|
||||
########################################################
|
||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
||||
echo " -> Codebase does NOT have file:[$LINTER_RULES_PATH/$FILE_NAME], using Default rules at:[$FILE_LOCATION]"
|
||||
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||
echo " -> Codebase does NOT have file:[$LINTER_RULES_PATH/${!LANGUAGE_FILE_NAME}], using Default rules at:[${!LANGUAGE_LINTER_RULES}]"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
#### Function GetStandardRules #################################################
|
||||
GetStandardRules()
|
||||
{
|
||||
GetStandardRules() {
|
||||
################
|
||||
# Pull In Vars #
|
||||
################
|
||||
|
@ -369,9 +358,9 @@ GetStandardRules()
|
|||
#########################################
|
||||
# Only env vars that are marked as true
|
||||
GET_ENV_ARRAY=()
|
||||
if [[ "$LINTER" == "javascript" ]]; then
|
||||
if [[ $LINTER == "javascript" ]]; then
|
||||
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)
|
||||
fi
|
||||
|
||||
|
@ -385,8 +374,8 @@ GetStandardRules()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# ERROR
|
||||
echo "ERROR! Failed to gain list of ENV vars to load!"
|
||||
echo "ERROR:[${GET_ENV_ARRAY[*]}]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to gain list of ENV vars to load!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${GET_ENV_ARRAY[*]}]${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -404,8 +393,7 @@ GetStandardRules()
|
|||
#############################
|
||||
# Pull out the envs to load #
|
||||
#############################
|
||||
for ENV in "${GET_ENV_ARRAY[@]}"
|
||||
do
|
||||
for ENV in "${GET_ENV_ARRAY[@]}"; do
|
||||
#############################
|
||||
# remove spaces from return #
|
||||
#############################
|
||||
|
@ -421,16 +409,15 @@ GetStandardRules()
|
|||
#########################################
|
||||
# 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:]]*$//')"
|
||||
elif [[ "$LINTER" == "typescript" ]]; then
|
||||
elif [[ $LINTER == "typescript" ]]; then
|
||||
TYPESCRIPT_STANDARD_LINTER_RULES="$(echo -e "${ENV_STRING}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
#### Function DetectOpenAPIFile ################################################
|
||||
DetectOpenAPIFile()
|
||||
{
|
||||
DetectOpenAPIFile() {
|
||||
################
|
||||
# Pull in vars #
|
||||
################
|
||||
|
@ -439,7 +426,7 @@ DetectOpenAPIFile()
|
|||
###############################
|
||||
# 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 #
|
||||
|
@ -453,12 +440,12 @@ DetectOpenAPIFile()
|
|||
########################
|
||||
# Found string in file #
|
||||
########################
|
||||
return 0
|
||||
return 0
|
||||
else
|
||||
###################
|
||||
# No string match #
|
||||
###################
|
||||
return 1
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
|
@ -497,8 +484,7 @@ DetectARMFile()
|
|||
}
|
||||
################################################################################
|
||||
#### Function DetectCloudFormationFile #########################################
|
||||
DetectCloudFormationFile()
|
||||
{
|
||||
DetectCloudFormationFile() {
|
||||
################
|
||||
# Pull in Vars #
|
||||
################
|
||||
|
@ -527,7 +513,7 @@ DetectCloudFormationFile()
|
|||
###############################
|
||||
if jq -e 'has("Resources")' > /dev/null 2>&1 < "$FILE"; then
|
||||
# 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
|
||||
return 0
|
||||
fi
|
||||
|
@ -549,8 +535,7 @@ DetectCloudFormationFile()
|
|||
|
||||
################################################################################
|
||||
#### Function GetGitHubVars ####################################################
|
||||
GetGitHubVars()
|
||||
{
|
||||
GetGitHubVars() {
|
||||
##########
|
||||
# Prints #
|
||||
##########
|
||||
|
@ -590,7 +575,7 @@ GetGitHubVars()
|
|||
#################################
|
||||
# Check if were running locally #
|
||||
#################################
|
||||
if [[ "$RUN_LOCAL" != "false" ]]; then
|
||||
if [[ $RUN_LOCAL != "false" ]]; then
|
||||
##########################################
|
||||
# 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_REPO
|
||||
|
||||
|
||||
#################################
|
||||
# Set the VALIDATE_ALL_CODEBASE #
|
||||
#################################
|
||||
|
@ -621,33 +605,33 @@ GetGitHubVars()
|
|||
# Validate we have a value #
|
||||
############################
|
||||
if [ -z "$GITHUB_SHA" ]; then
|
||||
echo "ERROR! Failed to get [GITHUB_SHA]!"
|
||||
echo "ERROR:[$GITHUB_SHA]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_SHA]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_SHA]${NC}"
|
||||
exit 1
|
||||
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
|
||||
|
||||
############################
|
||||
# Validate we have a value #
|
||||
############################
|
||||
if [ -z "$GITHUB_WORKSPACE" ]; then
|
||||
echo "ERROR! Failed to get [GITHUB_WORKSPACE]!"
|
||||
echo "ERROR:[$GITHUB_WORKSPACE]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_WORKSPACE]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_WORKSPACE]${NC}"
|
||||
exit 1
|
||||
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
|
||||
|
||||
############################
|
||||
# Validate we have a value #
|
||||
############################
|
||||
if [ -z "$GITHUB_EVENT_PATH" ]; then
|
||||
echo "ERROR! Failed to get [GITHUB_EVENT_PATH]!"
|
||||
echo "ERROR:[$GITHUB_EVENT_PATH]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_EVENT_PATH]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_EVENT_PATH]${NC}"
|
||||
exit 1
|
||||
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
|
||||
|
||||
##################################################
|
||||
|
@ -657,43 +641,42 @@ GetGitHubVars()
|
|||
######################
|
||||
# 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 #
|
||||
############################
|
||||
if [ -z "$GITHUB_ORG" ]; then
|
||||
echo "ERROR! Failed to get [GITHUB_ORG]!"
|
||||
echo "ERROR:[$GITHUB_ORG]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_ORG]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_ORG]${NC}"
|
||||
exit 1
|
||||
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
|
||||
|
||||
#######################
|
||||
# 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 #
|
||||
############################
|
||||
if [ -z "$GITHUB_REPO" ]; then
|
||||
echo "ERROR! Failed to get [GITHUB_REPO]!"
|
||||
echo "ERROR:[$GITHUB_REPO]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to get [GITHUB_REPO]!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$GITHUB_REPO]${NC}"
|
||||
exit 1
|
||||
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
|
||||
}
|
||||
################################################################################
|
||||
#### Function ValidatePowershellModules ########################################
|
||||
function ValidatePowershellModules()
|
||||
{
|
||||
function ValidatePowershellModules() {
|
||||
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 [[ "$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)
|
||||
else
|
||||
# Failed to find module
|
||||
|
@ -703,7 +686,7 @@ function ValidatePowershellModules()
|
|||
#########################################
|
||||
# validate we found the script analyzer #
|
||||
#########################################
|
||||
if [[ "$VALIDATE_PSSA_CMD" != "Invoke-ScriptAnalyzer" ]]; then
|
||||
if [[ $VALIDATE_PSSA_CMD != "Invoke-ScriptAnalyzer" ]]; then
|
||||
# Failed to find module
|
||||
exit 1
|
||||
fi
|
||||
|
@ -718,21 +701,20 @@ function ValidatePowershellModules()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# Failed
|
||||
echo "ERROR! Failed find module [PSScriptAnalyzer] for [$LINTER_NAME] in system!"
|
||||
echo "ERROR:[PSSA_MODULE $VALIDATE_PSSA_MODULE] [PSSA_CMD $VALIDATE_PSSA_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed find module [PSScriptAnalyzer] for [$LINTER_NAME] in system!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[PSSA_MODULE $VALIDATE_PSSA_MODULE] [PSSA_CMD $VALIDATE_PSSA_CMD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
# Success
|
||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
||||
echo "Successfully found module [$VALIDATE_PSSA_MODULE] in system"
|
||||
echo "Successfully found command [$VALIDATE_PSSA_CMD] in system"
|
||||
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||
echo -e "${NC}${F[B]}Successfully found module ${F[W]}[$VALIDATE_PSSA_MODULE]${F[B]} in system${NC}"
|
||||
echo -e "${NC}${F[B]}Successfully found command ${F[W]}[$VALIDATE_PSSA_CMD]${F[B]} in system${NC}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
#### Function Footer ###########################################################
|
||||
Footer()
|
||||
{
|
||||
Footer() {
|
||||
echo ""
|
||||
echo "----------------------------------------------"
|
||||
echo "----------------------------------------------"
|
||||
|
@ -744,8 +726,7 @@ Footer()
|
|||
##############################
|
||||
# Prints for errors if found #
|
||||
##############################
|
||||
for LANGUAGE in "${LANGUAGE_ARRAY[@]}"
|
||||
do
|
||||
for LANGUAGE in "${LANGUAGE_ARRAY[@]}"; do
|
||||
###########################
|
||||
# Build the error counter #
|
||||
###########################
|
||||
|
@ -756,7 +737,7 @@ Footer()
|
|||
##################
|
||||
if [ "${!ERROR_COUNTER}" -ne 0 ]; then
|
||||
# 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
|
||||
done
|
||||
|
||||
|
@ -764,47 +745,47 @@ Footer()
|
|||
# Exit with 0 if errors disabled #
|
||||
##################################
|
||||
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 with 1 if errors found #
|
||||
###############################
|
||||
elif [ "$ERRORS_FOUND_YML" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_JSON" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_XML" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_MARKDOWN" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_BASH" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_PERL" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_PHP" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_PYTHON" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_COFFEESCRIPT" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_ANSIBLE" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_JAVASCRIPT_ES" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_JAVASCRIPT_STANDARD" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_TYPESCRIPT_ES" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_TYPESCRIPT_STANDARD" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_DOCKER" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_GO" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_TERRAFORM" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_POWERSHELL" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_ARM" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_RUBY" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_CSS" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_CFN" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_ENV" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_OPENAPI" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_PROTOBUF" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_CLOJURE" -ne 0 ] || \
|
||||
[ "$ERRORS_FOUND_KOTLIN" -ne 0 ]; then
|
||||
elif [ "$ERRORS_FOUND_YML" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_JSON" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_XML" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_MARKDOWN" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_BASH" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_PERL" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_PHP" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_PYTHON" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_COFFEESCRIPT" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_ANSIBLE" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_JAVASCRIPT_ES" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_JAVASCRIPT_STANDARD" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_TYPESCRIPT_ES" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_TYPESCRIPT_STANDARD" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_DOCKER" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_GO" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_TERRAFORM" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_POWERSHELL" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_ARM" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_RUBY" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_CSS" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_CFN" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_ENV" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_OPENAPI" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_PROTOBUF" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_CLOJURE" -ne 0 ] ||
|
||||
[ "$ERRORS_FOUND_KOTLIN" -ne 0 ]; then
|
||||
# Failed exit
|
||||
echo "Exiting with errors found!"
|
||||
echo -e "${NC}${F[R]}Exiting with errors found!${NC}"
|
||||
exit 1
|
||||
else
|
||||
#################
|
||||
# Footer prints #
|
||||
#################
|
||||
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 ""
|
||||
# Successful exit
|
||||
|
@ -836,40 +817,40 @@ GetValidationInfo
|
|||
# Get the linter rules #
|
||||
########################
|
||||
# Get YML rules
|
||||
GetLinterRules "$YAML_FILE_NAME" "$YAML_LINTER_RULES"
|
||||
GetLinterRules "YAML"
|
||||
# Get Markdown rules
|
||||
GetLinterRules "$MD_FILE_NAME" "$MD_LINTER_RULES"
|
||||
GetLinterRules "MD"
|
||||
# Get Python rules
|
||||
GetLinterRules "$PYTHON_FILE_NAME" "$PYTHON_LINTER_RULES"
|
||||
GetLinterRules "PYTHON"
|
||||
# Get Ruby rules
|
||||
GetLinterRules "$RUBY_FILE_NAME" "$RUBY_LINTER_RULES"
|
||||
GetLinterRules "RUBY"
|
||||
# Get Coffeescript rules
|
||||
GetLinterRules "$COFFEE_FILE_NAME" "$COFFEESCRIPT_LINTER_RULES"
|
||||
GetLinterRules "COFFEESCRIPT"
|
||||
# Get Ansible rules
|
||||
GetLinterRules "$ANSIBLE_FILE_NAME" "$ANSIBLE_LINTER_RULES"
|
||||
GetLinterRules "ANSIBLE"
|
||||
# Get JavaScript rules
|
||||
GetLinterRules "$JAVASCRIPT_FILE_NAME" "$JAVASCRIPT_LINTER_RULES"
|
||||
GetLinterRules "JAVASCRIPT"
|
||||
# Get TypeScript rules
|
||||
GetLinterRules "$TYPESCRIPT_FILE_NAME" "$TYPESCRIPT_LINTER_RULES"
|
||||
GetLinterRules "TYPESCRIPT"
|
||||
# Get Golang rules
|
||||
GetLinterRules "$GO_FILE_NAME" "$GO_LINTER_RULES"
|
||||
GetLinterRules "GO"
|
||||
# Get Docker rules
|
||||
GetLinterRules "$DOCKER_FILE_NAME" "$DOCKER_LINTER_RULES"
|
||||
GetLinterRules "DOCKER"
|
||||
# Get Terraform rules
|
||||
GetLinterRules "$TERRAFORM_FILE_NAME" "$TERRAFORM_LINTER_RULES"
|
||||
GetLinterRules "TERRAFORM"
|
||||
# Get PowerShell rules
|
||||
GetLinterRules "$POWERSHELL_FILE_NAME" "$POWERSHELL_LINTER_RULES"
|
||||
GetLinterRules "POWERSHELL"
|
||||
# Get ARM rules
|
||||
GetLinterRules "$ARM_FILE_NAME" "$ARM_LINTER_RULES"
|
||||
GetLinterRules "ARM"
|
||||
# Get CSS rules
|
||||
GetLinterRules "$CSS_FILE_NAME" "$CSS_LINTER_RULES"
|
||||
GetLinterRules "CSS"
|
||||
# Get CFN rules
|
||||
GetLinterRules "$CFN_FILE_NAME" "$CFN_LINTER_RULES"
|
||||
GetLinterRules "CFN"
|
||||
|
||||
#################################
|
||||
# Check if were in verbose mode #
|
||||
#################################
|
||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
||||
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||
##################################
|
||||
# Get and print all version info #
|
||||
##################################
|
||||
|
@ -879,7 +860,7 @@ fi
|
|||
###########################################
|
||||
# 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 #
|
||||
###########################
|
||||
|
@ -949,7 +930,7 @@ if [ "$VALIDATE_BASH" == "true" ]; then
|
|||
# Lint the bash files #
|
||||
#######################
|
||||
# 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
|
||||
|
||||
##################
|
||||
|
@ -1050,7 +1031,7 @@ if [ "$VALIDATE_ANSIBLE" == "true" ]; then
|
|||
# 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
|
||||
# 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
|
||||
|
||||
######################
|
||||
|
@ -1214,8 +1195,7 @@ if [ "$VALIDATE_OPENAPI" == "true" ]; then
|
|||
IFS=$'\n'
|
||||
|
||||
mapfile -t LIST_FILES < <(find "$GITHUB_WORKSPACE" -type f -regex ".*\.\(yml\|yaml\|json\)\$" 2>&1)
|
||||
for FILE in "${LIST_FILES[@]}"
|
||||
do
|
||||
for FILE in "${LIST_FILES[@]}"; do
|
||||
if DetectOpenAPIFile "$FILE"; then
|
||||
FILE_ARRAY_OPENAPI+=("$FILE")
|
||||
fi
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/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() {
|
||||
############################################
|
||||
# Print headers for user provided env vars #
|
||||
############################################
|
||||
|
@ -21,7 +20,7 @@ function GetValidationInfo()
|
|||
###########################################
|
||||
# Skip validation if were running locally #
|
||||
###########################################
|
||||
if [[ "$RUN_LOCAL" != "true" ]]; then
|
||||
if [[ $RUN_LOCAL != "true" ]]; then
|
||||
###############################
|
||||
# Convert string to lowercase #
|
||||
###############################
|
||||
|
@ -29,7 +28,7 @@ function GetValidationInfo()
|
|||
######################################
|
||||
# Validate we should check all files #
|
||||
######################################
|
||||
if [[ "$VALIDATE_ALL_CODEBASE" != "false" ]]; then
|
||||
if [[ $VALIDATE_ALL_CODEBASE != "false" ]]; then
|
||||
# Set to true
|
||||
VALIDATE_ALL_CODEBASE="$DEFAULT_VALIDATE_ALL_CODEBASE"
|
||||
echo "- Validating ALL files in code base..."
|
||||
|
@ -78,41 +77,41 @@ function GetValidationInfo()
|
|||
# Determine if any linters were explicitly set #
|
||||
################################################
|
||||
ANY_SET="false"
|
||||
if [[ -n "$VALIDATE_YAML" || \
|
||||
-n "$VALIDATE_JSON" || \
|
||||
-n "$VALIDATE_XML" || \
|
||||
-n "$VALIDATE_MD" || \
|
||||
-n "$VALIDATE_BASH" || \
|
||||
-n "$VALIDATE_PERL" || \
|
||||
-n "$VALIDATE_PHP" || \
|
||||
-n "$VALIDATE_PYTHON" || \
|
||||
-n "$VALIDATE_RUBY" || \
|
||||
-n "$VALIDATE_COFFEE" || \
|
||||
-n "$VALIDATE_ANSIBLE" || \
|
||||
-n "$VALIDATE_JAVASCRIPT_ES" || \
|
||||
-n "$VALIDATE_JAVASCRIPT_STANDARD" || \
|
||||
-n "$VALIDATE_TYPESCRIPT_ES" || \
|
||||
-n "$VALIDATE_TYPESCRIPT_STANDARD" || \
|
||||
-n "$VALIDATE_DOCKER" || \
|
||||
-n "$VALIDATE_GO" || \
|
||||
-n "$VALIDATE_TERRAFORM" || \
|
||||
-n "$VALIDATE_POWERSHELL" || \
|
||||
-n "$VALIDATE_ARM" || \
|
||||
-n "$VALIDATE_CSS" || \
|
||||
-n "$VALIDATE_ENV" || \
|
||||
-n "$VALIDATE_CLOJURE" || \
|
||||
-n "$VALIDATE_PROTOBUF" || \
|
||||
-n "$VALIDATE_OPENAPI" || \
|
||||
-n "$VALIDATE_KOTLIN" ]]; then
|
||||
if [[ -n $VALIDATE_YAML || -n \
|
||||
$VALIDATE_JSON || -n \
|
||||
$VALIDATE_XML || -n \
|
||||
$VALIDATE_MD || -n \
|
||||
$VALIDATE_BASH || -n \
|
||||
$VALIDATE_PERL || -n \
|
||||
$VALIDATE_PHP || -n \
|
||||
$VALIDATE_PYTHON || -n \
|
||||
$VALIDATE_RUBY || -n \
|
||||
$VALIDATE_COFFEE || -n \
|
||||
$VALIDATE_ANSIBLE || -n \
|
||||
$VALIDATE_JAVASCRIPT_ES || -n \
|
||||
$VALIDATE_JAVASCRIPT_STANDARD || -n \
|
||||
$VALIDATE_TYPESCRIPT_ES || -n \
|
||||
$VALIDATE_TYPESCRIPT_STANDARD || -n \
|
||||
$VALIDATE_DOCKER || -n \
|
||||
$VALIDATE_GO || -n \
|
||||
$VALIDATE_TERRAFORM || -n \
|
||||
$VALIDATE_POWERSHELL || -n \
|
||||
$VALIDATE_ARM || -n \
|
||||
$VALIDATE_CSS || -n \
|
||||
$VALIDATE_ENV || -n \
|
||||
$VALIDATE_CLOJURE || -n \
|
||||
$VALIDATE_PROTOBUF || -n \
|
||||
$VALIDATE_OPENAPI || -n \
|
||||
$VALIDATE_KOTLIN ]]; then
|
||||
ANY_SET="true"
|
||||
fi
|
||||
|
||||
####################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_YAML" ]]; then
|
||||
if [[ -z $VALIDATE_YAML ]]; then
|
||||
# YAML flag was not set - default to false
|
||||
VALIDATE_YAML="false"
|
||||
fi
|
||||
|
@ -124,9 +123,9 @@ function GetValidationInfo()
|
|||
####################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_JSON" ]]; then
|
||||
if [[ -z $VALIDATE_JSON ]]; then
|
||||
# JSON flag was not set - default to false
|
||||
VALIDATE_JSON="false"
|
||||
fi
|
||||
|
@ -138,9 +137,9 @@ function GetValidationInfo()
|
|||
###################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_XML" ]]; then
|
||||
if [[ -z $VALIDATE_XML ]]; then
|
||||
# XML flag was not set - default to false
|
||||
VALIDATE_XML="false"
|
||||
fi
|
||||
|
@ -152,9 +151,9 @@ function GetValidationInfo()
|
|||
########################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_MD" ]]; then
|
||||
if [[ -z $VALIDATE_MD ]]; then
|
||||
# MD flag was not set - default to false
|
||||
VALIDATE_MD="false"
|
||||
fi
|
||||
|
@ -166,9 +165,9 @@ function GetValidationInfo()
|
|||
####################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_BASH" ]]; then
|
||||
if [[ -z $VALIDATE_BASH ]]; then
|
||||
# BASH flag was not set - default to false
|
||||
VALIDATE_BASH="false"
|
||||
fi
|
||||
|
@ -180,9 +179,9 @@ function GetValidationInfo()
|
|||
####################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_PERL" ]]; then
|
||||
if [[ -z $VALIDATE_PERL ]]; then
|
||||
# PERL flag was not set - default to false
|
||||
VALIDATE_PERL="false"
|
||||
fi
|
||||
|
@ -194,9 +193,9 @@ function GetValidationInfo()
|
|||
####################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_PHP" ]]; then
|
||||
if [[ -z $VALIDATE_PHP ]]; then
|
||||
# PHP flag was not set - default to false
|
||||
VALIDATE_PHP="false"
|
||||
fi
|
||||
|
@ -208,9 +207,9 @@ function GetValidationInfo()
|
|||
######################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_PYTHON" ]]; then
|
||||
if [[ -z $VALIDATE_PYTHON ]]; then
|
||||
# PYTHON flag was not set - default to false
|
||||
VALIDATE_PYTHON="false"
|
||||
fi
|
||||
|
@ -222,9 +221,9 @@ function GetValidationInfo()
|
|||
####################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_RUBY" ]]; then
|
||||
if [[ -z $VALIDATE_RUBY ]]; then
|
||||
# RUBY flag was not set - default to false
|
||||
VALIDATE_RUBY="false"
|
||||
fi
|
||||
|
@ -236,9 +235,9 @@ function GetValidationInfo()
|
|||
######################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_COFFEE" ]]; then
|
||||
if [[ -z $VALIDATE_COFFEE ]]; then
|
||||
# COFFEE flag was not set - default to false
|
||||
VALIDATE_COFFEE="false"
|
||||
fi
|
||||
|
@ -250,9 +249,9 @@ function GetValidationInfo()
|
|||
#######################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_ANSIBLE" ]]; then
|
||||
if [[ -z $VALIDATE_ANSIBLE ]]; then
|
||||
# ANSIBLE flag was not set - default to false
|
||||
VALIDATE_ANSIBLE="false"
|
||||
fi
|
||||
|
@ -264,9 +263,9 @@ function GetValidationInfo()
|
|||
#############################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_JAVASCRIPT_ES" ]]; then
|
||||
if [[ -z $VALIDATE_JAVASCRIPT_ES ]]; then
|
||||
# JAVASCRIPT_ES flag was not set - default to false
|
||||
VALIDATE_JAVASCRIPT_ES="false"
|
||||
fi
|
||||
|
@ -278,9 +277,9 @@ function GetValidationInfo()
|
|||
###################################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_JAVASCRIPT_STANDARD" ]]; then
|
||||
if [[ -z $VALIDATE_JAVASCRIPT_STANDARD ]]; then
|
||||
# JAVASCRIPT_STANDARD flag was not set - default to false
|
||||
VALIDATE_JAVASCRIPT_STANDARD="false"
|
||||
fi
|
||||
|
@ -292,9 +291,9 @@ function GetValidationInfo()
|
|||
#############################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_TYPESCRIPT_ES" ]]; then
|
||||
if [[ -z $VALIDATE_TYPESCRIPT_ES ]]; then
|
||||
# TYPESCRIPT_ES flag was not set - default to false
|
||||
VALIDATE_TYPESCRIPT_ES="false"
|
||||
fi
|
||||
|
@ -306,9 +305,9 @@ function GetValidationInfo()
|
|||
###################################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_TYPESCRIPT_STANDARD" ]]; then
|
||||
if [[ -z $VALIDATE_TYPESCRIPT_STANDARD ]]; then
|
||||
# TYPESCRIPT_STANDARD flag was not set - default to false
|
||||
VALIDATE_TYPESCRIPT_STANDARD="false"
|
||||
fi
|
||||
|
@ -320,9 +319,9 @@ function GetValidationInfo()
|
|||
######################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_DOCKER" ]]; then
|
||||
if [[ -z $VALIDATE_DOCKER ]]; then
|
||||
# DOCKER flag was not set - default to false
|
||||
VALIDATE_DOCKER="false"
|
||||
fi
|
||||
|
@ -334,9 +333,9 @@ function GetValidationInfo()
|
|||
##################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_GO" ]]; then
|
||||
if [[ -z $VALIDATE_GO ]]; then
|
||||
# GO flag was not set - default to false
|
||||
VALIDATE_GO="false"
|
||||
fi
|
||||
|
@ -348,9 +347,9 @@ function GetValidationInfo()
|
|||
#########################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_TERRAFORM" ]]; then
|
||||
if [[ -z $VALIDATE_TERRAFORM ]]; then
|
||||
# TERRAFORM flag was not set - default to false
|
||||
VALIDATE_TERRAFORM="false"
|
||||
fi
|
||||
|
@ -362,9 +361,9 @@ function GetValidationInfo()
|
|||
#########################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_POWERSHELL" ]]; then
|
||||
if [[ -z $VALIDATE_POWERSHELL ]]; then
|
||||
# POWERSHELL flag was not set - default to false
|
||||
VALIDATE_POWERSHELL="false"
|
||||
fi
|
||||
|
@ -390,9 +389,9 @@ function GetValidationInfo()
|
|||
###################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_CSS" ]]; then
|
||||
if [[ -z $VALIDATE_CSS ]]; then
|
||||
# CSS flag was not set - default to false
|
||||
VALIDATE_CSS="false"
|
||||
fi
|
||||
|
@ -404,9 +403,9 @@ function GetValidationInfo()
|
|||
###################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_ENV" ]]; then
|
||||
if [[ -z $VALIDATE_ENV ]]; then
|
||||
# ENV flag was not set - default to false
|
||||
VALIDATE_ENV="false"
|
||||
fi
|
||||
|
@ -418,9 +417,9 @@ function GetValidationInfo()
|
|||
######################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_KOTLIN" ]]; then
|
||||
if [[ -z $VALIDATE_KOTLIN ]]; then
|
||||
# ENV flag was not set - default to false
|
||||
VALIDATE_KOTLIN="false"
|
||||
fi
|
||||
|
@ -432,9 +431,9 @@ function GetValidationInfo()
|
|||
#######################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_OPENAPI" ]]; then
|
||||
if [[ -z $VALIDATE_OPENAPI ]]; then
|
||||
# OPENAPI flag was not set - default to false
|
||||
VALIDATE_OPENAPI="false"
|
||||
fi
|
||||
|
@ -446,9 +445,9 @@ function GetValidationInfo()
|
|||
#######################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_PROTOBUF" ]]; then
|
||||
if [[ -z $VALIDATE_PROTOBUF ]]; then
|
||||
# PROTOBUF flag was not set - default to false
|
||||
VALIDATE_PROTOBUF="false"
|
||||
fi
|
||||
|
@ -460,9 +459,9 @@ function GetValidationInfo()
|
|||
#######################################
|
||||
# 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
|
||||
if [[ -z "$VALIDATE_CLOJURE" ]]; then
|
||||
if [[ -z $VALIDATE_CLOJURE ]]; then
|
||||
# Clojure flag was not set - default to false
|
||||
VALIDATE_CLOJURE="false"
|
||||
fi
|
||||
|
@ -474,132 +473,132 @@ function GetValidationInfo()
|
|||
#######################################
|
||||
# Print which linters we are enabling #
|
||||
#######################################
|
||||
if [[ "$VALIDATE_YAML" == "true" ]]; then
|
||||
if [[ $VALIDATE_YAML == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [YAML] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [YAML] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_JSON" == "true" ]]; then
|
||||
if [[ $VALIDATE_JSON == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [JSON] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [JSON] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_XML" == "true" ]]; then
|
||||
if [[ $VALIDATE_XML == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [XML] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [XML] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_MD" == "true" ]]; then
|
||||
if [[ $VALIDATE_MD == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [MARKDOWN] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [MARKDOWN] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_BASH" == "true" ]]; then
|
||||
if [[ $VALIDATE_BASH == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [BASH] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [BASH] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_PERL" == "true" ]]; then
|
||||
if [[ $VALIDATE_PERL == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [PERL] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [PERL] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_PHP" == "true" ]]; then
|
||||
if [[ $VALIDATE_PHP == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [PHP] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [PHP] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_PYTHON" == "true" ]]; then
|
||||
if [[ $VALIDATE_PYTHON == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [PYTHON] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [PYTHON] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_RUBY" == "true" ]]; then
|
||||
if [[ $VALIDATE_RUBY == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [RUBY] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [RUBY] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_COFFEE" == "true" ]]; then
|
||||
if [[ $VALIDATE_COFFEE == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [COFFEE] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [COFFEE] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_ANSIBLE" == "true" ]]; then
|
||||
if [[ $VALIDATE_ANSIBLE == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [ANSIBLE] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [ANSIBLE] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_JAVASCRIPT_ES" == "true" ]]; then
|
||||
if [[ $VALIDATE_JAVASCRIPT_ES == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [JAVASCRIPT(eslint)] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [JAVASCRIPT(eslint)] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_JAVASCRIPT_STANDARD" == "true" ]]; then
|
||||
if [[ $VALIDATE_JAVASCRIPT_STANDARD == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [JAVASCRIPT(standard)] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [JAVASCRIPT(standard)] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_TYPESCRIPT_ES" == "true" ]]; then
|
||||
if [[ $VALIDATE_TYPESCRIPT_ES == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [TYPESCRIPT(eslint)] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [TYPESCRIPT(eslint)] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_TYPESCRIPT_STANDARD" == "true" ]]; then
|
||||
if [[ $VALIDATE_TYPESCRIPT_STANDARD == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [TYPESCRIPT(standard)] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [TYPESCRIPT(standard)] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_DOCKER" == "true" ]]; then
|
||||
if [[ $VALIDATE_DOCKER == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [DOCKER] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [DOCKER] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_GO" == "true" ]]; then
|
||||
if [[ $VALIDATE_GO == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [GOLANG] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [GOLANG] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_TERRAFORM" == "true" ]]; then
|
||||
if [[ $VALIDATE_TERRAFORM == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [TERRAFORM] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [TERRAFORM] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_POWERSHELL" == "true" ]]; then
|
||||
if [[ $VALIDATE_POWERSHELL == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [POWERSHELL] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [POWERSHELL] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_ARM" == "true" ]]; then
|
||||
if [[ $VALIDATE_ARM == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [ARM] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [ARM] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_CSS" == "true" ]]; then
|
||||
if [[ $VALIDATE_CSS == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [CSS] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [CSS] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_CLOJURE" == "true" ]]; then
|
||||
if [[ $VALIDATE_CLOJURE == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [CLOJURE] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [CLOJURE] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_ENV" == "true" ]]; then
|
||||
if [[ $VALIDATE_ENV == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [ENV] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [ENV] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_KOTLIN" == "true" ]]; then
|
||||
if [[ $VALIDATE_KOTLIN == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [KOTLIN] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [KOTLIN] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_OPENAPI" == "true" ]]; then
|
||||
if [[ $VALIDATE_OPENAPI == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [OPENAPI] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [OPENAPI] files in code base...")
|
||||
fi
|
||||
if [[ "$VALIDATE_PROTOBUF" == "true" ]]; then
|
||||
if [[ $VALIDATE_PROTOBUF == "true" ]]; then
|
||||
PRINT_ARRAY+=("- Validating [PROTOBUF] files in code base...")
|
||||
else
|
||||
PRINT_ARRAY+=("- Excluding [PROTOBUF] files in code base...")
|
||||
|
@ -670,12 +669,11 @@ function GetValidationInfo()
|
|||
###################
|
||||
# Debug on runner #
|
||||
###################
|
||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
||||
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||
###########################
|
||||
# Print the validate info #
|
||||
###########################
|
||||
for LINE in "${PRINT_ARRAY[@]}"
|
||||
do
|
||||
for LINE in "${PRINT_ARRAY[@]}"; do
|
||||
echo "$LINE"
|
||||
done
|
||||
|
||||
|
|
142
lib/worker.sh
142
lib/worker.sh
|
@ -9,8 +9,7 @@
|
|||
################################################################################
|
||||
################################################################################
|
||||
#### Function LintCodebase #####################################################
|
||||
function LintCodebase()
|
||||
{
|
||||
function LintCodebase() {
|
||||
####################
|
||||
# Pull in the vars #
|
||||
####################
|
||||
|
@ -50,13 +49,13 @@ function LintCodebase()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# Failed
|
||||
echo "ERROR! Failed to find [$LINTER_NAME] in system!"
|
||||
echo "ERROR:[$VALIDATE_INSTALL_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find [$LINTER_NAME] in system!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$VALIDATE_INSTALL_CMD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
# Success
|
||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
||||
echo "Successfully found binary for [$LINTER_NAME] in system"
|
||||
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||
echo -e "${NC}${F[B]}Successfully found binary for ${F[W]}[$LINTER_NAME]${F[B]} in system${NC}"
|
||||
echo "Location:[$VALIDATE_INSTALL_CMD]"
|
||||
fi
|
||||
fi
|
||||
|
@ -119,8 +118,7 @@ function LintCodebase()
|
|||
######################
|
||||
# Print Header array #
|
||||
######################
|
||||
for LINE in "${PRINT_ARRAY[@]}"
|
||||
do
|
||||
for LINE in "${PRINT_ARRAY[@]}"; do
|
||||
#########################
|
||||
# Print the header info #
|
||||
#########################
|
||||
|
@ -130,8 +128,7 @@ function LintCodebase()
|
|||
##################
|
||||
# Lint the files #
|
||||
##################
|
||||
for FILE in "${LIST_FILES[@]}"
|
||||
do
|
||||
for FILE in "${LIST_FILES[@]}"; do
|
||||
#####################
|
||||
# Get the file name #
|
||||
#####################
|
||||
|
@ -164,17 +161,24 @@ function LintCodebase()
|
|||
# - PowerShell (PSScriptAnalyzer) #
|
||||
# - 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 #
|
||||
################################
|
||||
# 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
|
||||
################################
|
||||
# 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
|
||||
|
||||
#######################
|
||||
|
@ -189,32 +193,31 @@ function LintCodebase()
|
|||
#########
|
||||
# Error #
|
||||
#########
|
||||
echo "ERROR! Found errors in [$LINTER_NAME] linter!"
|
||||
echo "ERROR:[$LINT_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
|
||||
# Increment the error count
|
||||
(("ERRORS_FOUND_$FILE_TYPE++"))
|
||||
else
|
||||
###########
|
||||
# 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
|
||||
done
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
#### Function TestCodebase #####################################################
|
||||
function TestCodebase()
|
||||
{
|
||||
function TestCodebase() {
|
||||
####################
|
||||
# Pull in the vars #
|
||||
####################
|
||||
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_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)
|
||||
INDVIDUAL_TEST_FOLDER="$5" # Folder for specific tests
|
||||
TESTS_RAN=0 # Incremented when tests are ran, this will help find failed finds
|
||||
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_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)
|
||||
INDVIDUAL_TEST_FOLDER="$5" # Folder for specific tests
|
||||
TESTS_RAN=0 # Incremented when tests are ran, this will help find failed finds
|
||||
|
||||
################
|
||||
# print header #
|
||||
|
@ -242,12 +245,12 @@ function TestCodebase()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# Failed
|
||||
echo "ERROR! Failed to find [$LINTER_NAME] in system!"
|
||||
echo "ERROR:[$VALIDATE_INSTALL_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find [$LINTER_NAME] in system!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$VALIDATE_INSTALL_CMD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
# Success
|
||||
echo "Successfully found binary in system"
|
||||
echo -e "${NC}${F[B]}Successfully found binary in system${NC}"
|
||||
echo "Location:[$VALIDATE_INSTALL_CMD]"
|
||||
fi
|
||||
|
||||
|
@ -264,8 +267,7 @@ function TestCodebase()
|
|||
##################
|
||||
# Lint the files #
|
||||
##################
|
||||
for FILE in "${LIST_FILES[@]}"
|
||||
do
|
||||
for FILE in "${LIST_FILES[@]}"; do
|
||||
#####################
|
||||
# Get the file name #
|
||||
#####################
|
||||
|
@ -275,12 +277,12 @@ function TestCodebase()
|
|||
# Get the file pass status #
|
||||
############################
|
||||
# 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 [ -z "$FILE_STATUS" ] || [[ "$FILE" == *"README"* ]]; then
|
||||
if [ -z "$FILE_STATUS" ] || [[ $FILE == *"README"* ]]; then
|
||||
##################################
|
||||
# Set to good for proper linting #
|
||||
##################################
|
||||
|
@ -301,8 +303,8 @@ function TestCodebase()
|
|||
#######################################
|
||||
# Check if docker and get folder name #
|
||||
#######################################
|
||||
if [[ "$FILE_TYPE" == "DOCKER" ]]; then
|
||||
if [[ "$FILE" == *"good"* ]]; then
|
||||
if [[ $FILE_TYPE == "DOCKER" ]]; then
|
||||
if [[ $FILE == *"good"* ]]; then
|
||||
#############
|
||||
# Good file #
|
||||
#############
|
||||
|
@ -318,7 +320,7 @@ function TestCodebase()
|
|||
#####################
|
||||
# Check for ansible #
|
||||
#####################
|
||||
if [[ "$FILE_TYPE" == "ANSIBLE" ]]; then
|
||||
if [[ $FILE_TYPE == "ANSIBLE" ]]; then
|
||||
########################################
|
||||
# Make sure we dont lint certain files #
|
||||
########################################
|
||||
|
@ -330,18 +332,28 @@ function TestCodebase()
|
|||
################################
|
||||
# Lint the file with the rules #
|
||||
################################
|
||||
LINT_CMD=$(cd "$GITHUB_WORKSPACE/$TEST_CASE_FOLDER/$INDVIDUAL_TEST_FOLDER" || exit; $LINTER_COMMAND "$FILE" 2>&1)
|
||||
elif [[ "$FILE_TYPE" == "POWERSHELL" ]]; then
|
||||
LINT_CMD=$(
|
||||
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 #
|
||||
################################
|
||||
# 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
|
||||
################################
|
||||
# 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
|
||||
|
||||
#######################
|
||||
|
@ -352,7 +364,7 @@ function TestCodebase()
|
|||
########################################
|
||||
# Check for if it was supposed to pass #
|
||||
########################################
|
||||
if [[ "$FILE_STATUS" == "good" ]]; then
|
||||
if [[ $FILE_STATUS == "good" ]]; then
|
||||
##############################
|
||||
# Check the shell for errors #
|
||||
##############################
|
||||
|
@ -360,9 +372,9 @@ function TestCodebase()
|
|||
#########
|
||||
# Error #
|
||||
#########
|
||||
echo "ERROR! Found errors in [$LINTER_NAME] linter!"
|
||||
echo "ERROR:[$LINT_CMD]"
|
||||
echo "ERROR: Linter CMD:[$LINTER_COMMAND $FILE]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC} Linter CMD:[$LINTER_COMMAND $FILE]${NC}"
|
||||
# Increment the error count
|
||||
(("ERRORS_FOUND_$FILE_TYPE++"))
|
||||
# Increment counter that check was ran
|
||||
|
@ -371,7 +383,7 @@ function TestCodebase()
|
|||
###########
|
||||
# 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
|
||||
((TESTS_RAN++))
|
||||
fi
|
||||
|
@ -386,10 +398,10 @@ function TestCodebase()
|
|||
#########
|
||||
# Error #
|
||||
#########
|
||||
echo "ERROR! Found errors in [$LINTER_NAME] linter!"
|
||||
echo "ERROR! This file should have failed test case!"
|
||||
echo "ERROR:[$LINT_CMD]"
|
||||
echo "ERROR: Linter CMD:[$LINTER_COMMAND $FILE]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} This file should have failed test case!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC} Linter CMD:[$LINTER_COMMAND $FILE]${NC}"
|
||||
# Increment the error count
|
||||
(("ERRORS_FOUND_$FILE_TYPE++"))
|
||||
# Increment counter that check was ran
|
||||
|
@ -398,7 +410,7 @@ function TestCodebase()
|
|||
###########
|
||||
# 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
|
||||
((TESTS_RAN++))
|
||||
fi
|
||||
|
@ -412,15 +424,14 @@ function TestCodebase()
|
|||
#################################################
|
||||
# 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!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
#### Function RunTestCases #####################################################
|
||||
function RunTestCases()
|
||||
{
|
||||
function RunTestCases() {
|
||||
# This loop will run the test cases and exclude user 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
|
||||
|
@ -446,7 +457,7 @@ function RunTestCases()
|
|||
TestCodebase "JSON" "jsonlint" "jsonlint" ".*\.\(json\)\$" "json"
|
||||
TestCodebase "XML" "xmllint" "xmllint" ".*\.\(xml\)\$" "xml"
|
||||
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 "PERL" "perl" "perl -Mstrict -cw" ".*\.\(pl\)\$" "perl"
|
||||
TestCodebase "PHP" "php" "php -l" ".*\.\(php\)\$" "php"
|
||||
|
@ -479,8 +490,7 @@ function RunTestCases()
|
|||
}
|
||||
################################################################################
|
||||
#### Function LintAnsibleFiles #################################################
|
||||
function LintAnsibleFiles()
|
||||
{
|
||||
function LintAnsibleFiles() {
|
||||
######################
|
||||
# Create Print Array #
|
||||
######################
|
||||
|
@ -516,14 +526,14 @@ function LintAnsibleFiles()
|
|||
##############################
|
||||
if [ $ERROR_CODE -ne 0 ]; then
|
||||
# Failed
|
||||
echo "ERROR! Failed to find $LINTER_NAME in system!"
|
||||
echo "ERROR:[$VALIDATE_INSTALL_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Failed to find $LINTER_NAME in system!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$VALIDATE_INSTALL_CMD]${NC}"
|
||||
exit 1
|
||||
else
|
||||
# Success
|
||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
||||
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||
# Success
|
||||
echo "Successfully found binary in system"
|
||||
echo -e "${NC}${F[B]}Successfully found binary in system${NC}"
|
||||
echo "Location:[$VALIDATE_INSTALL_CMD]"
|
||||
fi
|
||||
fi
|
||||
|
@ -571,8 +581,7 @@ function LintAnsibleFiles()
|
|||
# Check if we have data to look at #
|
||||
####################################
|
||||
if [ $SKIP_FLAG -eq 0 ]; then
|
||||
for LINE in "${PRINT_ARRAY[@]}"
|
||||
do
|
||||
for LINE in "${PRINT_ARRAY[@]}"; do
|
||||
#########################
|
||||
# Print the header line #
|
||||
#########################
|
||||
|
@ -583,8 +592,7 @@ function LintAnsibleFiles()
|
|||
##################
|
||||
# Lint the files #
|
||||
##################
|
||||
for FILE in "${LIST_FILES[@]}"
|
||||
do
|
||||
for FILE in "${LIST_FILES[@]}"; do
|
||||
|
||||
########################################
|
||||
# Make sure we dont lint certain files #
|
||||
|
@ -622,26 +630,26 @@ function LintAnsibleFiles()
|
|||
#########
|
||||
# Error #
|
||||
#########
|
||||
echo "ERROR! Found errors in [$LINTER_NAME] linter!"
|
||||
echo "ERROR:[$LINT_CMD]"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [$LINTER_NAME] linter!${NC}"
|
||||
echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[$LINT_CMD]${NC}"
|
||||
# Increment error count
|
||||
((ERRORS_FOUND_ANSIBLE++))
|
||||
else
|
||||
###########
|
||||
# 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
|
||||
done
|
||||
else # No ansible directory found in path
|
||||
###############################
|
||||
# Check to see if debug is on #
|
||||
###############################
|
||||
if [[ "$ACTIONS_RUNNER_DEBUG" == "true" ]]; then
|
||||
if [[ $ACTIONS_RUNNER_DEBUG == "true" ]]; then
|
||||
########################
|
||||
# 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"
|
||||
fi
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue