Compare commits

...

6 Commits

Author SHA1 Message Date
Tom Hu
0da7aa657d chore(release): 5.3.0 (#1751) 2025-01-23 16:10:33 -03:00
codecov-releaser-app[bot]
1ca7ce65df chore(release): wrapper -0.1.0 (#1750)
chore(release): wrapper-0.1.0

Co-authored-by: codecov-releaser <devops+releaser@codecov.io>
2025-01-23 15:51:18 -03:00
Tom Hu
65baa5fcb6 Update README with reqs (#1749)
* Update README.md

* Update README.md
2025-01-23 08:25:38 -03:00
Tom Hu
5a605bd927 chore(release): bump to 5.2.0 (#1748) 2025-01-22 13:33:10 -03:00
tserg
5825942583 Fix typo in README (#1747)
Fix typo
2025-01-22 13:08:39 -03:00
Tom Hu
b1a63834ce Th/add commands (#1745)
* chore(deps): bump wrapper to 0.0.33

* feat: allow for new commands

* fix: bump to 0.0.34
2025-01-22 13:08:22 -03:00
6 changed files with 145 additions and 74 deletions

View File

@@ -1,3 +1,27 @@
## v5.3.0
### What's Changed
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.2.0..v5.3.0
## v5.2.0
### What's Changed
* Fix typo in README by @tserg in https://github.com/codecov/codecov-action/pull/1747
* Th/add commands by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1745
* use correct audience when requesting oidc token by @juho9000 in https://github.com/codecov/codecov-action/pull/1744
* build(deps): bump github/codeql-action from 3.27.9 to 3.28.1 by @app/dependabot in https://github.com/codecov/codecov-action/pull/1742
* build(deps): bump actions/upload-artifact from 4.4.3 to 4.6.0 by @app/dependabot in https://github.com/codecov/codecov-action/pull/1743
* chore(deps): bump wrapper to 0.0.32 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1740
* feat: add disable-telem feature by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1739
* fix: remove erroneous linebreak in readme by @Vampire in https://github.com/codecov/codecov-action/pull/1734
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.1.2..v5.2.0
## v5.1.2
### What's Changed

View File

@@ -45,6 +45,9 @@ You can see their usage in the `action.yml` [file](https://github.com/codecov/co
To integrate Codecov with your Actions pipeline, specify the name of this repository with a tag number (`@v5` is recommended) as a `step` within your `workflow.yml` file.
> [!WARNING]
> In order for the Action to work seamlessly, you will need to have `curl`, `git`, and `gpg` installed on your runner. You will also need to run the [actions/checkout](https://github.com/actions/checkout) before calling the Codecov action.
This Action also requires you to [provide an upload token](https://docs.codecov.io/docs/frequently-asked-questions#section-where-is-the-repository-upload-token-found-) from [codecov.io](https://www.codecov.io) (tip: in order to avoid exposing your token, [store it](https://docs.codecov.com/docs/adding-the-codecov-token#github-actions) as a `secret`).
Currently, the Action will identify linux, macos, and windows runners. However, the Action may misidentify other architectures. The OS can be specified as
@@ -106,7 +109,7 @@ Codecov's Action supports inputs from the user. These inputs, along with their d
| Input | Description | Required |
| :--- | :--- | :---: |
| `binary` | The file location of a pre-downloaded version of the CLI. If specified, integrity checking will be bypassed. | Optional
| `codecov_yml_path` | The location of the codecov.yml file. This is crrently ONLY used for automated test selection (https://docs.codecov.com/docs/getting-started-with-ats). Note that for all other cases, the Codecov yaml will need to be located as described here: https://docs.codecov.com/docs/codecov-yaml#can-i-name-the-file-codecovyml | Optional
| `codecov_yml_path` | The location of the codecov.yml file. This is currently ONLY used for automated test selection (https://docs.codecov.com/docs/getting-started-with-ats). Note that for all other cases, the Codecov yaml will need to be located as described here: https://docs.codecov.com/docs/codecov-yaml#can-i-name-the-file-codecovyml | Optional
| `commit_parent` | SHA (with 40 chars) of what should be the parent of this commit. | Optional
| `directory` | Folder to search for coverage files. Default to the current working directory | Optional
| `disable_file_fixes` | Disable file fixes to ignore common lines from coverage (e.g. blank lines or empty brackets). Read more here https://docs.codecov.com/docs/fixing-reports | Optional

View File

@@ -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
@@ -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
@@ -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
@@ -139,6 +149,10 @@ inputs:
description: 'Use OIDC instead of token. This will ignore any token supplied'
required: false
default: 'false'
use_pypi:
description: 'Use the pypi version of the CLI instead of from cli.codecov.io'
required: false
default: 'false'
verbose:
description: 'Enable verbose logging'
required: false
@@ -253,6 +267,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 }}
@@ -268,6 +283,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 }}
@@ -284,9 +300,12 @@ runs:
CC_PARENT_SHA: ${{ inputs.commit_parent }}
CC_PLUGINS: ${{ inputs.plugins }}
CC_REPORT_TYPE: ${{ inputs.report_type }}
CC_RUN_CMD: ${{ inputs.run_command }}
CC_SERVICE: ${{ inputs.git_service }}
CC_SKIP_VALIDATION: ${{ inputs.skip_validation }}
CC_SLUG: ${{ inputs.slug }}
CC_SWIFT_PROJECT: ${{ inputs.swift_project }}
CC_USE_PYPI: ${{ inputs.use_pypi }}
CC_VERBOSE: ${{ inputs.verbose }}
CC_VERSION: ${{ inputs.version }}
CC_YML_PATH: ${{ inputs.codecov_yml_path }}

167
dist/codecov.sh vendored
View File

@@ -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"
@@ -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" ];
@@ -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
@@ -136,70 +137,6 @@ then
fi
cc_cli_args+=( $(write_truthy_args CC_DISABLE_TELEM) )
cc_cli_args+=( $(write_truthy_args CC_VERBOSE) )
cc_uc_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))
# Args for create report
cc_uc_args+=( $(k_arg CODE) $(v_arg CODE))
# Args for do upload
cc_uc_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) )
if [ -n "$CC_EXCLUDES" ];
then
for directory in $CC_EXCLUDES; do
cc_uc_args+=( "--exclude" "$directory" )
done
fi
if [ -n "$CC_FILES" ];
then
for file in $CC_FILES; do
cc_uc_args+=( "--file" "$file" )
done
fi
if [ -n "$CC_FLAGS" ];
then
for flag in $CC_FLAGS; do
cc_uc_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) )
if [ -n "$CC_NAME" ];
then
cc_uc_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))
if [ -n "$CC_PLUGINS" ];
then
for plugin in $CC_PLUGINS; do
cc_uc_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))
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)"
@@ -214,13 +151,101 @@ 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"
if [ "$CC_RUN_COMMAND" == "upload-coverage" ]; then
cc_run_args=()
# Args for create commit
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_run_args+=( $(k_arg CODE) $(v_arg CODE))
# Args for do upload
cc_run_args+=( $(k_arg ENV) $(v_arg ENV))
OLDIFS=$IFS;IFS=,
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_run_args+=( "--exclude" "$directory" )
done
fi
if [ -n "$CC_FILES" ];
then
for file in $CC_FILES; do
cc_run_args+=( "--file" "$file" )
done
fi
if [ -n "$CC_FLAGS" ];
then
for flag in $CC_FLAGS; do
cc_run_args+=( "--flag" "$flag" )
done
fi
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_run_args+=( "--name" "$CC_NAME" )
fi
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_run_args+=( "--plugin" "$plugin" )
done
fi
cc_run_args+=( $(k_arg REPORT_TYPE) $(v_arg REPORT_TYPE))
cc_run_args+=( $(k_arg SWIFT_PROJECT) $(v_arg SWIFT_PROJECT))
IFS=$OLDIFS
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
exit_if_error "Invalid run command specified: $CC_RUN_COMMAND"
exit
fi
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

View File

@@ -1 +1 @@
5.1.2
5.3.0