Add debug info for multi status api calls (#1287)

* Add debug info for multi status api calls

* Add test for clean action

* Add more verbose

* Test in action context

* Test use local build as action

* Improve debug for raw file array

* Fix shallow fetch

* Fix error messages on diff cmd

* Changed repeated code to function

* Fix quotes
This commit is contained in:
Gabriel Diaz 2021-03-02 09:29:12 -05:00 committed by GitHub
parent a636deac61
commit 46df94844c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 70 additions and 87 deletions

View file

@ -42,6 +42,9 @@ jobs:
########################## ##########################
- name: Checkout Code - name: Checkout Code
uses: actions/checkout@v2.3.4 uses: actions/checkout@v2.3.4
with:
# Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth: 0
######################## ########################
# Get the current date # # Get the current date #
@ -76,6 +79,26 @@ jobs:
shell: bash shell: bash
run: .automation/validate-docker-labels.sh run: .automation/validate-docker-labels.sh
########################################
# Edit action.yml for test local build #
########################################
- name: Edit an action.yml file for test local build
run: |
sed -i "s/super-linter:.*/super-linter:${GITHUB_SHA}'/g" action.yml
##########################
# Test in action context #
##########################
# Test the built image in the actions context.
# Not the container directly, and not using RUN_LOCAL=true
- name: Test the local action
uses: ./
env:
ACTIONS_RUNNER_DEBUG: true
ERROR_ON_MISSING_EXEC_BIT: true
VALIDATE_ALL_CODEBASE: false
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
##################################### #####################################
# Run Linter against Test code base # # Run Linter against Test code base #
##################################### #####################################

View file

@ -7,6 +7,44 @@
################################################################################ ################################################################################
########################## FUNCTION CALLS BELOW ################################ ########################## FUNCTION CALLS BELOW ################################
################################################################################ ################################################################################
################################################################################
#### Function GenerateFileDiff #################################################
function GenerateFileDiff() {
CMD="${1}"
################
# print header #
################
debug "----------------------------------------------"
debug "Generating Diff with:[$CMD]"
#################################################
# Get the Array of files changed in the commits #
#################################################
CMD_OUTPUT=$($CMD)
#######################
# Load the error code #
#######################
ERROR_CODE=$?
##############################
# Check the shell for errors #
##############################
if [ ${ERROR_CODE} -ne 0 ]; then
# Error
info "Failed to get Diff with:[$CMD]"
info "Check that you have the full git history, the checkout is not shallow, etc"
info "See https://github.com/github/super-linter#example-connecting-github-action-workflow"
fatal "[${CMD_OUTPUT}]"
fi
###################################################
# Map command output to an array to proper handle #
###################################################
mapfile -t RAW_FILE_ARRAY < <(echo "$DIFF_TREE_CMD_OUTPUT")
debug "RAW_FILE_ARRAY contents: ${RAW_FILE_ARRAY[*]}"
}
################################################################################ ################################################################################
#### Function BuildFileList #################################################### #### Function BuildFileList ####################################################
function BuildFileList() { function BuildFileList() {
@ -63,38 +101,7 @@ function BuildFileList() {
# push event # # push event #
################ ################
DIFF_TREE_CMD="git diff-tree --no-commit-id --name-only -r ${GITHUB_SHA}" DIFF_TREE_CMD="git diff-tree --no-commit-id --name-only -r ${GITHUB_SHA}"
GenerateFileDiff "$DIFF_TREE_CMD"
################
# print header #
################
debug "----------------------------------------------"
debug "Generating Diff with:[$DIFF_TREE_CMD]"
#################################################
# Get the Array of files changed in the commits #
#################################################
DIFF_TREE_CMD_OUTPUT=$($DIFF_TREE_CMD)
#######################
# Load the error code #
#######################
ERROR_CODE=$?
##############################
# Check the shell for errors #
##############################
if [ ${ERROR_CODE} -ne 0 ]; then
# Error
info "Failed to get Diff with:[$DIFF_TREE_CMD]"
info "Check that you have the full git history, the checkout is not shallow, etc"
info "See https://github.com/github/super-linter#example-connecting-github-action-workflow"
fatal "[${DIFF_TREE_CMD}]"
fi
###################################################
# Map command output to an array to proper handle #
###################################################
mapfile -t RAW_FILE_ARRAY < <(echo "$DIFF_TREE_CMD_OUTPUT")
############################################################### ###############################################################
# Need to see if the array is empty, if so, try the other way # # Need to see if the array is empty, if so, try the other way #
@ -108,35 +115,8 @@ function BuildFileList() {
debug "WARN: Generation of File array with diff-tree produced [0] items, trying with git diff..." debug "WARN: Generation of File array with diff-tree produced [0] items, trying with git diff..."
DIFF_CMD="git -C ${GITHUB_WORKSPACE} diff --name-only ${DEFAULT_BRANCH}...${GITHUB_SHA} --diff-filter=d" DIFF_CMD="git -C ${GITHUB_WORKSPACE} diff --name-only ${DEFAULT_BRANCH}...${GITHUB_SHA} --diff-filter=d"
GenerateFileDiff "$DIFF_CMD"
debug "----------------------------------------------"
debug "Generating Diff with:[$DIFF_CMD]"
#################################################
# Get the Array of files changed in the commits #
#################################################
DIFF_CMD_OUTPUT=$($DIFF_CMD)
#######################
# Load the error code #
#######################
ERROR_CODE=$?
##############################
# Check the shell for errors #
##############################
if [ ${ERROR_CODE} -ne 0 ]; then
# Error
info "Failed to get Diff with:[$DIFF_CMD]"
info "Check that you have the full git history, the checkout is not shallow, etc"
info "See https://github.com/github/super-linter#example-connecting-github-action-workflow"
fatal "[${DIFF_CMD}]"
fi
###################################################
# Map command output to an array to proper handle #
###################################################
mapfile -t RAW_FILE_ARRAY < <(echo "$DIFF_CMD_OUTPUT")
fi fi
else else
################ ################
@ -146,33 +126,7 @@ function BuildFileList() {
# print header # # print header #
################ ################
DIFF_CMD="git -C ${GITHUB_WORKSPACE} diff --name-only ${DEFAULT_BRANCH}...${GITHUB_SHA} --diff-filter=d" DIFF_CMD="git -C ${GITHUB_WORKSPACE} diff --name-only ${DEFAULT_BRANCH}...${GITHUB_SHA} --diff-filter=d"
GenerateFileDiff "$DIFF_CMD"
debug "----------------------------------------------"
debug "Generating Diff with:[$DIFF_CMD]"
#################################################
# Get the Array of files changed in the commits #
#################################################
DIFF_CMD_OUTPUT=$($DIFF_CMD)
#######################
# Load the error code #
#######################
ERROR_CODE=$?
##############################
# Check the shell for errors #
##############################
if [ ${ERROR_CODE} -ne 0 ]; then
# Error
info "Failed to get Diff with:[$DIFF_CMD]"
fatal "[${DIFF_CMD}]"
fi
###################################################
# Map command output to an array to proper handle #
###################################################
mapfile -t RAW_FILE_ARRAY < <(echo "$DIFF_CMD_OUTPUT")
fi fi
else else
WORKSPACE_PATH="${GITHUB_WORKSPACE}" WORKSPACE_PATH="${GITHUB_WORKSPACE}"

View file

@ -558,6 +558,8 @@ CallStatusAPI() {
FAIL_MSG='Errors were detected, please view logs' FAIL_MSG='Errors were detected, please view logs'
MESSAGE='' # Message to send to status API MESSAGE='' # Message to send to status API
debug "Calling Multi-Status API for $LANGUAGE with status $STATUS"
###################################### ######################################
# Check the status to create message # # Check the status to create message #
###################################### ######################################
@ -579,6 +581,8 @@ CallStatusAPI() {
STATUS="success" STATUS="success"
fi fi
debug "URL: ${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/statuses/${GITHUB_SHA}"
############################################## ##############################################
# Call the status API to create status check # # Call the status API to create status check #
############################################## ##############################################
@ -599,6 +603,8 @@ CallStatusAPI() {
####################### #######################
ERROR_CODE=$? ERROR_CODE=$?
debug "Send status comd output: [$SEND_STATUS_CMD]"
############################## ##############################
# Check the shell for errors # # Check the shell for errors #
############################## ##############################