From 71a3cd9093fe63d63f91a38d22ad048d53eaba34 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Tue, 21 Jul 2020 14:39:14 -0500 Subject: [PATCH 01/10] Braces orthodontist --- lib/buildFileList.sh | 4 +- lib/linter.sh | 106 +++++++++++++++++++++---------------------- lib/validation.sh | 6 +-- lib/worker.sh | 8 ++-- 4 files changed, 62 insertions(+), 62 deletions(-) diff --git a/lib/buildFileList.sh b/lib/buildFileList.sh index e01070a0..eef350c6 100755 --- a/lib/buildFileList.sh +++ b/lib/buildFileList.sh @@ -163,11 +163,11 @@ function BuildFileList() { ############################################ # Check if the file is AWS States Language # ############################################ - if DetectAWSStatesFIle "$FILE"; then + if DetectAWSStatesFIle "${FILE}"; then ################################ # Append the file to the array # ################################ - FILE_ARRAY_STATES+=("$FILE") + FILE_ARRAY_STATES+=("${FILE}") fi ########################################################## # Set the READ_ONLY_CHANGE_FLAG since this could be exec # diff --git a/lib/linter.sh b/lib/linter.sh index 3a7d5b76..4727016c 100755 --- a/lib/linter.sh +++ b/lib/linter.sh @@ -29,19 +29,19 @@ ARM_FILE_NAME='.arm-ttk.psd1' # Name o ARM_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${ARM_FILE_NAME}" # Path to the ARM lint rules # Cloudformation Vars CFN_FILE_NAME='.cfnlintrc.yml' # Name of the file -CFN_LINTER_RULES="$DEFAULT_RULES_LOCATION/$CFN_FILE_NAME" # Path to the cloudformation lint rules +CFN_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${CFN_FILE_NAME}" # Path to the cloudformation lint rules # Clojure Vars CLOJURE_FILE_NAME='.clj-kondo/config.edn' # Name of the file -CLOJURE_LINTER_RULES="$DEFAULT_RULES_LOCATION/$CLOJURE_FILE_NAME" # Path to the Clojure lint rules +CLOJURE_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${CLOJURE_FILE_NAME}" # Path to the Clojure lint rules # Coffee Vars -COFFEESCRIPT_LINTER_RULES="$DEFAULT_RULES_LOCATION/$COFFEE_FILE_NAME" # Path to the coffeescript lint rules +COFFEESCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${COFFEE_FILE_NAME}" # Path to the coffeescript lint rules COFFEE_FILE_NAME='.coffee-lint.json' # Name of the file # CSS Vars CSS_FILE_NAME='.stylelintrc.json' # Name of the file -CSS_LINTER_RULES="$DEFAULT_RULES_LOCATION/$CSS_FILE_NAME" # Path to the CSS lint rules +CSS_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${CSS_FILE_NAME}" # Path to the CSS lint rules # Dart Vars DART_FILE_NAME='analysis_options.yaml' # Name of the file -DART_LINTER_RULES="$DEFAULT_RULES_LOCATION/$DART_FILE_NAME" # Path to the DART lint rules +DART_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${DART_FILE_NAME}" # Path to the DART lint rules # Default Vars DEFAULT_RULES_LOCATION='/action/lib/.automation' # Default rules files location # Docker Vars @@ -49,44 +49,44 @@ DOCKER_FILE_NAME='.dockerfilelintrc' # Name o DOCKER_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${DOCKER_FILE_NAME}" # Path to the Docker lint rules # Golang Vars GO_FILE_NAME='.golangci.yml' # Name of the file -GO_LINTER_RULES="$DEFAULT_RULES_LOCATION/$GO_FILE_NAME" # Path to the Go lint rules +GO_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${GO_FILE_NAME}" # Path to the Go lint rules # HTML Vars HTML_FILE_NAME='.htmlhintrc' # Name of the file -HTML_LINTER_RULES="$DEFAULT_RULES_LOCATION/$HTML_FILE_NAME" # Path to the CSS lint rules +HTML_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${HTML_FILE_NAME}" # Path to the CSS lint rules # Javascript Vars JAVASCRIPT_FILE_NAME="${JAVASCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file -JAVASCRIPT_LINTER_RULES="$DEFAULT_RULES_LOCATION/$JAVASCRIPT_FILE_NAME" # Path to the Javascript lint rules +JAVASCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${JAVASCRIPT_FILE_NAME}" # Path to the Javascript lint rules JAVASCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard # Default linter path LINTER_RULES_PATH="${LINTER_RULES_PATH:-.github/linters}" # Linter Path Directory # MD Vars MARKDOWN_FILE_NAME='.markdown-lint.yml' # Name of the file -MARKDOWN_LINTER_RULES="$DEFAULT_RULES_LOCATION/$MARKDOWN_FILE_NAME" # Path to the markdown lint rules +MARKDOWN_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${MARKDOWN_FILE_NAME}" # Path to the markdown lint rules # OpenAPI Vars OPENAPI_FILE_NAME='.openapirc.yml' # Name of the file -OPENAPI_LINTER_RULES="$DEFAULT_RULES_LOCATION/$OPENAPI_FILE_NAME" # Path to the OpenAPI lint rules +OPENAPI_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${OPENAPI_FILE_NAME}" # Path to the OpenAPI lint rules # Powershell Vars POWERSHELL_FILE_NAME='.powershell-psscriptanalyzer.psd1' # Name of the file -POWERSHELL_LINTER_RULES="$DEFAULT_RULES_LOCATION/$POWERSHELL_FILE_NAME" # Path to the Powershell lint rules +POWERSHELL_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${POWERSHELL_FILE_NAME}" # Path to the Powershell lint rules # Protocol Buffers Vars PROTOBUF_FILE_NAME='.protolintrc.yml' # Name of the file -PROTOBUF_LINTER_RULES="$DEFAULT_RULES_LOCATION/$PROTOBUF_FILE_NAME" # Path to the Protocol Buffers lint rules +PROTOBUF_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${PROTOBUF_FILE_NAME}" # Path to the Protocol Buffers lint rules # Python Vars PYTHON_FILE_NAME='.python-lint' # Name of the file -PYTHON_LINTER_RULES="$DEFAULT_RULES_LOCATION/$PYTHON_FILE_NAME" # Path to the python lint rules +PYTHON_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${PYTHON_FILE_NAME}" # Path to the python lint rules # Ruby Vars RUBY_FILE_NAME="${RUBY_CONFIG_FILE:-.ruby-lint.yml}" # Name of the file -RUBY_LINTER_RULES="$DEFAULT_RULES_LOCATION/$RUBY_FILE_NAME" # Path to the ruby lint rules +RUBY_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${RUBY_FILE_NAME}" # Path to the ruby lint rules # Terraform Vars TERRAFORM_FILE_NAME='.tflint.hcl' # Name of the file -TERRAFORM_LINTER_RULES="$DEFAULT_RULES_LOCATION/$TERRAFORM_FILE_NAME" # Path to the Terraform lint rules +TERRAFORM_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${TERRAFORM_FILE_NAME}" # Path to the Terraform lint rules # Typescript Vars TYPESCRIPT_FILE_NAME="${TYPESCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file -TYPESCRIPT_LINTER_RULES="$DEFAULT_RULES_LOCATION/$TYPESCRIPT_FILE_NAME" # Path to the Typescript lint rules +TYPESCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${TYPESCRIPT_FILE_NAME}" # Path to the Typescript lint rules TYPESCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard # YAML Vars YAML_FILE_NAME='.yaml-lint.yml' # Name of the file -YAML_LINTER_RULES="$DEFAULT_RULES_LOCATION/$YAML_FILE_NAME" # Path to the yaml lint rules +YAML_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${YAML_FILE_NAME}" # Path to the yaml lint rules ####################################### @@ -586,13 +586,13 @@ DetectAWSStatesFIle() { ################ # Pull in Vars # ################ - FILE="$1" # File that we need to validate + FILE="${1}" # File that we need to validate # https://states-language.net/spec.html#example ############################### # check if file has resources # ############################### - if grep '"Resource": *"arn"*' "$FILE"; then + if grep '"Resource": *"arn"*' "${FILE}"; then # Found it return 0 fi @@ -963,39 +963,39 @@ Footer() { ############################### # Exit with 1 if errors found # ############################### - elif [ "$ERRORS_FOUND_ANSIBLE" -ne 0 ] || - [ "$ERRORS_FOUND_ARM" -ne 0 ] || - [ "$ERRORS_FOUND_BASH" -ne 0 ] || - [ "$ERRORS_FOUND_CFN" -ne 0 ] || - [ "$ERRORS_FOUND_CLOJURE" -ne 0 ] || - [ "$ERRORS_FOUND_COFFEESCRIPT" -ne 0 ] || - [ "$ERRORS_FOUND_CSS" -ne 0 ] || - [ "$ERRORS_FOUND_DART" -ne 0 ] || - [ "$ERRORS_FOUND_DOCKER" -ne 0 ] || - [ "$ERRORS_FOUND_ENV" -ne 0 ] || - [ "$ERRORS_FOUND_GO" -ne 0 ] || - [ "$ERRORS_FOUND_HTML" -ne 0 ] || - [ "$ERRORS_FOUND_JAVASCRIPT_ES" -ne 0 ] || - [ "$ERRORS_FOUND_JAVASCRIPT_STANDARD" -ne 0 ] || - [ "$ERRORS_FOUND_JSON" -ne 0 ] || - [ "$ERRORS_FOUND_JSX" -ne 0 ] || - [ "$ERRORS_FOUND_KOTLIN" -ne 0 ] || - [ "$ERRORS_FOUND_MARKDOWN" -ne 0 ] || - [ "$ERRORS_FOUND_OPENAPI" -ne 0 ] || - [ "$ERRORS_FOUND_PERL" -ne 0 ] || - [ "$ERRORS_FOUND_PHP" -ne 0 ] || - [ "$ERRORS_FOUND_POWERSHELL" -ne 0 ] || - [ "$ERRORS_FOUND_PROTOBUF" -ne 0 ] || - [ "$ERRORS_FOUND_PYTHON" -ne 0 ] || - [ "$ERRORS_FOUND_RAKU" -ne 0 ] || - [ "$ERRORS_FOUND_RUBY" -ne 0 ] || - [ "$ERRORS_FOUND_STATES" -ne 0 ] || - [ "$ERRORS_FOUND_TERRAFORM" -ne 0 ] || - [ "$ERRORS_FOUND_TSX" -ne 0 ] || - [ "$ERRORS_FOUND_TYPESCRIPT_ES" -ne 0 ] || - [ "$ERRORS_FOUND_TYPESCRIPT_STANDARD" -ne 0 ] || - [ "$ERRORS_FOUND_XML" -ne 0 ] || - [ "$ERRORS_FOUND_YML" -ne 0 ]; then + elif [ "${ERRORS_FOUND_ANSIBLE}" -ne 0 ] || + [ "${ERRORS_FOUND_ARM}" -ne 0 ] || + [ "${ERRORS_FOUND_BASH}" -ne 0 ] || + [ "${ERRORS_FOUND_CFN}" -ne 0 ] || + [ "${ERRORS_FOUND_CLOJURE}" -ne 0 ] || + [ "${ERRORS_FOUND_COFFEESCRIPT}" -ne 0 ] || + [ "${ERRORS_FOUND_CSS}" -ne 0 ] || + [ "${ERRORS_FOUND_DART}" -ne 0 ] || + [ "${ERRORS_FOUND_DOCKER}" -ne 0 ] || + [ "${ERRORS_FOUND_ENV}" -ne 0 ] || + [ "${ERRORS_FOUND_GO}" -ne 0 ] || + [ "${ERRORS_FOUND_HTML}" -ne 0 ] || + [ "${ERRORS_FOUND_JAVASCRIPT_ES}" -ne 0 ] || + [ "${ERRORS_FOUND_JAVASCRIPT_STANDARD}" -ne 0 ] || + [ "${ERRORS_FOUND_JSON}" -ne 0 ] || + [ "${ERRORS_FOUND_JSX}" -ne 0 ] || + [ "${ERRORS_FOUND_KOTLIN}" -ne 0 ] || + [ "${ERRORS_FOUND_MARKDOWN}" -ne 0 ] || + [ "${ERRORS_FOUND_OPENAPI}" -ne 0 ] || + [ "${ERRORS_FOUND_PERL}" -ne 0 ] || + [ "${ERRORS_FOUND_PHP}" -ne 0 ] || + [ "${ERRORS_FOUND_POWERSHELL}" -ne 0 ] || + [ "${ERRORS_FOUND_PROTOBUF}" -ne 0 ] || + [ "${ERRORS_FOUND_PYTHON}" -ne 0 ] || + [ "${ERRORS_FOUND_RAKU}" -ne 0 ] || + [ "${ERRORS_FOUND_RUBY}" -ne 0 ] || + [ "${ERRORS_FOUND_STATES}" -ne 0 ] || + [ "${ERRORS_FOUND_TERRAFORM}" -ne 0 ] || + [ "${ERRORS_FOUND_TSX}" -ne 0 ] || + [ "${ERRORS_FOUND_TYPESCRIPT_ES}" -ne 0 ] || + [ "${ERRORS_FOUND_TYPESCRIPT_STANDARD}" -ne 0 ] || + [ "${ERRORS_FOUND_XML}" -ne 0 ] || + [ "${ERRORS_FOUND_YML}" -ne 0 ]; then # Failed exit echo -e "${NC}${F[R]}Exiting with errors found!${NC}" exit 1 @@ -1531,7 +1531,7 @@ fi ###################### # AWS STATES LINTING # ###################### -if [ "$VALIDATE_STATES" == "true" ]; then +if [ "${VALIDATE_STATES}" == "true" ]; then ######################### # Lint the STATES files # ######################### diff --git a/lib/validation.sh b/lib/validation.sh index a96cfd1c..4fffb249 100755 --- a/lib/validation.sh +++ b/lib/validation.sh @@ -260,9 +260,9 @@ function GetValidationInfo() { ########################################## # Validate if we should check AWS States # ########################################## - if [[ $ANY_SET == "true" ]]; then + if [[ ${ANY_SET} == "true" ]]; then # Some linter flags were set - only run those set to true - if [[ -z $VALIDATE_STATES ]]; then + if [[ -z ${VALIDATE_STATES} ]]; then # STATES flag was not set - default to false VALIDATE_STATES="false" fi @@ -735,7 +735,7 @@ function GetValidationInfo() { else PRINT_ARRAY+=("- Excluding [HTML] files in code base...") fi - if [[ $VALIDATE_STATES == "true" ]]; then + if [[ ${VALIDATE_STATES} == "true" ]]; then PRINT_ARRAY+=("- Validating [AWS STATES] files in code base...") else PRINT_ARRAY+=("- Excluding [AWS STATES] files in code base...") diff --git a/lib/worker.sh b/lib/worker.sh index cde619c1..a78ec722 100755 --- a/lib/worker.sh +++ b/lib/worker.sh @@ -577,11 +577,11 @@ function RunTestCases() { TestCodebase "PROTOBUF" "protolint" "protolint lint --config_path ${PROTOBUF_LINTER_RULES}" ".*\.\(proto\)\$" "protobuf" TestCodebase "PYTHON" "pylint" "pylint --rcfile ${PYTHON_LINTER_RULES}" ".*\.\(py\)\$" "python" TestCodebase "RAKU" "raku" "raku -c" ".*\.\(raku\|rakumod\|rakutest\|pm6\|pl6\|p6\)\$" "raku" - TestCodebase "RUBY" "rubocop" "rubocop -c $RUBY_LINTER_RULES" ".*\.\(rb\)\$" "ruby" + TestCodebase "RUBY" "rubocop" "rubocop -c ${RUBY_LINTER_RULES}" ".*\.\(rb\)\$" "ruby" TestCodebase "STATES" "asl-validator" "asl-validator --json-path" ".*\.\(json\)\$" "states" - TestCodebase "TERRAFORM" "tflint" "tflint -c $TERRAFORM_LINTER_RULES" ".*\.\(tf\)\$" "terraform" - TestCodebase "TYPESCRIPT_ES" "eslint" "eslint --no-eslintrc -c $TYPESCRIPT_LINTER_RULES" ".*\.\(ts\)\$" "typescript" - TestCodebase "TYPESCRIPT_STANDARD" "standard" "standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin $TYPESCRIPT_STANDARD_LINTER_RULES" ".*\.\(ts\)\$" "typescript" + TestCodebase "TERRAFORM" "tflint" "tflint -c ${TERRAFORM_LINTER_RULES}" ".*\.\(tf\)\$" "terraform" + TestCodebase "TYPESCRIPT_ES" "eslint" "eslint --no-eslintrc -c ${TYPESCRIPT_LINTER_RULES}" ".*\.\(ts\)\$" "typescript" + TestCodebase "TYPESCRIPT_STANDARD" "standard" "standard --parser @typescript-eslint/parser --plugin @typescript-eslint/eslint-plugin ${TYPESCRIPT_STANDARD_LINTER_RULES}" ".*\.\(ts\)\$" "typescript" TestCodebase "XML" "xmllint" "xmllint" ".*\.\(xml\)\$" "xml" TestCodebase "YML" "yamllint" "yamllint -c ${YAML_LINTER_RULES}" ".*\.\(yml\|yaml\)\$" "yml" From c1c3547e293a2fbefd4b33fe57f6afa47c993d9c Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Tue, 21 Jul 2020 14:43:22 -0500 Subject: [PATCH 02/10] Markdown getdown --- .automation/test/states/README.md | 8 ++- README.md | 98 +++++++++++++++---------------- 2 files changed, 56 insertions(+), 50 deletions(-) diff --git a/.automation/test/states/README.md b/.automation/test/states/README.md index fd526bb2..f2c3dfc3 100644 --- a/.automation/test/states/README.md +++ b/.automation/test/states/README.md @@ -1,13 +1,19 @@ # AWS States language Test Cases -This folder holds the test cases for **AWS States Language**. + +This folder holds the test cases for **AWS States Language**. ## Additional Docs + No Additional information is needed for this test case. ## Good Test Cases + The test cases denoted: `LANGUAGE_good_FILE.EXTENSION` are all valid, and should pass successfully when linted. + - **Note:** They are linted utilizing the default linter rules. ## Bad Test Cases + The test cases denoted: `LANGUAGE_bad_FILE.EXTENSION` are **NOT** valid, and should trigger errors when linted. + - **Note:** They are linted utilizing the default linter rules. diff --git a/README.md b/README.md index eab3c9c2..633d3ddb 100644 --- a/README.md +++ b/README.md @@ -165,56 +165,56 @@ This means that if you run the linter "out of the box", all languages will be ch But if you wish to select specific linters, we give you full control to choose which linters are run, and won't run anything unexpected. -| **ENV VAR** | **Default Value** | **Notes** | -| --- | --- | --- | -| **ACTIONS_RUNNER_DEBUG** | `false` | Flag to enable additional information about the linter, versions, and additional output. | -| **ANSIBLE_DIRECTORY** | `/ansible` | Flag to set the root directory for Ansible file location(s). | -| **DEFAULT_BRANCH** | `master` | The name of the repository default branch. | -| **DEFAULT_WORKSPACE** | `/tmp/lint` | The location containing files to lint if you are running locally. | -| **DISABLE_ERRORS** | `false` | Flag to have the linter complete with exit code 0 even if errors were detected. | -| **JAVASCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [eslint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`)| -| **LINTER_RULES_PATH** | `.github/linters` | Directory for all linter configuration rules. | -| **MULTI_STATUS** | `true` | A status API is made for each language that is linted to make visual parsing easier. | -| **OUTPUT_FORMAT** | `none` | The report format to be generated, besides the stdout one. Output format of tap is currently using v13 of the specification. Supported formats: tap | -| **OUTPUT_FOLDER** | `super-linter.report` | The location where the output reporting will be generated to. Output folder must not previously exist. | -| **OUTPUT_DETAILS** | `simpler` | What level of details to be reported. Supported formats: simpler or detailed. | -| **RUBY_CONFIG_FILE** | `.ruby-lint.yml` | Filename for [rubocop configuration](https://docs.rubocop.org/rubocop/configuration.html) (ex: `.ruby-lint.yml`, `.rubocop.yml`)| -| **TYPESCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [eslint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`)| +| **ENV VAR** | **Default Value** | **Notes** | +| -------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **ACTIONS_RUNNER_DEBUG** | `false` | Flag to enable additional information about the linter, versions, and additional output. | +| **ANSIBLE_DIRECTORY** | `/ansible` | Flag to set the root directory for Ansible file location(s). | +| **DEFAULT_BRANCH** | `master` | The name of the repository default branch. | +| **DEFAULT_WORKSPACE** | `/tmp/lint` | The location containing files to lint if you are running locally. | +| **DISABLE_ERRORS** | `false` | Flag to have the linter complete with exit code 0 even if errors were detected. | +| **JAVASCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [eslint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`) | +| **LINTER_RULES_PATH** | `.github/linters` | Directory for all linter configuration rules. | +| **MULTI_STATUS** | `true` | A status API is made for each language that is linted to make visual parsing easier. | +| **OUTPUT_FORMAT** | `none` | The report format to be generated, besides the stdout one. Output format of tap is currently using v13 of the specification. Supported formats: tap | +| **OUTPUT_FOLDER** | `super-linter.report` | The location where the output reporting will be generated to. Output folder must not previously exist. | +| **OUTPUT_DETAILS** | `simpler` | What level of details to be reported. Supported formats: simpler or detailed. | +| **RUBY_CONFIG_FILE** | `.ruby-lint.yml` | Filename for [rubocop configuration](https://docs.rubocop.org/rubocop/configuration.html) (ex: `.ruby-lint.yml`, `.rubocop.yml`) | +| **TYPESCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [eslint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`) | | **VALIDATE_ALL_CODEBASE** | `true` | Will parse the entire repository and find all files to validate across all types. **NOTE:** When set to `false`, only **new** or **edited** files will be parsed for validation. | -| **VALIDATE_ANSIBLE** | `true` | Flag to enable or disable the linting process of the Ansible language. | -| **VALIDATE_ARM** | `true` | Flag to enable or disable the linting process of the ARM language. | -| **VALIDATE_BASH** | `true` | Flag to enable or disable the linting process of the Bash language. | -| **VALIDATE_CLOJURE** | `true` | Flag to enable or disable the linting process of the Clojure language. | -| **VALIDATE_CLOUDFORMATION** | `true` | Flag to enable or disable the linting process of the AWS Cloud Formation language. | -| **VALIDATE_COFFEE** | `true` | Flag to enable or disable the linting process of the Coffeescript language . | -| **VALIDATE_CSS** | `true` | Flag to enable or disable the linting process of the CSS language. | -| **VALIDATE_DART** | `true` | Flag to enable or disable the linting process of the Dart language. | -| **VALIDATE_DOCKER** | `true` | Flag to enable or disable the linting process of the Docker language. | -| **VALIDATE_EDITORCONFIG** | `true` | Flag to enable or disable the linting process with the editorconfig. | -| **VALIDATE_ENV** | `true` | Flag to enable or disable the linting process of the ENV language. | -| **VALIDATE_GO** | `true` | Flag to enable or disable the linting process of the Golang language. | -| **VALIDATE_HTML** | `true` | Flag to enable or disable the linting process of the HTML language. | -| **VALIDATE_JAVASCRIPT_ES** | `true` | Flag to enable or disable the linting process of the Javascript language. (Utilizing: eslint) | -| **VALIDATE_JAVASCRIPT_STANDARD** | `true` | Flag to enable or disable the linting process of the Javascript language. (Utilizing: standard) | -| **VALIDATE_JSON** | `true` | Flag to enable or disable the linting process of the JSON language. | -| **VALIDATE_JSX** | `true` | Flag to enable or disable the linting process for jsx files (Utilizing: eslint) | -| **VALIDATE_KOTLIN** | `true` | Flag to enable or disable the linting process of the Kotlin language. | -| **VALIDATE_MD** | `true` | Flag to enable or disable the linting process of the Markdown language. | -| **VALIDATE_OPENAPI** | `true` | Flag to enable or disable the linting process of the OpenAPI language. | -| **VALIDATE_PERL** | `true` | Flag to enable or disable the linting process of the Perl language. | -| **VALIDATE_PHP** | `true` | Flag to enable or disable the linting process of the PHP language. | -| **VALIDATE_PROTOBUF** | `true` | Flag to enable or disable the linting process of the Protobuf language. | -| **VALIDATE_PYTHON** | `true` | Flag to enable or disable the linting process of the Python language. | -| **VALIDATE_POWERSHELL** | `true` | Flag to enable or disable the linting process of the Powershell language. | -| **VALIDATE_RAKU** | `true` | Flag to enable or disable the linting process of the Raku language. | -| **VALIDATE_RUBY** | `true` | Flag to enable or disable the linting process of the Ruby language. | -| **VALIDATE_STATES** | `true` | Flag to enable or disable the linting process for AWS States Language. | -| **VALIDATE_TERRAFORM** | `true` | Flag to enable or disable the linting process of the Terraform language. | -| **VALIDATE_TSX** | `true` | Flag to enable or disable the linting process for tsx files (Utilizing: eslint) | -| **VALIDATE_TYPESCRIPT_ES** | `true` | Flag to enable or disable the linting process of the Typescript language. (Utilizing: eslint) | -| **VALIDATE_TYPESCRIPT_STANDARD** | `true` | Flag to enable or disable the linting process of the Typescript language. (Utilizing: standard) | -| **VALIDATE_XML** | `true` | Flag to enable or disable the linting process of the XML language. | -| **VALIDATE_YAML** | `true` |Flag to enable or disable the linting process of the YAML language. | +| **VALIDATE_ANSIBLE** | `true` | Flag to enable or disable the linting process of the Ansible language. | +| **VALIDATE_ARM** | `true` | Flag to enable or disable the linting process of the ARM language. | +| **VALIDATE_BASH** | `true` | Flag to enable or disable the linting process of the Bash language. | +| **VALIDATE_CLOJURE** | `true` | Flag to enable or disable the linting process of the Clojure language. | +| **VALIDATE_CLOUDFORMATION** | `true` | Flag to enable or disable the linting process of the AWS Cloud Formation language. | +| **VALIDATE_COFFEE** | `true` | Flag to enable or disable the linting process of the Coffeescript language . | +| **VALIDATE_CSS** | `true` | Flag to enable or disable the linting process of the CSS language. | +| **VALIDATE_DART** | `true` | Flag to enable or disable the linting process of the Dart language. | +| **VALIDATE_DOCKER** | `true` | Flag to enable or disable the linting process of the Docker language. | +| **VALIDATE_EDITORCONFIG** | `true` | Flag to enable or disable the linting process with the editorconfig. | +| **VALIDATE_ENV** | `true` | Flag to enable or disable the linting process of the ENV language. | +| **VALIDATE_GO** | `true` | Flag to enable or disable the linting process of the Golang language. | +| **VALIDATE_HTML** | `true` | Flag to enable or disable the linting process of the HTML language. | +| **VALIDATE_JAVASCRIPT_ES** | `true` | Flag to enable or disable the linting process of the Javascript language. (Utilizing: eslint) | +| **VALIDATE_JAVASCRIPT_STANDARD** | `true` | Flag to enable or disable the linting process of the Javascript language. (Utilizing: standard) | +| **VALIDATE_JSON** | `true` | Flag to enable or disable the linting process of the JSON language. | +| **VALIDATE_JSX** | `true` | Flag to enable or disable the linting process for jsx files (Utilizing: eslint) | +| **VALIDATE_KOTLIN** | `true` | Flag to enable or disable the linting process of the Kotlin language. | +| **VALIDATE_MD** | `true` | Flag to enable or disable the linting process of the Markdown language. | +| **VALIDATE_OPENAPI** | `true` | Flag to enable or disable the linting process of the OpenAPI language. | +| **VALIDATE_PERL** | `true` | Flag to enable or disable the linting process of the Perl language. | +| **VALIDATE_PHP** | `true` | Flag to enable or disable the linting process of the PHP language. | +| **VALIDATE_PROTOBUF** | `true` | Flag to enable or disable the linting process of the Protobuf language. | +| **VALIDATE_PYTHON** | `true` | Flag to enable or disable the linting process of the Python language. | +| **VALIDATE_POWERSHELL** | `true` | Flag to enable or disable the linting process of the Powershell language. | +| **VALIDATE_RAKU** | `true` | Flag to enable or disable the linting process of the Raku language. | +| **VALIDATE_RUBY** | `true` | Flag to enable or disable the linting process of the Ruby language. | +| **VALIDATE_STATES** | `true` | Flag to enable or disable the linting process for AWS States Language. | +| **VALIDATE_TERRAFORM** | `true` | Flag to enable or disable the linting process of the Terraform language. | +| **VALIDATE_TSX** | `true` | Flag to enable or disable the linting process for tsx files (Utilizing: eslint) | +| **VALIDATE_TYPESCRIPT_ES** | `true` | Flag to enable or disable the linting process of the Typescript language. (Utilizing: eslint) | +| **VALIDATE_TYPESCRIPT_STANDARD** | `true` | Flag to enable or disable the linting process of the Typescript language. (Utilizing: standard) | +| **VALIDATE_XML** | `true` | Flag to enable or disable the linting process of the XML language. | +| **VALIDATE_YAML** | `true` | Flag to enable or disable the linting process of the YAML language. | ### Template rules files From 586677713406488a9085a4a206457432943ca299 Mon Sep 17 00:00:00 2001 From: Lukas Gravley Date: Tue, 21 Jul 2020 14:53:32 -0500 Subject: [PATCH 03/10] Rename expected-COFFEESCRIPT.tap to expected-COFFEESCRIPT.tap.ignored --- ...xpected-COFFEESCRIPT.tap => expected-COFFEESCRIPT.tap.ignored} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .automation/test/coffeescript/reports/{expected-COFFEESCRIPT.tap => expected-COFFEESCRIPT.tap.ignored} (100%) diff --git a/.automation/test/coffeescript/reports/expected-COFFEESCRIPT.tap b/.automation/test/coffeescript/reports/expected-COFFEESCRIPT.tap.ignored similarity index 100% rename from .automation/test/coffeescript/reports/expected-COFFEESCRIPT.tap rename to .automation/test/coffeescript/reports/expected-COFFEESCRIPT.tap.ignored From 85b58cc5cb931ca6321259ebdb1cb44beaf2973a Mon Sep 17 00:00:00 2001 From: Zack Koppert Date: Tue, 21 Jul 2020 13:01:19 -0700 Subject: [PATCH 04/10] Add new community maintainers --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c9921dce..008c31c3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,4 @@ ###################################################################### # These owners will be the default owners for everything in the repo # ###################################################################### -* @admiralawkbar @jwiebalk @zkoppert @IAmHughes +* @admiralawkbar @jwiebalk @zkoppert @IAmHughes @nemchik @Hanse00 From b6410c5cba46198ecbd18cd635df56c9044a64c0 Mon Sep 17 00:00:00 2001 From: Lukas Gravley Date: Tue, 21 Jul 2020 15:04:59 -0500 Subject: [PATCH 05/10] Rename expected-STATES.tap to expected-STATES.tap.ignored --- .../reports/{expected-STATES.tap => expected-STATES.tap.ignored} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .automation/test/states/reports/{expected-STATES.tap => expected-STATES.tap.ignored} (100%) diff --git a/.automation/test/states/reports/expected-STATES.tap b/.automation/test/states/reports/expected-STATES.tap.ignored similarity index 100% rename from .automation/test/states/reports/expected-STATES.tap rename to .automation/test/states/reports/expected-STATES.tap.ignored From bda5a6777d6191dac1767a75aae85edcd90b2d2a Mon Sep 17 00:00:00 2001 From: Gabo Date: Tue, 21 Jul 2020 20:17:51 -0500 Subject: [PATCH 06/10] Fix awk --- lib/buildFileList.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/buildFileList.sh b/lib/buildFileList.sh index 11462989..70dc7c4d 100755 --- a/lib/buildFileList.sh +++ b/lib/buildFileList.sh @@ -86,7 +86,7 @@ function BuildFileList() { ########################### # Extract just the file and extension, reverse it, cut off extension, # reverse it back, substitute to lowercase - FILE_TYPE=$(basename "${FILE}" | rev | cut -f1 -d'.' | rev | awk '{print tolower(${0})}') + FILE_TYPE=$(basename "${FILE}" | rev | cut -f1 -d'.' | rev | awk '{print tolower($0)}') ############## # Print file # From 1870af5c5f92907c9dd4a11536949edf6f1fe242 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jul 2020 06:07:25 +0000 Subject: [PATCH 07/10] Update actions/github-script requirement to v2 Updates the requirements on [actions/github-script](https://github.com/actions/github-script) to permit the latest version. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/commits/6e5ee1dc1cb3740e5e5e76ad668e3f526edbfe45) Signed-off-by: dependabot[bot] --- .github/workflows/automerge-dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/automerge-dependabot.yml b/.github/workflows/automerge-dependabot.yml index 1e212ebf..10942d09 100644 --- a/.github/workflows/automerge-dependabot.yml +++ b/.github/workflows/automerge-dependabot.yml @@ -30,7 +30,7 @@ jobs: if: github.actor == 'dependabot[bot]' steps: - name: merge - uses: actions/github-script@0.2.0 + uses: actions/github-script@v2 with: script: | github.pullRequests.createReview({ From eaa25456255f28626eb5e8379aa72a0156adba1c Mon Sep 17 00:00:00 2001 From: Lucas Gravley <29484535+admiralAwkbar@users.noreply.github.com> Date: Wed, 22 Jul 2020 08:06:35 -0500 Subject: [PATCH 08/10] adding it --- lib/linter.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/linter.sh b/lib/linter.sh index 4727016c..b3071780 100755 --- a/lib/linter.sh +++ b/lib/linter.sh @@ -312,9 +312,9 @@ GetLinterVersions() { # Go through the array of linters and print version info # ########################################################## for LINTER in "${LINTER_ARRAY[@]}"; do - ################### - # Get the version # - ################### + #################### + # Get the versions # + #################### if [[ "${LINTER}" == "arm-ttk" ]]; then # Need specific command for ARM mapfile -t GET_VERSION_CMD < <(grep -iE 'version' "${ARM_TTK_PSD1}" | xargs 2>&1) From e813af8313b0e60a815ecc5decb9d9cd8b3d8038 Mon Sep 17 00:00:00 2001 From: Lucas Gravley <29484535+admiralAwkbar@users.noreply.github.com> Date: Wed, 22 Jul 2020 09:20:02 -0500 Subject: [PATCH 09/10] Adding better error reporting --- lib/worker.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/worker.sh b/lib/worker.sh index a78ec722..1f461542 100755 --- a/lib/worker.sh +++ b/lib/worker.sh @@ -216,6 +216,7 @@ function LintCodebase() { # Error # ######### echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [${LINTER_NAME}] linter!${NC}" + echo -e "${NC}${B[R]}${F[W]}Command run:${NC}[\$${LINT_CMD}]${NC}" echo -e "${NC}${B[R]}${F[W]}ERROR:${NC}[${LINT_CMD}]${NC}" # Increment the error count (("ERRORS_FOUND_${FILE_TYPE}++")) @@ -431,6 +432,7 @@ function TestCodebase() { # Error # ######### echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [${LINTER_NAME}] linter!${NC}" + echo -e "${NC}${B[R]}${F[W]}Command run:${NC}[\$${LINT_CMD}]${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 @@ -460,6 +462,7 @@ function TestCodebase() { ######### 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]}Command run:${NC}[\$${LINT_CMD}]${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 From 54ee1cdfb43e72903fd40dd0baa5625260d111fa Mon Sep 17 00:00:00 2001 From: Lucas Gravley <29484535+admiralAwkbar@users.noreply.github.com> Date: Wed, 22 Jul 2020 09:35:21 -0500 Subject: [PATCH 10/10] fixed order --- lib/linter.sh | 81 +++++++++++++++++++++++++-------------------------- lib/worker.sh | 3 +- 2 files changed, 41 insertions(+), 43 deletions(-) diff --git a/lib/linter.sh b/lib/linter.sh index b3071780..c489a260 100755 --- a/lib/linter.sh +++ b/lib/linter.sh @@ -21,82 +21,81 @@ source /action/lib/worker.sh # Source the function script(s) ########### # GLOBALS # ########### +# Default Vars +DEFAULT_RULES_LOCATION='/action/lib/.automation' # Default rules files location # Ansible Vars -ANSIBLE_FILE_NAME='.ansible-lint.yml' # Name of the file -ANSIBLE_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${ANSIBLE_FILE_NAME}" # Path to the Ansible lint rules +ANSIBLE_FILE_NAME='.ansible-lint.yml' # Name of the file +ANSIBLE_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${ANSIBLE_FILE_NAME}" # Path to the Ansible lint rules # Azure Resource Manager Vars -ARM_FILE_NAME='.arm-ttk.psd1' # Name of the file -ARM_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${ARM_FILE_NAME}" # Path to the ARM lint rules +ARM_FILE_NAME='.arm-ttk.psd1' # Name of the file +ARM_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${ARM_FILE_NAME}" # Path to the ARM lint rules # Cloudformation Vars -CFN_FILE_NAME='.cfnlintrc.yml' # Name of the file +CFN_FILE_NAME='.cfnlintrc.yml' # Name of the file CFN_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${CFN_FILE_NAME}" # Path to the cloudformation lint rules # Clojure Vars -CLOJURE_FILE_NAME='.clj-kondo/config.edn' # Name of the file +CLOJURE_FILE_NAME='.clj-kondo/config.edn' # Name of the file CLOJURE_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${CLOJURE_FILE_NAME}" # Path to the Clojure lint rules # Coffee Vars +COFFEE_FILE_NAME='.coffee-lint.json' # Name of the file COFFEESCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${COFFEE_FILE_NAME}" # Path to the coffeescript lint rules -COFFEE_FILE_NAME='.coffee-lint.json' # Name of the file # CSS Vars -CSS_FILE_NAME='.stylelintrc.json' # Name of the file +CSS_FILE_NAME='.stylelintrc.json' # Name of the file CSS_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${CSS_FILE_NAME}" # Path to the CSS lint rules # Dart Vars -DART_FILE_NAME='analysis_options.yaml' # Name of the file +DART_FILE_NAME='analysis_options.yaml' # Name of the file DART_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${DART_FILE_NAME}" # Path to the DART lint rules -# Default Vars -DEFAULT_RULES_LOCATION='/action/lib/.automation' # Default rules files location # Docker Vars -DOCKER_FILE_NAME='.dockerfilelintrc' # Name of the file +DOCKER_FILE_NAME='.dockerfilelintrc' # Name of the file DOCKER_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${DOCKER_FILE_NAME}" # Path to the Docker lint rules # Golang Vars -GO_FILE_NAME='.golangci.yml' # Name of the file +GO_FILE_NAME='.golangci.yml' # Name of the file GO_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${GO_FILE_NAME}" # Path to the Go lint rules # HTML Vars -HTML_FILE_NAME='.htmlhintrc' # Name of the file +HTML_FILE_NAME='.htmlhintrc' # Name of the file HTML_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${HTML_FILE_NAME}" # Path to the CSS lint rules # Javascript Vars -JAVASCRIPT_FILE_NAME="${JAVASCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file +JAVASCRIPT_FILE_NAME="${JAVASCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file JAVASCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${JAVASCRIPT_FILE_NAME}" # Path to the Javascript lint rules -JAVASCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard +JAVASCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard # Default linter path -LINTER_RULES_PATH="${LINTER_RULES_PATH:-.github/linters}" # Linter Path Directory +LINTER_RULES_PATH="${LINTER_RULES_PATH:-.github/linters}" # Linter Path Directory # MD Vars -MARKDOWN_FILE_NAME='.markdown-lint.yml' # Name of the file +MARKDOWN_FILE_NAME='.markdown-lint.yml' # Name of the file MARKDOWN_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${MARKDOWN_FILE_NAME}" # Path to the markdown lint rules # OpenAPI Vars -OPENAPI_FILE_NAME='.openapirc.yml' # Name of the file +OPENAPI_FILE_NAME='.openapirc.yml' # Name of the file OPENAPI_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${OPENAPI_FILE_NAME}" # Path to the OpenAPI lint rules # Powershell Vars -POWERSHELL_FILE_NAME='.powershell-psscriptanalyzer.psd1' # Name of the file +POWERSHELL_FILE_NAME='.powershell-psscriptanalyzer.psd1' # Name of the file POWERSHELL_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${POWERSHELL_FILE_NAME}" # Path to the Powershell lint rules # Protocol Buffers Vars -PROTOBUF_FILE_NAME='.protolintrc.yml' # Name of the file +PROTOBUF_FILE_NAME='.protolintrc.yml' # Name of the file PROTOBUF_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${PROTOBUF_FILE_NAME}" # Path to the Protocol Buffers lint rules # Python Vars -PYTHON_FILE_NAME='.python-lint' # Name of the file +PYTHON_FILE_NAME='.python-lint' # Name of the file PYTHON_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${PYTHON_FILE_NAME}" # Path to the python lint rules # Ruby Vars -RUBY_FILE_NAME="${RUBY_CONFIG_FILE:-.ruby-lint.yml}" # Name of the file +RUBY_FILE_NAME="${RUBY_CONFIG_FILE:-.ruby-lint.yml}" # Name of the file RUBY_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${RUBY_FILE_NAME}" # Path to the ruby lint rules # Terraform Vars -TERRAFORM_FILE_NAME='.tflint.hcl' # Name of the file +TERRAFORM_FILE_NAME='.tflint.hcl' # Name of the file TERRAFORM_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${TERRAFORM_FILE_NAME}" # Path to the Terraform lint rules # Typescript Vars -TYPESCRIPT_FILE_NAME="${TYPESCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file +TYPESCRIPT_FILE_NAME="${TYPESCRIPT_ES_CONFIG_FILE:-.eslintrc.yml}" # Name of the file TYPESCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${TYPESCRIPT_FILE_NAME}" # Path to the Typescript lint rules -TYPESCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard +TYPESCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard # YAML Vars -YAML_FILE_NAME='.yaml-lint.yml' # Name of the file +YAML_FILE_NAME='.yaml-lint.yml' # Name of the file YAML_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${YAML_FILE_NAME}" # Path to the yaml lint rules - ####################################### # Linter array for information prints # ####################################### -LINTER_ARRAY=('ansible-lint' 'arm-ttk' 'asl-validator' 'cfn-lint' 'clj-kondo' 'coffeelint' - 'dart' 'dockerfilelint' 'dotenv-linter' 'eslint' 'golangci-lint' 'htmlhint' - 'jsonlint' 'ktlint' 'markdownlint' 'perl' 'protolint' 'pwsh' 'pylint' - 'raku' 'rubocop' 'shellcheck' 'spectral' 'standard' 'stylelint' 'tflint' - 'xmllint' 'yamllint') +LINTER_ARRAY=('ansible-lint' 'arm-ttk' 'asl-validator' 'cfn-lint' 'clj-kondo' + 'coffeelint' 'dart' 'dockerfilelint' 'dotenv-linter' 'eslint' 'golangci-lint' + 'htmlhint' 'jsonlint' 'ktlint' 'markdownlint' 'perl' 'protolint' 'pwsh' + 'pylint' 'raku' 'rubocop' 'shellcheck' 'spectral' 'standard' 'stylelint' + 'tflint' 'xmllint' 'yamllint') ############################# # Language array for prints # @@ -105,8 +104,8 @@ LANGUAGE_ARRAY=('ANSIBLE' 'ARM' 'BASH' 'CFN' 'CLOJURE' 'COFFEESCRIPT' 'CSS' 'DART' 'DOCKER' 'ENV' 'GO' 'HTML' 'JAVASCRIPT_ES' 'JAVASCRIPT_STANDARD' 'JSON' 'JSX' 'KOTLIN' 'MARKDOWN' 'OPENAPI' 'PERL' 'PHP' 'POWERSHELL' 'PROTOBUF' 'PYTHON' - 'RAKU' 'RUBY' 'STATES' 'TERRAFORM' 'TSX' 'TYPESCRIPT_ES' 'TYPESCRIPT_STANDARD' - 'XML' 'YML') + 'RAKU' 'RUBY' 'STATES' 'TERRAFORM' 'TSX' 'TYPESCRIPT_ES' + 'TYPESCRIPT_STANDARD' 'XML' 'YML') ############################################ # Array for all languages that were linted # @@ -171,10 +170,10 @@ ACTIONS_RUNNER_DEBUG="${ACTIONS_RUNNER_DEBUG:-false}" # Boolean to see even more ################ # 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_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 ############################################################### @@ -188,7 +187,7 @@ READ_ONLY_CHANGE_FLAG=0 # Flag set to 1 if 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_ANSIBLE_DIRECTORY="${GITHUB_WORKSPACE}/ansible" # Default Ansible Directory echo "${DEFAULT_ANSIBLE_DIRECTORY}" > /dev/null 2>&1 || true # Workaround SC2034 WARNING_ARRAY_TEST=() # Array of warning linters that did not have an expected test result. echo "${WARNING_ARRAY_TEST[*]}" > /dev/null 2>&1 || true # Workaround SC2034 @@ -199,7 +198,7 @@ echo "${WARNING_ARRAY_TEST[*]}" > /dev/null 2>&1 || true # Workaround SC2034 OUTPUT_FORMAT="${OUTPUT_FORMAT}" # Output format to be generated. Default none OUTPUT_FOLDER="${OUTPUT_FOLDER:-super-linter.report}" # Folder where the reports are generated. Default super-linter.report OUTPUT_DETAILS="${OUTPUT_DETAILS:-simpler}" # What level of details. (simpler or detailed). Default simpler -REPORT_OUTPUT_FOLDER="${DEFAULT_WORKSPACE}/${OUTPUT_FOLDER}" +REPORT_OUTPUT_FOLDER="${DEFAULT_WORKSPACE}/${OUTPUT_FOLDER}" # Location for the report folder ########################## # Array of changed files # diff --git a/lib/worker.sh b/lib/worker.sh index 1f461542..f5957f4e 100755 --- a/lib/worker.sh +++ b/lib/worker.sh @@ -216,8 +216,8 @@ function LintCodebase() { # Error # ######### echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [${LINTER_NAME}] linter!${NC}" - echo -e "${NC}${B[R]}${F[W]}Command run:${NC}[\$${LINT_CMD}]${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}++")) @@ -432,7 +432,6 @@ function TestCodebase() { # Error # ######### echo -e "${NC}${B[R]}${F[W]}ERROR!${NC} Found errors in [${LINTER_NAME}] linter!${NC}" - echo -e "${NC}${B[R]}${F[W]}Command run:${NC}[\$${LINT_CMD}]${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