mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-25 02:01:02 -05:00
Don't write colors and logs on disk if not necessary (#4934)
* Don't write colors and logs on disk if not necessary * Set color markers * Fix colors * Fix linting errors * Fix linting errors * Use sudo to access logs
This commit is contained in:
parent
5a8805dc4f
commit
879672e936
4 changed files with 76 additions and 28 deletions
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
|
@ -69,6 +69,7 @@ jobs:
|
||||||
uses: ./
|
uses: ./
|
||||||
env:
|
env:
|
||||||
ACTIONS_RUNNER_DEBUG: true
|
ACTIONS_RUNNER_DEBUG: true
|
||||||
|
CREATE_LOG_FILE: true
|
||||||
ERROR_ON_MISSING_EXEC_BIT: true
|
ERROR_ON_MISSING_EXEC_BIT: true
|
||||||
VALIDATE_ALL_CODEBASE: false
|
VALIDATE_ALL_CODEBASE: false
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
@ -76,6 +77,11 @@ jobs:
|
||||||
RENOVATE_SHAREABLE_CONFIG_PRESET_FILE_NAMES: "default.json,hoge.json"
|
RENOVATE_SHAREABLE_CONFIG_PRESET_FILE_NAMES: "default.json,hoge.json"
|
||||||
TYPESCRIPT_STANDARD_TSCONFIG_FILE: ".github/linters/tsconfig.json"
|
TYPESCRIPT_STANDARD_TSCONFIG_FILE: ".github/linters/tsconfig.json"
|
||||||
|
|
||||||
|
- name: Get the contents of the log file
|
||||||
|
run: |
|
||||||
|
sudo cat super-linter.log
|
||||||
|
sudo rm -v super-linter.log
|
||||||
|
|
||||||
- name: Run Test Suite
|
- name: Run Test Suite
|
||||||
run: make test
|
run: make test
|
||||||
|
|
||||||
|
@ -96,7 +102,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
docker run \
|
docker run \
|
||||||
-e RUN_LOCAL=true \
|
-e RUN_LOCAL=true \
|
||||||
-e OUTPUT_DETAILS=detailed \
|
|
||||||
-e ACTIONS_RUNNER_DEBUG=true \
|
-e ACTIONS_RUNNER_DEBUG=true \
|
||||||
-e RENOVATE_SHAREABLE_CONFIG_PRESET_FILE_NAMES="default.json,hoge.json" \
|
-e RENOVATE_SHAREABLE_CONFIG_PRESET_FILE_NAMES="default.json,hoge.json" \
|
||||||
-e ERROR_ON_MISSING_EXEC_BIT=true \
|
-e ERROR_ON_MISSING_EXEC_BIT=true \
|
||||||
|
|
|
@ -278,7 +278,7 @@ But if you wish to select or exclude specific linters, we give you full control
|
||||||
| **ANSIBLE_CONFIG_FILE** | `.ansible-lint.yml` | Filename for [Ansible-lint configuration](https://ansible.readthedocs.io/projects/lint/configuring/) (ex: `.ansible-lint`, `.ansible-lint.yml`) |
|
| **ANSIBLE_CONFIG_FILE** | `.ansible-lint.yml` | Filename for [Ansible-lint configuration](https://ansible.readthedocs.io/projects/lint/configuring/) (ex: `.ansible-lint`, `.ansible-lint.yml`) |
|
||||||
| **ANSIBLE_DIRECTORY** | `/ansible` | Flag to set the root directory for Ansible file location(s), relative to `DEFAULT_WORKSPACE`. Set to `.` to use the top-level of the `DEFAULT_WORKSPACE`. |
|
| **ANSIBLE_DIRECTORY** | `/ansible` | Flag to set the root directory for Ansible file location(s), relative to `DEFAULT_WORKSPACE`. Set to `.` to use the top-level of the `DEFAULT_WORKSPACE`. |
|
||||||
| **BASH_SEVERITY** | `style` | Specify the minimum severity of errors to consider in shellcheck. Valid values in order of severity are error, warning, info and style. |
|
| **BASH_SEVERITY** | `style` | Specify the minimum severity of errors to consider in shellcheck. Valid values in order of severity are error, warning, info and style. |
|
||||||
| **CREATE_LOG_FILE** | `false` | If set to `true`, it creates the log file. You can set the log filename using the `LOG_FILE` environment variable. |
|
| **CREATE_LOG_FILE** | `false` | If set to `true`, it creates the log file. You can set the log filename using the `LOG_FILE` environment variable. This overrides any existing log files. |
|
||||||
| **CSS_FILE_NAME** | `.stylelintrc.json` | Filename for [Stylelint configuration](https://github.com/stylelint/stylelint) (ex: `.stylelintrc.yml`, `.stylelintrc.yaml`) |
|
| **CSS_FILE_NAME** | `.stylelintrc.json` | Filename for [Stylelint configuration](https://github.com/stylelint/stylelint) (ex: `.stylelintrc.yml`, `.stylelintrc.yaml`) |
|
||||||
| **DEFAULT_BRANCH** | `master` | The name of the repository default branch. |
|
| **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. Defaults to `GITHUB_WORKSPACE` when running in GitHub Actions. There's no need to configure this variable when running in GitHub Actions. |
|
| **DEFAULT_WORKSPACE** | `/tmp/lint` | The location containing files to lint if you are running locally. Defaults to `GITHUB_WORKSPACE` when running in GitHub Actions. There's no need to configure this variable when running in GitHub Actions. |
|
||||||
|
|
|
@ -1,5 +1,14 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Background colors:
|
||||||
|
# Blue
|
||||||
|
# Cyan
|
||||||
|
# Green
|
||||||
|
# Black
|
||||||
|
# Magenta
|
||||||
|
# Red
|
||||||
|
# White
|
||||||
|
# Yellow
|
||||||
declare -Agr B=(
|
declare -Agr B=(
|
||||||
[B]=$(echo -e "\e[44m")
|
[B]=$(echo -e "\e[44m")
|
||||||
[C]=$(echo -e "\e[46m")
|
[C]=$(echo -e "\e[46m")
|
||||||
|
@ -10,6 +19,16 @@ declare -Agr B=(
|
||||||
[W]=$(echo -e "\e[47m")
|
[W]=$(echo -e "\e[47m")
|
||||||
[Y]=$(echo -e "\e[43m")
|
[Y]=$(echo -e "\e[43m")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Foreground colors:
|
||||||
|
# Blue
|
||||||
|
# Cyan
|
||||||
|
# Green
|
||||||
|
# Black
|
||||||
|
# Magenta
|
||||||
|
# Red
|
||||||
|
# White
|
||||||
|
# Yellow
|
||||||
declare -Agr F=(
|
declare -Agr F=(
|
||||||
[B]=$(echo -e "\e[0;34m")
|
[B]=$(echo -e "\e[0;34m")
|
||||||
[C]=$(echo -e "\e[0;36m")
|
[C]=$(echo -e "\e[0;36m")
|
||||||
|
@ -20,6 +39,8 @@ declare -Agr F=(
|
||||||
[W]=$(echo -e "\e[0;37m")
|
[W]=$(echo -e "\e[0;37m")
|
||||||
[Y]=$(echo -e "\e[0;33m")
|
[Y]=$(echo -e "\e[0;33m")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Reset
|
||||||
NC=$(echo -e "\e[0m")
|
NC=$(echo -e "\e[0m")
|
||||||
readonly NC
|
readonly NC
|
||||||
|
|
||||||
|
@ -27,28 +48,47 @@ export B
|
||||||
export F
|
export F
|
||||||
export NC
|
export NC
|
||||||
|
|
||||||
# Log Functions
|
|
||||||
LOG_TEMP=$(mktemp) || echo "Failed to create temporary log file."
|
LOG_TEMP=$(mktemp) || echo "Failed to create temporary log file."
|
||||||
export LOG_TEMP
|
export LOG_TEMP
|
||||||
echo "super-linter Log" >"${LOG_TEMP}"
|
|
||||||
log() {
|
log() {
|
||||||
local TOTERM=${1:-}
|
local TOTERM=${1:-}
|
||||||
local MESSAGE=${2:-}
|
local MESSAGE=${2:-}
|
||||||
echo -e "${MESSAGE:-}" | (
|
local LOG_LEVEL_LABEL="[${3}]"
|
||||||
if [[ -n ${TOTERM} ]]; then
|
|
||||||
tee -a "${LOG_TEMP}" >&2
|
local LOG_MESSAGE_DATE
|
||||||
else
|
LOG_MESSAGE_DATE="$(date +"%F %T")"
|
||||||
cat >>"${LOG_TEMP}" 2>&1
|
local COLOR_MARKER
|
||||||
fi
|
COLOR_MARKER="${F[B]}"
|
||||||
)
|
|
||||||
|
if [ "${LOG_LEVEL_LABEL}" == "NOTICE" ]; then
|
||||||
|
COLOR_MARKER="${F[G]}"
|
||||||
|
elif [ "${LOG_LEVEL_LABEL}" == "WARN" ]; then
|
||||||
|
COLOR_MARKER="${F[Y]}"
|
||||||
|
elif [ "${LOG_LEVEL_LABEL}" == "ERROR" ] || [ "${LOG_LEVEL_LABEL}" == "FATAL" ]; then
|
||||||
|
COLOR_MARKER="${F[R]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local COLORED_MESSAGE
|
||||||
|
COLORED_MESSAGE="${NC}${LOG_MESSAGE_DATE} ${COLOR_MARKER}${LOG_LEVEL_LABEL}${NC} ${MESSAGE}${NC}"
|
||||||
|
local MESSAGE_FOR_LOG_FILE
|
||||||
|
MESSAGE_FOR_LOG_FILE="${LOG_MESSAGE_DATE} ${LOG_LEVEL_LABEL} ${MESSAGE}"
|
||||||
|
|
||||||
|
if [[ -n ${TOTERM} ]]; then
|
||||||
|
echo -e "${COLORED_MESSAGE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${CREATE_LOG_FILE}" = "true" ]; then
|
||||||
|
echo -e "${MESSAGE_FOR_LOG_FILE}" >>"${LOG_TEMP}"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
trace() { log "${LOG_TRACE:-}" "${NC}$(date +"%F %T") ${F[B]}[TRACE]${NC} $*${NC}"; }
|
trace() { log "${LOG_TRACE:-}" "$*" "TRACE"; }
|
||||||
debug() { log "${LOG_DEBUG:-}" "${NC}$(date +"%F %T") ${F[B]}[DEBUG]${NC} $*${NC}"; }
|
debug() { log "${LOG_DEBUG:-}" "$*" "DEBUG"; }
|
||||||
info() { log "${LOG_VERBOSE:-}" "${NC}$(date +"%F %T") ${F[B]}[INFO]${NC} $*${NC}"; }
|
info() { log "${LOG_VERBOSE:-}" "$*" "INFO"; }
|
||||||
notice() { log "${LOG_NOTICE:-}" "${NC}$(date +"%F %T") ${F[G]}[NOTICE]${NC} $*${NC}"; }
|
notice() { log "${LOG_NOTICE:-}" "$*" "NOTICE"; }
|
||||||
warn() { log "${LOG_WARN:-}" "${NC}$(date +"%F %T") ${F[Y]}[WARN]${NC} $*${NC}"; }
|
warn() { log "${LOG_WARN:-}" "$*" "WARN"; }
|
||||||
error() { log "${LOG_ERROR:-}" "${NC}$(date +"%F %T") ${F[R]}[ERROR]${NC} $*${NC}"; }
|
error() { log "${LOG_ERROR:-}" "$*" "ERROR"; }
|
||||||
fatal() {
|
fatal() {
|
||||||
log "true" "${NC}$(date +"%F %T") ${B[R]}${F[W]}[FATAL]${NC} $*${NC}"
|
log "true" "$*" "FATAL"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,8 @@ IMAGE="${IMAGE:-standard}" # Version of the Super-lin
|
||||||
# Log Vars #
|
# Log Vars #
|
||||||
# Define these early, so we can use debug logging ASAP if needed #
|
# Define these early, so we can use debug logging ASAP if needed #
|
||||||
##################################################################
|
##################################################################
|
||||||
LOG_FILE="${LOG_FILE:-super-linter.log}" # Default log file name (located in GITHUB_WORKSPACE folder)
|
LOG_FILE="${LOG_FILE:-"super-linter.log"}" # Default log file name (located in GITHUB_WORKSPACE folder)
|
||||||
LOG_LEVEL="${LOG_LEVEL:-VERBOSE}" # Default log level (VERBOSE, DEBUG, TRACE)
|
LOG_LEVEL="${LOG_LEVEL:-VERBOSE}" # Default log level (VERBOSE, DEBUG, TRACE)
|
||||||
CREATE_LOG_FILE="${CREATE_LOG_FILE:-"false"}"
|
CREATE_LOG_FILE="${CREATE_LOG_FILE:-"false"}"
|
||||||
export CREATE_LOG_FILE
|
export CREATE_LOG_FILE
|
||||||
|
|
||||||
|
@ -96,6 +96,8 @@ LINTER_RULES_PATH="${LINTER_RULES_PATH:-.github/linters}" # Linter rules directo
|
||||||
VERSION_FILE='/action/lib/functions/linterVersions.txt' # File to store linter versions
|
VERSION_FILE='/action/lib/functions/linterVersions.txt' # File to store linter versions
|
||||||
export VERSION_FILE # Workaround SC2034
|
export VERSION_FILE # Workaround SC2034
|
||||||
|
|
||||||
|
debug "CREATE_LOG_FILE: ${CREATE_LOG_FILE}"
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Rules files #
|
# Rules files #
|
||||||
###############
|
###############
|
||||||
|
@ -649,10 +651,7 @@ CallStatusAPI() {
|
||||||
# Check the shell for errors #
|
# Check the shell for errors #
|
||||||
##############################
|
##############################
|
||||||
if [ "${ERROR_CODE}" -ne 0 ]; then
|
if [ "${ERROR_CODE}" -ne 0 ]; then
|
||||||
# ERROR
|
info "Failed to call GitHub Status API: ${SEND_STATUS_CMD}"
|
||||||
info "ERROR! Failed to call GitHub Status API!"
|
|
||||||
info "ERROR:[${SEND_STATUS_CMD}]"
|
|
||||||
# Not going to fail the script on this yet...
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -775,13 +774,17 @@ UpdateLoopsForImage() {
|
||||||
# shellcheck disable=SC2317
|
# shellcheck disable=SC2317
|
||||||
cleanup() {
|
cleanup() {
|
||||||
local -ri EXIT_CODE=$?
|
local -ri EXIT_CODE=$?
|
||||||
|
# Define this variable here so we can rely on it as soon as possible
|
||||||
local LOG_FILE_PATH="${GITHUB_WORKSPACE}/${LOG_FILE}"
|
local LOG_FILE_PATH="${GITHUB_WORKSPACE}/${LOG_FILE}"
|
||||||
debug "CREATE_LOG_FILE: ${CREATE_LOG_FILE}, LOG_FILE_PATH: ${LOG_FILE_PATH}"
|
debug "LOG_FILE_PATH: ${LOG_FILE_PATH}"
|
||||||
if [ "${CREATE_LOG_FILE}" = "true" ]; then
|
if [ "${CREATE_LOG_FILE}" = "true" ]; then
|
||||||
debug "Creating log file: ${LOG_FILE_PATH}"
|
debug "Moving log file from ${LOG_TEMP} to ${LOG_FILE_PATH}"
|
||||||
sh -c "cat ${LOG_TEMP} >> ${LOG_FILE_PATH}" || true
|
mv \
|
||||||
|
--force \
|
||||||
|
--verbose \
|
||||||
|
"${LOG_TEMP}" "${LOG_FILE_PATH}"
|
||||||
else
|
else
|
||||||
debug "Skipping the log file creation"
|
debug "Skipping the moving of the log file from ${LOG_TEMP} to ${LOG_FILE_PATH}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit "${EXIT_CODE}"
|
exit "${EXIT_CODE}"
|
||||||
|
|
Loading…
Reference in a new issue