mirror of
https://github.com/codecov/codecov-action
synced 2026-09-07 20:03:43 +00:00
chore(release): 7.1.0
Bump the wrapper submodule to 0.3.0 and expose the new cleanup input for downloading the CLI into a temporary directory. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10,6 +10,8 @@
|
||||
|
||||
`v7` of the Codecov GitHub Action bumps the [Codecov Wrapper](https://github.com/codecov/wrapper) submodule, which now fetches the Codecov Uploader PGP verification key from the `codecovsecops` Keybase account.
|
||||
|
||||
`v7.1.0` updates the wrapper to `0.3.0`, which adds an optional `cleanup` input to download the CLI into a temporary directory, and accepts CircleCI-style `1`/`0` values for `skip_validation` and `use_pypi`.
|
||||
|
||||
## v6 Release
|
||||
|
||||
`v6` of the Codecov GitHub Action support node24
|
||||
@@ -137,6 +139,7 @@ Codecov's Action supports inputs from the user. These inputs, along with their d
|
||||
| :--- | :--- | :---: |
|
||||
| `base_sha` | 'The base SHA to select. This is only used in the "pr-base-picking" run command' | Optional
|
||||
| `binary` | The file location of a pre-downloaded version of the CLI. If specified, integrity checking will be bypassed. | Optional
|
||||
| `cleanup` | If true, download the CLI into a temporary directory and clean it up after the run. Off by default. | 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
|
||||
|
||||
@@ -10,6 +10,10 @@ inputs:
|
||||
binary:
|
||||
description: 'The file location of a pre-downloaded version of the CLI. If specified, integrity checking will be bypassed.'
|
||||
required: false
|
||||
cleanup:
|
||||
description: 'If true, download the CLI into a temporary directory and clean it up after the run. Off by default to preserve legacy behavior of downloading into the current working directory.'
|
||||
required: false
|
||||
default: 'false'
|
||||
codecov_yml_path:
|
||||
description: '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'
|
||||
required: false
|
||||
@@ -317,6 +321,7 @@ runs:
|
||||
CC_BINARY: ${{ inputs.binary }}
|
||||
CC_BUILD: ${{ inputs.override_build }}
|
||||
CC_BUILD_URL: ${{ inputs.override_build_url }}
|
||||
CC_CLEANUP: ${{ inputs.cleanup }}
|
||||
CC_CODE: ${{ inputs.report_code }}
|
||||
CC_DIR: ${{ inputs.directory }}
|
||||
CC_DISABLE_FILE_FIXES: ${{ inputs.disable_file_fixes }}
|
||||
|
||||
Vendored
+41
-15
@@ -37,11 +37,12 @@ g="\033[0;32m" # info/debug
|
||||
r="\033[0;31m" # errors
|
||||
x="\033[0m"
|
||||
retry="--retry 5 --retry-delay 2"
|
||||
CC_WRAPPER_VERSION="0.2.9"
|
||||
CC_WRAPPER_VERSION="0.3.0"
|
||||
CC_VERSION="${CC_VERSION:-latest}"
|
||||
CC_FAIL_ON_ERROR="${CC_FAIL_ON_ERROR:-false}"
|
||||
CC_RUN_CMD="${CC_RUN_CMD:-upload-coverage}"
|
||||
CC_CLI_TYPE=${CC_CLI_TYPE:-"codecov-cli"}
|
||||
CC_CLEANUP="${CC_CLEANUP:-false}"
|
||||
say " _____ _
|
||||
/ ____| | |
|
||||
| | ___ __| | ___ ___ _____ __
|
||||
@@ -63,7 +64,7 @@ then
|
||||
else
|
||||
exit_if_error "Could not find binary file $CC_BINARY"
|
||||
fi
|
||||
elif [ "$CC_USE_PYPI" == "true" ];
|
||||
elif [ "$CC_USE_PYPI" == "true" ] || [ "$CC_USE_PYPI" == "1" ];
|
||||
then
|
||||
if ! pip install "${CC_CLI_TYPE}$([ "$CC_VERSION" == "latest" ] && echo "" || echo "==$CC_VERSION")"; then
|
||||
exit_if_error "Could not install via pypi."
|
||||
@@ -77,6 +78,14 @@ then
|
||||
CC_COMMAND="${CC_CLI_TYPE}"
|
||||
fi
|
||||
else
|
||||
CC_DOWNLOAD_DIR="."
|
||||
if [ "$CC_CLEANUP" == "true" ]; then
|
||||
CC_DOWNLOAD_DIR=$(mktemp -d)
|
||||
cleanup_downloads() {
|
||||
rm -rf "$CC_DOWNLOAD_DIR"
|
||||
}
|
||||
trap cleanup_downloads EXIT
|
||||
fi
|
||||
if [ -n "$CC_OS" ];
|
||||
then
|
||||
say "$g==>$x Overridden OS: $b${CC_OS}$x"
|
||||
@@ -93,7 +102,7 @@ else
|
||||
fi
|
||||
CC_FILENAME="${CC_CLI_TYPE%-cli}"
|
||||
[[ $CC_OS == "windows" ]] && CC_FILENAME+=".exe"
|
||||
CC_COMMAND="./$CC_FILENAME"
|
||||
CC_COMMAND="$CC_DOWNLOAD_DIR/$CC_FILENAME"
|
||||
[[ $CC_OS == "macos" ]] && \
|
||||
! command -v gpg 2>&1 >/dev/null && \
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install gpg
|
||||
@@ -101,24 +110,36 @@ else
|
||||
CC_URL="$CC_URL/${CC_VERSION}"
|
||||
CC_URL="$CC_URL/${CC_OS}/${CC_FILENAME}"
|
||||
say "$g ->$x Downloading $b${CC_URL}$x"
|
||||
curl -O $retry "$CC_URL"
|
||||
curl -o "$CC_COMMAND" $retry "$CC_URL"
|
||||
say "$g==>$x Finishing downloading $b${CC_OS}:${CC_VERSION}$x"
|
||||
v_url="https://cli.codecov.io/api/${CC_OS}/${CC_VERSION}"
|
||||
v=$(curl $retry --retry-all-errors -s "$v_url" -H "Accept:application/json" | tr \{ '\n' | tr , '\n' | tr \} '\n' | grep "\"version\"" | awk -F'"' '{print $4}' | tail -1)
|
||||
say " Version: $b$v$x"
|
||||
say " "
|
||||
fi
|
||||
if [ "$CC_SKIP_VALIDATION" == "true" ] || [ -n "$CC_BINARY" ] || [ "$CC_USE_PYPI" == "true" ];
|
||||
if [ "$CC_SKIP_VALIDATION" == "true" ] || [ "$CC_SKIP_VALIDATION" == "1" ] || [ -n "$CC_BINARY" ] || [ "$CC_USE_PYPI" == "true" ] || [ "$CC_USE_PYPI" == "1" ];
|
||||
then
|
||||
say "$r==>$x Bypassing validation..."
|
||||
if [ "$CC_SKIP_VALIDATION" == "true" ];
|
||||
if [ "$CC_SKIP_VALIDATION" == "true" ] || [ "$CC_SKIP_VALIDATION" == "1" ];
|
||||
then
|
||||
chmod +x "$CC_COMMAND"
|
||||
fi
|
||||
else
|
||||
echo "$(curl -s https://keybase.io/codecovsecops/pgp_keys.asc)" | \
|
||||
gpg --no-default-keyring --import
|
||||
# One-time step
|
||||
gpg_key_url="https://keybase.io/codecovsecops/pgp_keys.asc"
|
||||
gpg_import_ok=false
|
||||
for gpg_attempt in 1 2 3; do
|
||||
if curl -sf $retry "$gpg_key_url" | gpg --no-default-keyring --import; then
|
||||
gpg_import_ok=true
|
||||
break
|
||||
fi
|
||||
if [ "$gpg_attempt" -lt 3 ]; then
|
||||
say "$r ->$x GPG key import attempt $gpg_attempt failed, retrying..."
|
||||
sleep 2
|
||||
fi
|
||||
done
|
||||
if [ "$gpg_import_ok" != "true" ]; then
|
||||
exit_if_error "Could not import GPG verification key after 3 attempts. Please contact Codecov if problem continues"
|
||||
fi
|
||||
say "$g==>$x Verifying GPG signature integrity"
|
||||
sha_url="https://cli.codecov.io"
|
||||
sha_url="${sha_url}/${CC_VERSION}/${CC_OS}"
|
||||
@@ -126,14 +147,14 @@ else
|
||||
say "$g ->$x Downloading $b${sha_url}$x"
|
||||
say "$g ->$x Downloading $b${sha_url}.sig$x"
|
||||
say " "
|
||||
curl -Os $retry --connect-timeout 2 "$sha_url"
|
||||
curl -Os $retry --connect-timeout 2 "${sha_url}.sig"
|
||||
if ! gpg --verify "${CC_FILENAME}.SHA256SUM.sig" "${CC_FILENAME}.SHA256SUM";
|
||||
curl -o "$CC_DOWNLOAD_DIR/${CC_FILENAME}.SHA256SUM" -s $retry --connect-timeout 2 "$sha_url"
|
||||
curl -o "$CC_DOWNLOAD_DIR/${CC_FILENAME}.SHA256SUM.sig" -s $retry --connect-timeout 2 "${sha_url}.sig"
|
||||
if ! gpg --verify "$CC_DOWNLOAD_DIR/${CC_FILENAME}.SHA256SUM.sig" "$CC_DOWNLOAD_DIR/${CC_FILENAME}.SHA256SUM";
|
||||
then
|
||||
exit_if_error "Could not verify signature. Please contact Codecov if problem continues"
|
||||
fi
|
||||
if ! (shasum -a 256 -c "${CC_FILENAME}.SHA256SUM" 2>/dev/null || \
|
||||
sha256sum -c "${CC_FILENAME}.SHA256SUM");
|
||||
if ! (cd "$CC_DOWNLOAD_DIR" && (shasum -a 256 -c "${CC_FILENAME}.SHA256SUM" 2>/dev/null || \
|
||||
sha256sum -c "${CC_FILENAME}.SHA256SUM"));
|
||||
then
|
||||
exit_if_error "Could not verify SHASUM. Please contact Codecov if problem continues"
|
||||
fi
|
||||
@@ -143,11 +164,16 @@ else
|
||||
fi
|
||||
if [ -n "$CC_BINARY_LOCATION" ];
|
||||
then
|
||||
mkdir -p "$CC_BINARY_LOCATION" && mv "$CC_FILENAME" $_
|
||||
mkdir -p "$CC_BINARY_LOCATION" && mv "$CC_COMMAND" "$CC_BINARY_LOCATION/$CC_FILENAME"
|
||||
CC_COMMAND="$CC_BINARY_LOCATION/$CC_FILENAME"
|
||||
say "$g==>$x ${CC_CLI_TYPE} binary moved to ${CC_BINARY_LOCATION}"
|
||||
fi
|
||||
if [ "$CC_DOWNLOAD_ONLY" = "true" ];
|
||||
then
|
||||
if [ "$CC_CLEANUP" == "true" ] && [ -z "$CC_BINARY_LOCATION" ]; then
|
||||
cp "$CC_COMMAND" "./$CC_FILENAME"
|
||||
CC_COMMAND="./$CC_FILENAME"
|
||||
fi
|
||||
say "$g==>$x ${CC_CLI_TYPE} download only called. Exiting..."
|
||||
exit
|
||||
fi
|
||||
|
||||
+1
-1
Submodule src/scripts updated: bad8df56cd...ce44ce7e24
+1
-1
@@ -1 +1 @@
|
||||
7.0.0
|
||||
7.1.0
|
||||
|
||||
Reference in New Issue
Block a user