Skip to content

Commit

Permalink
Th/add commands (#1745)
Browse files Browse the repository at this point in the history
* chore(deps): bump wrapper to 0.0.33

* feat: allow for new commands

* fix: bump to 0.0.34
  • Loading branch information
thomasrockhu-codecov authored Jan 22, 2025
1 parent 6c5b693 commit b1a6383
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 57 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -1009,4 +1009,4 @@ for the full list.
### Dependencies and Misc
- #166 Bump requestretry from 4.1.1 to 4.1.2
- #169 Bump typescript from 4.0.5 to 4.1.2
- #178 Bump @types/jest from 26.0.15 to 26.0.19
- #178 Bump @types/jest from 26.0.15 to 26.0.19
14 changes: 14 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ name: 'Codecov'
description: 'GitHub Action that uploads coverage reports for your repository to codecov.io'
author: 'Thomas Hu <@thomasrockhu-codecov> | Codecov'
inputs:
base_sha:
description: 'The base SHA to select. This is only used in the "pr-base-picking" run command'
required: false
binary:
description: 'The file location of a pre-downloaded version of the CLI. If specified, integrity checking will be bypassed.'
required: false
Expand Down Expand Up @@ -52,6 +55,9 @@ inputs:
flags:
description: 'Comma-separated list of flags to upload to group coverage metrics.'
required: false
force:
description: 'Only used for empty-upload run command'
required: false
git_service:
description: 'Override the git_service (e.g. github_enterprise)'
required: false
Expand Down Expand Up @@ -115,6 +121,10 @@ inputs:
root_dir:
description: 'Root folder from which to consider paths on the network section. Defaults to current working directory.'
required: false
run_command:
description: 'Choose which CLI command to run. Options are "upload-coverage", "empty-upload", "pr-base-picking", "send-notifications". "upload-coverage" is run by default.'
required: false
default: 'upload-coverage'
skip_validation:
description: 'Skip integrity checking of the CLI. This is NOT recommended.'
required: false
Expand Down Expand Up @@ -253,6 +263,7 @@ runs:
shell: bash
working-directory: ${{ inputs.working-directory }}
env:
CC_BASE_SHA: ${{ inputs.base_sha }}
CC_BINARY: ${{ inputs.binary }}
CC_BUILD: ${{ inputs.override_build }}
CC_BUILD_URL: ${{ inputs.override_build_url }}
Expand All @@ -268,6 +279,7 @@ runs:
CC_FAIL_ON_ERROR: ${{ inputs.fail_ci_if_error }}
CC_FILES: ${{ inputs.files }}
CC_FLAGS: ${{ inputs.flags }}
CC_FORCE: ${{ inputs.force }}
CC_GCOV_ARGS: ${{ inputs.gcov_args }}
CC_GCOV_EXECUTABLE: ${{ inputs.gcov_executable }}
CC_GCOV_IGNORE: ${{ inputs.gcov_ignore }}
Expand All @@ -284,6 +296,8 @@ runs:
CC_PARENT_SHA: ${{ inputs.commit_parent }}
CC_PLUGINS: ${{ inputs.plugins }}
CC_REPORT_TYPE: ${{ inputs.report_type }}
CC_RUN_COMMAND: ${{ inputs.run_command }}
CC_SERVICE: ${{ inputs.git_service }}
CC_SKIP_VALIDATION: ${{ inputs.skip_validation }}
CC_SLUG: ${{ inputs.slug }}
CC_SWIFT_PROJECT: ${{ inputs.swift_project }}
Expand Down
135 changes: 80 additions & 55 deletions dist/codecov.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
CC_WRAPPER_VERSION="0.0.32"
CC_WRAPPER_VERSION="0.0.34"
set +u
say() {
echo -e "$1"
Expand Down Expand Up @@ -47,6 +47,7 @@ say " _____ _
"
CC_VERSION="${CC_VERSION:-latest}"
CC_FAIL_ON_ERROR="${CC_FAIL_ON_ERROR:-false}"
CC_RUN_COMMAND="${CC_RUN_COMMAND:-upload-coverage}"
if [ -n "$CC_BINARY" ];
then
if [ -f "$CC_BINARY" ];
Expand Down Expand Up @@ -84,7 +85,7 @@ else
curl -Os "$cc_url"
say "$g==>$x Finishing downloading $b${CC_OS}:${CC_VERSION}$x"
version_url="https://cli.codecov.io/api/${CC_OS}/${CC_VERSION}"
version=$(curl -s "$version_url" -H "Accept:application/json" | jq -r '.version')
version=$(curl -s "$version_url" -H "Accept:application/json" | tr \{ '\n' | tr , '\n' | tr \} '\n' | grep "\"version\"" | awk -F'"' '{print $4}' | tail -1)
say " Version: $b$version$x"
say " "
fi
Expand Down Expand Up @@ -136,91 +137,115 @@ then
fi
cc_cli_args+=( $(write_truthy_args CC_DISABLE_TELEM) )
cc_cli_args+=( $(write_truthy_args CC_VERBOSE) )
cc_uc_args=()
if [ -n "$CC_TOKEN_VAR" ];
then
token="$(eval echo \$$CC_TOKEN_VAR)"
else
token="$(eval echo $CC_TOKEN)"
fi
say "$g ->$x Token of length ${#token} detected"
token_str=""
token_arg=()
if [ -n "$token" ];
then
token_str+=" -t <redacted>"
token_arg+=( " -t " "$token")
fi
if [ "$CC_RUN_COMMAND" == "upload-coverage" ]; then
cc_run_args=()
# Args for create commit
cc_uc_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
cc_uc_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
cc_uc_args+=( $(k_arg PARENT_SHA) $(v_arg PARENT_SHA))
cc_uc_args+=( $(k_arg PR) $(v_arg PR))
cc_uc_args+=( $(k_arg SHA) $(v_arg SHA))
cc_uc_args+=( $(k_arg SLUG) $(v_arg SLUG))
cc_run_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
cc_run_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
cc_run_args+=( $(k_arg PARENT_SHA) $(v_arg PARENT_SHA))
cc_run_args+=( $(k_arg PR) $(v_arg PR))
cc_run_args+=( $(k_arg SHA) $(v_arg SHA))
cc_run_args+=( $(k_arg SLUG) $(v_arg SLUG))
# Args for create report
cc_uc_args+=( $(k_arg CODE) $(v_arg CODE))
cc_run_args+=( $(k_arg CODE) $(v_arg CODE))
# Args for do upload
cc_uc_args+=( $(k_arg ENV) $(v_arg ENV))
cc_run_args+=( $(k_arg ENV) $(v_arg ENV))
OLDIFS=$IFS;IFS=,
cc_uc_args+=( $(k_arg BRANCH) $(v_arg BRANCH))
cc_uc_args+=( $(k_arg BUILD) $(v_arg BUILD))
cc_uc_args+=( $(k_arg BUILD_URL) $(v_arg BUILD_URL))
cc_uc_args+=( $(k_arg DIR) $(v_arg DIR))
cc_uc_args+=( $(write_truthy_args CC_DISABLE_FILE_FIXES) )
cc_uc_args+=( $(write_truthy_args CC_DISABLE_SEARCH) )
cc_uc_args+=( $(write_truthy_args CC_DRY_RUN) )
cc_run_args+=( $(k_arg BRANCH) $(v_arg BRANCH))
cc_run_args+=( $(k_arg BUILD) $(v_arg BUILD))
cc_run_args+=( $(k_arg BUILD_URL) $(v_arg BUILD_URL))
cc_run_args+=( $(k_arg DIR) $(v_arg DIR))
cc_run_args+=( $(write_truthy_args CC_DISABLE_FILE_FIXES) )
cc_run_args+=( $(write_truthy_args CC_DISABLE_SEARCH) )
cc_run_args+=( $(write_truthy_args CC_DRY_RUN) )
if [ -n "$CC_EXCLUDES" ];
then
for directory in $CC_EXCLUDES; do
cc_uc_args+=( "--exclude" "$directory" )
cc_run_args+=( "--exclude" "$directory" )
done
fi
if [ -n "$CC_FILES" ];
then
for file in $CC_FILES; do
cc_uc_args+=( "--file" "$file" )
cc_run_args+=( "--file" "$file" )
done
fi
if [ -n "$CC_FLAGS" ];
then
for flag in $CC_FLAGS; do
cc_uc_args+=( "--flag" "$flag" )
cc_run_args+=( "--flag" "$flag" )
done
fi
cc_uc_args+=( $(k_arg GCOV_ARGS) $(v_arg GCOV_ARGS))
cc_uc_args+=( $(k_arg GCOV_EXECUTABLE) $(v_arg GCOV_EXECUTABLE))
cc_uc_args+=( $(k_arg GCOV_IGNORE) $(v_arg GCOV_IGNORE))
cc_uc_args+=( $(k_arg GCOV_INCLUDE) $(v_arg GCOV_INCLUDE))
cc_uc_args+=( $(write_truthy_args CC_HANDLE_NO_REPORTS_FOUND) )
cc_uc_args+=( $(k_arg JOB_CODE) $(v_arg JOB_CODE))
cc_uc_args+=( $(write_truthy_args CC_LEGACY) )
cc_run_args+=( $(k_arg GCOV_ARGS) $(v_arg GCOV_ARGS))
cc_run_args+=( $(k_arg GCOV_EXECUTABLE) $(v_arg GCOV_EXECUTABLE))
cc_run_args+=( $(k_arg GCOV_IGNORE) $(v_arg GCOV_IGNORE))
cc_run_args+=( $(k_arg GCOV_INCLUDE) $(v_arg GCOV_INCLUDE))
cc_run_args+=( $(write_truthy_args CC_HANDLE_NO_REPORTS_FOUND) )
cc_run_args+=( $(k_arg JOB_CODE) $(v_arg JOB_CODE))
cc_run_args+=( $(write_truthy_args CC_LEGACY) )
if [ -n "$CC_NAME" ];
then
cc_uc_args+=( "--name" "$CC_NAME" )
cc_run_args+=( "--name" "$CC_NAME" )
fi
cc_uc_args+=( $(k_arg NETWORK_FILTER) $(v_arg NETWORK_FILTER))
cc_uc_args+=( $(k_arg NETWORK_PREFIX) $(v_arg NETWORK_PREFIX))
cc_uc_args+=( $(k_arg NETWORK_ROOT_FOLDER) $(v_arg NETWORK_ROOT_FOLDER))
cc_run_args+=( $(k_arg NETWORK_FILTER) $(v_arg NETWORK_FILTER))
cc_run_args+=( $(k_arg NETWORK_PREFIX) $(v_arg NETWORK_PREFIX))
cc_run_args+=( $(k_arg NETWORK_ROOT_FOLDER) $(v_arg NETWORK_ROOT_FOLDER))
if [ -n "$CC_PLUGINS" ];
then
for plugin in $CC_PLUGINS; do
cc_uc_args+=( "--plugin" "$plugin" )
cc_run_args+=( "--plugin" "$plugin" )
done
fi
cc_uc_args+=( $(k_arg REPORT_TYPE) $(v_arg REPORT_TYPE))
cc_uc_args+=( $(k_arg SWIFT_PROJECT) $(v_arg SWIFT_PROJECT))
cc_run_args+=( $(k_arg REPORT_TYPE) $(v_arg REPORT_TYPE))
cc_run_args+=( $(k_arg SWIFT_PROJECT) $(v_arg SWIFT_PROJECT))
IFS=$OLDIFS
unset NODE_OPTIONS
# See https://github.com/codecov/uploader/issues/475
chmod +x $cc_command
if [ -n "$CC_TOKEN_VAR" ];
then
token="$(eval echo \$$CC_TOKEN_VAR)"
elif [ "$CC_RUN_COMMAND" == "empty-upload" ]; then
cc_run_args=()
cc_run_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
cc_run_args+=( $(write_truthy_args CC_FORCE) )
cc_run_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
cc_run_args+=( $(k_arg SHA) $(v_arg SHA))
cc_run_args+=( $(k_arg SLUG) $(v_arg SLUG))
elif [ "$CC_RUN_COMMAND" == "pr-base-picking" ]; then
cc_run_args=()
cc_run_args+=( $(k_arg BASE_SHA) $(v_arg BASE_SHA))
cc_run_args+=( $(k_arg PR) $(v_arg PR))
cc_run_args+=( $(k_arg SLUG) $(v_arg SLUG))
cc_run_args+=( $(k_arg SERVICE) $(v_arg SERVICE))
elif [ "$CC_RUN_COMMAND" == "send-notifications" ]; then
cc_run_args=()
cc_run_args+=( $(k_arg SHA) $(v_arg SHA))
cc_run_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
cc_run_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
cc_run_args+=( $(k_arg SLUG) $(v_arg SLUG))
else
token="$(eval echo $CC_TOKEN)"
exit_if_error "Invalid run command specified: $CC_RUN_COMMAND"
exit
fi
say "$g ->$x Token of length ${#token} detected"
token_str=""
token_arg=()
if [ -n "$token" ];
then
token_str+=" -t <redacted>"
token_arg+=( " -t " "$token")
fi
say "$g==>$x Running upload-coverage"
say " $b$cc_command $(echo "${cc_cli_args[@]}") upload-coverage$token_str $(echo "${cc_uc_args[@]}")$x"
unset NODE_OPTIONS
# See https://github.com/codecov/uploader/issues/475
chmod +x "$cc_command"
say "$g==>$x Running $CC_RUN_COMMAND"
say " $b$cc_command $(echo "${cc_cli_args[@]}")$CC_RUN_COMMAND$token_str $(echo "${cc_run_args[@]}")$x"
if ! $cc_command \
${cc_cli_args[*]} \
upload-coverage \
${CC_RUN_COMMAND} \
${token_arg[*]} \
"${cc_uc_args[@]}";
"${cc_run_args[@]}";
then
exit_if_error "Failed to upload coverage"
exit_if_error "Failed to run $CC_RUN_COMMAND"
fi

0 comments on commit b1a6383

Please sign in to comment.