11#! /usr/bin/env bash
2- CC_WRAPPER_VERSION=" 0.2.1"
32set +u
43say () {
54 echo -e " $1 "
@@ -37,33 +36,40 @@ b="\033[0;36m" # variables/constants
3736g=" \033[0;32m" # info/debug
3837r=" \033[0;31m" # errors
3938x=" \033[0m"
39+ retry=" --retry 5 --retry-delay 2"
40+ CC_WRAPPER_VERSION=" 0.2.7"
41+ CC_VERSION=" ${CC_VERSION:- latest} "
42+ CC_FAIL_ON_ERROR=" ${CC_FAIL_ON_ERROR:- false} "
43+ CC_RUN_CMD=" ${CC_RUN_CMD:- upload-coverage} "
44+ CC_CLI_TYPE=${CC_CLI_TYPE:- " codecov-cli" }
4045say " _____ _
4146 / ____| | |
4247 | | ___ __| | ___ ___ _____ __
4348 | | / _ \\ / _\` |/ _ \\ / __/ _ \\ \\ / /
4449 | |___| (_) | (_| | __/ (_| (_) \\ V /
4550 \\ _____\\ ___/ \\ __,_|\\ ___|\\ ___\\ ___/ \\ _/
4651 $r Wrapper-$CC_WRAPPER_VERSION$x
47- "
48- CC_VERSION=" ${CC_VERSION:- latest} "
49- CC_FAIL_ON_ERROR=" ${CC_FAIL_ON_ERROR:- false} "
50- CC_RUN_CMD=" ${CC_RUN_CMD:- upload-coverage} "
52+ "
53+ if [[ " $CC_CLI_TYPE " != " codecov-cli" && " $CC_CLI_TYPE " != " sentry-prevent-cli" ]]; then
54+ echo " Invalid CC_CLI_TYPE: '$CC_CLI_TYPE '. Must be 'codecov-cli' or 'sentry-prevent-cli'"
55+ exit 1
56+ fi
5157if [ -n " $CC_BINARY " ];
5258then
5359 if [ -f " $CC_BINARY " ];
5460 then
55- c_filename =$CC_BINARY
56- c_command =$CC_BINARY
61+ CC_FILENAME =$CC_BINARY
62+ CC_COMMAND =$CC_BINARY
5763 else
5864 exit_if_error " Could not find binary file $CC_BINARY "
5965 fi
6066elif [ " $CC_USE_PYPI " == " true" ];
6167then
62- if ! pip install codecov-cli " $ ( [ " $CC_VERSION " == " latest" ] && echo " " || echo " ==$CC_VERSION " ) " ; then
68+ if ! pip install " ${CC_CLI_TYPE} $ ( [ " $CC_VERSION " == " latest" ] && echo " " || echo " ==$CC_VERSION " ) " ; then
6369 exit_if_error " Could not install via pypi."
6470 exit
6571 fi
66- c_command= " codecovcli "
72+ CC_COMMAND= " ${CC_CLI_TYPE} "
6773else
6874 if [ -n " $CC_OS " ];
6975 then
@@ -79,181 +85,185 @@ else
7985 [[ $( arch) == " aarch64" && $family == " linux" ]] && CC_OS+=" -arm64"
8086 say " $g ==>$x Detected $b ${CC_OS} $x "
8187 fi
82- c_filename= " codecov "
83- [[ $CC_OS == " windows" ]] && c_filename +=" .exe"
84- c_command =" ./$c_filename "
88+ CC_FILENAME= " ${CC_CLI_TYPE % -cli} "
89+ [[ $CC_OS == " windows" ]] && CC_FILENAME +=" .exe"
90+ CC_COMMAND =" ./$CC_FILENAME "
8591 [[ $CC_OS == " macos" ]] && \
8692 ! command -v gpg 2>&1 > /dev/null && \
8793 HOMEBREW_NO_AUTO_UPDATE=1 brew install gpg
88- c_url= " https://cli.codecov.io"
89- c_url =" $c_url /${CC_VERSION} "
90- c_url =" $c_url /${CC_OS} /${c_filename } "
91- say " $g ->$x Downloading $b ${c_url } $x "
92- curl -O -- retry 5 --retry-delay 2 " $c_url "
94+ CC_URL= " ${CC_CLI_URL :- https:// cli.codecov.io} "
95+ CC_URL =" $CC_URL /${CC_VERSION} "
96+ CC_URL =" $CC_URL /${CC_OS} /${CC_FILENAME } "
97+ say " $g ->$x Downloading $b ${CC_URL } $x "
98+ curl -O $ retry " $CC_URL "
9399 say " $g ==>$x Finishing downloading $b ${CC_OS} :${CC_VERSION} $x "
94- version_url =" https://cli.codecov.io/api/${CC_OS} /${CC_VERSION} "
95- version =$( curl - s " $version_url " -H " Accept:application/json" | tr \{ ' \n' | tr , ' \n' | tr \} ' \n' | grep " \" version\" " | awk -F' "' ' {print $4}' | tail -1)
96- say " Version: $b$version $x "
100+ v_url =" https://cli.codecov.io/api/${CC_OS} /${CC_VERSION} "
101+ 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)
102+ say " Version: $b$v $x "
97103 say " "
98104fi
99105if [ " $CC_SKIP_VALIDATION " == " true" ] || [ -n " $CC_BINARY " ] || [ " $CC_USE_PYPI " == " true" ];
100106then
101107 say " $r ==>$x Bypassing validation..."
108+ if [ " $CC_SKIP_VALIDATION " == " true" ];
109+ then
110+ chmod +x " $CC_COMMAND "
111+ fi
102112else
103- CC_PUBLIC_PGP_KEY=$( curl -s https://keybase.io/codecovsecurity/pgp_keys.asc)
104- echo " ${CC_PUBLIC_PGP_KEY} " | \
113+ echo " $( curl -s https://keybase.io/codecovsecurity/pgp_keys.asc) " | \
105114 gpg --no-default-keyring --import
106115 # One-time step
107116 say " $g ==>$x Verifying GPG signature integrity"
108117 sha_url=" https://cli.codecov.io"
109118 sha_url=" ${sha_url} /${CC_VERSION} /${CC_OS} "
110- sha_url=" ${sha_url} /${c_filename } .SHA256SUM"
119+ sha_url=" ${sha_url} /${CC_FILENAME } .SHA256SUM"
111120 say " $g ->$x Downloading $b ${sha_url} $x "
112121 say " $g ->$x Downloading $b ${sha_url} .sig$x "
113122 say " "
114- curl -Os -- retry 5 --retry-delay 2 --connect-timeout 2 " $sha_url "
115- curl -Os -- retry 5 --retry-delay 2 --connect-timeout 2 " ${sha_url} .sig"
116- if ! gpg --verify " ${c_filename } .SHA256SUM.sig" " ${c_filename } .SHA256SUM" ;
123+ curl -Os $ retry --connect-timeout 2 " $sha_url "
124+ curl -Os $ retry --connect-timeout 2 " ${sha_url} .sig"
125+ if ! gpg --verify " ${CC_FILENAME } .SHA256SUM.sig" " ${CC_FILENAME } .SHA256SUM" ;
117126 then
118127 exit_if_error " Could not verify signature. Please contact Codecov if problem continues"
119128 fi
120- if ! (shasum -a 256 -c " ${c_filename } .SHA256SUM" 2> /dev/null || \
121- sha256sum -c " ${c_filename } .SHA256SUM" );
129+ if ! (shasum -a 256 -c " ${CC_FILENAME } .SHA256SUM" 2> /dev/null || \
130+ sha256sum -c " ${CC_FILENAME } .SHA256SUM" );
122131 then
123132 exit_if_error " Could not verify SHASUM. Please contact Codecov if problem continues"
124133 fi
125134 say " $g ==>$x CLI integrity verified"
126135 say
127- chmod +x " $c_command "
136+ chmod +x " $CC_COMMAND "
128137fi
129138if [ -n " $CC_BINARY_LOCATION " ];
130139then
131- mkdir -p " $CC_BINARY_LOCATION " && mv " $c_filename " $_
132- say " $g ==>$x Codecov binary moved to ${CC_BINARY_LOCATION} "
140+ mkdir -p " $CC_BINARY_LOCATION " && mv " $CC_FILENAME " $_
141+ say " $g ==>$x ${CC_CLI_TYPE} binary moved to ${CC_BINARY_LOCATION} "
133142fi
134143if [ " $CC_DOWNLOAD_ONLY " = " true" ];
135144then
136- say " $g ==>$x Codecov download only called. Exiting..."
145+ say " $g ==>$x ${CC_CLI_TYPE} download only called. Exiting..."
146+ exit
137147fi
138- c_cli_args =()
139- c_cli_args +=( $( k_arg AUTO_LOAD_PARAMS_FROM) $( v_arg AUTO_LOAD_PARAMS_FROM) )
140- c_cli_args +=( $( k_arg ENTERPRISE_URL) $( v_arg ENTERPRISE_URL) )
148+ CC_CLI_ARGS =()
149+ CC_CLI_ARGS +=( $( k_arg AUTO_LOAD_PARAMS_FROM) $( v_arg AUTO_LOAD_PARAMS_FROM) )
150+ CC_CLI_ARGS +=( $( k_arg ENTERPRISE_URL) $( v_arg ENTERPRISE_URL) )
141151if [ -n " $CC_YML_PATH " ]
142152then
143- c_cli_args+=( " --codecov-yml-path" )
144- c_cli_args+=( " $CC_YML_PATH " )
145- fi
146- c_cli_args+=( $( write_bool_args CC_DISABLE_TELEM) )
147- c_cli_args+=( $( write_bool_args CC_VERBOSE) )
148- if [ -n " $CC_TOKEN_VAR " ];
149- then
150- token=" $( eval echo \$ $CC_TOKEN_VAR ) "
151- else
152- token=" $( eval echo $CC_TOKEN ) "
153- fi
154- say " $g ->$x Token of length ${# token} detected"
155- token_str=" "
156- token_arg=()
157- if [ -n " $token " ];
158- then
159- token_str+=" -t <redacted>"
160- token_arg+=( " -t " " $token " )
153+ CC_CLI_ARGS+=( " --codecov-yml-path" )
154+ CC_CLI_ARGS+=( " $CC_YML_PATH " )
161155fi
162- c_args=()
156+ CC_CLI_ARGS+=( $( write_bool_args CC_DISABLE_TELEM) )
157+ CC_CLI_ARGS+=( $( write_bool_args CC_VERBOSE) )
158+ CC_ARGS=()
163159if [ " $CC_RUN_CMD " == " upload-coverage" ]; then
164160# Args for create commit
165- c_args +=( $( write_bool_args CC_FAIL_ON_ERROR) )
166- c_args +=( $( k_arg GIT_SERVICE) $( v_arg GIT_SERVICE) )
167- c_args +=( $( k_arg PARENT_SHA) $( v_arg PARENT_SHA) )
168- c_args +=( $( k_arg PR) $( v_arg PR) )
169- c_args +=( $( k_arg SHA) $( v_arg SHA) )
170- c_args +=( $( k_arg SLUG) $( v_arg SLUG) )
161+ CC_ARGS +=( $( write_bool_args CC_FAIL_ON_ERROR) )
162+ CC_ARGS +=( $( k_arg GIT_SERVICE) $( v_arg GIT_SERVICE) )
163+ CC_ARGS +=( $( k_arg PARENT_SHA) $( v_arg PARENT_SHA) )
164+ CC_ARGS +=( $( k_arg PR) $( v_arg PR) )
165+ CC_ARGS +=( $( k_arg SHA) $( v_arg SHA) )
166+ CC_ARGS +=( $( k_arg SLUG) $( v_arg SLUG) )
171167# Args for create report
172- c_args +=( $( k_arg CODE) $( v_arg CODE) )
168+ CC_ARGS +=( $( k_arg CODE) $( v_arg CODE) )
173169# Args for do upload
174- c_args +=( $( k_arg ENV) $( v_arg ENV) )
170+ CC_ARGS +=( $( k_arg ENV) $( v_arg ENV) )
175171OLDIFS=$IFS ; IFS=,
176- c_args +=( $( k_arg BRANCH) $( v_arg BRANCH) )
177- c_args +=( $( k_arg BUILD) $( v_arg BUILD) )
178- c_args +=( $( k_arg BUILD_URL) $( v_arg BUILD_URL) )
179- c_args +=( $( k_arg DIR) $( v_arg DIR) )
180- c_args +=( $( write_bool_args CC_DISABLE_FILE_FIXES) )
181- c_args +=( $( write_bool_args CC_DISABLE_SEARCH) )
182- c_args +=( $( write_bool_args CC_DRY_RUN) )
172+ CC_ARGS +=( $( k_arg BRANCH) $( v_arg BRANCH) )
173+ CC_ARGS +=( $( k_arg BUILD) $( v_arg BUILD) )
174+ CC_ARGS +=( $( k_arg BUILD_URL) $( v_arg BUILD_URL) )
175+ CC_ARGS +=( $( k_arg DIR) $( v_arg DIR) )
176+ CC_ARGS +=( $( write_bool_args CC_DISABLE_FILE_FIXES) )
177+ CC_ARGS +=( $( write_bool_args CC_DISABLE_SEARCH) )
178+ CC_ARGS +=( $( write_bool_args CC_DRY_RUN) )
183179if [ -n " $CC_EXCLUDES " ];
184180then
185181 for directory in $CC_EXCLUDES ; do
186- c_args +=( " --exclude" " $directory " )
182+ CC_ARGS +=( " --exclude" " $directory " )
187183 done
188184fi
189185if [ -n " $CC_FILES " ];
190186then
191187 for file in $CC_FILES ; do
192- c_args +=( " --file" " $file " )
188+ CC_ARGS +=( " --file" " $file " )
193189 done
194190fi
195191if [ -n " $CC_FLAGS " ];
196192then
197193 for flag in $CC_FLAGS ; do
198- c_args +=( " --flag" " $flag " )
194+ CC_ARGS +=( " --flag" " $flag " )
199195 done
200196fi
201- c_args +=( $( k_arg GCOV_ARGS) $( v_arg GCOV_ARGS) )
202- c_args +=( $( k_arg GCOV_EXECUTABLE) $( v_arg GCOV_EXECUTABLE) )
203- c_args +=( $( k_arg GCOV_IGNORE) $( v_arg GCOV_IGNORE) )
204- c_args +=( $( k_arg GCOV_INCLUDE) $( v_arg GCOV_INCLUDE) )
205- c_args +=( $( write_bool_args CC_HANDLE_NO_REPORTS_FOUND) )
206- c_args +=( $( write_bool_args CC_RECURSE_SUBMODULES) )
207- c_args +=( $( k_arg JOB_CODE) $( v_arg JOB_CODE) )
208- c_args +=( $( write_bool_args CC_LEGACY) )
197+ CC_ARGS +=( $( k_arg GCOV_ARGS) $( v_arg GCOV_ARGS) )
198+ CC_ARGS +=( $( k_arg GCOV_EXECUTABLE) $( v_arg GCOV_EXECUTABLE) )
199+ CC_ARGS +=( $( k_arg GCOV_IGNORE) $( v_arg GCOV_IGNORE) )
200+ CC_ARGS +=( $( k_arg GCOV_INCLUDE) $( v_arg GCOV_INCLUDE) )
201+ CC_ARGS +=( $( write_bool_args CC_HANDLE_NO_REPORTS_FOUND) )
202+ CC_ARGS +=( $( write_bool_args CC_RECURSE_SUBMODULES) )
203+ CC_ARGS +=( $( k_arg JOB_CODE) $( v_arg JOB_CODE) )
204+ CC_ARGS +=( $( write_bool_args CC_LEGACY) )
209205if [ -n " $CC_NAME " ];
210206then
211- c_args +=( " --name" " $CC_NAME " )
207+ CC_ARGS +=( " --name" " $CC_NAME " )
212208fi
213- c_args +=( $( k_arg NETWORK_FILTER) $( v_arg NETWORK_FILTER) )
214- c_args +=( $( k_arg NETWORK_PREFIX) $( v_arg NETWORK_PREFIX) )
215- c_args +=( $( k_arg NETWORK_ROOT_FOLDER) $( v_arg NETWORK_ROOT_FOLDER) )
209+ CC_ARGS +=( $( k_arg NETWORK_FILTER) $( v_arg NETWORK_FILTER) )
210+ CC_ARGS +=( $( k_arg NETWORK_PREFIX) $( v_arg NETWORK_PREFIX) )
211+ CC_ARGS +=( $( k_arg NETWORK_ROOT_FOLDER) $( v_arg NETWORK_ROOT_FOLDER) )
216212if [ -n " $CC_PLUGINS " ];
217213then
218214 for plugin in $CC_PLUGINS ; do
219- c_args +=( " --plugin" " $plugin " )
215+ CC_ARGS +=( " --plugin" " $plugin " )
220216 done
221217fi
222- c_args +=( $( k_arg REPORT_TYPE) $( v_arg REPORT_TYPE) )
223- c_args +=( $( k_arg SWIFT_PROJECT) $( v_arg SWIFT_PROJECT) )
218+ CC_ARGS +=( $( k_arg REPORT_TYPE) $( v_arg REPORT_TYPE) )
219+ CC_ARGS +=( $( k_arg SWIFT_PROJECT) $( v_arg SWIFT_PROJECT) )
224220IFS=$OLDIFS
225221elif [ " $CC_RUN_CMD " == " empty-upload" ]; then
226- c_args +=( $( k_arg BRANCH) $( v_arg BRANCH) )
227- c_args +=( $( write_bool_args CC_FAIL_ON_ERROR) )
228- c_args +=( $( write_bool_args CC_FORCE) )
229- c_args +=( $( k_arg GIT_SERVICE) $( v_arg GIT_SERVICE) )
230- c_args +=( $( k_arg PARENT_SHA) $( v_arg PARENT_SHA) )
231- c_args +=( $( k_arg PR) $( v_arg PR) )
232- c_args +=( $( k_arg SHA) $( v_arg SHA) )
233- c_args +=( $( k_arg SLUG) $( v_arg SLUG) )
222+ CC_ARGS +=( $( k_arg BRANCH) $( v_arg BRANCH) )
223+ CC_ARGS +=( $( write_bool_args CC_FAIL_ON_ERROR) )
224+ CC_ARGS +=( $( write_bool_args CC_FORCE) )
225+ CC_ARGS +=( $( k_arg GIT_SERVICE) $( v_arg GIT_SERVICE) )
226+ CC_ARGS +=( $( k_arg PARENT_SHA) $( v_arg PARENT_SHA) )
227+ CC_ARGS +=( $( k_arg PR) $( v_arg PR) )
228+ CC_ARGS +=( $( k_arg SHA) $( v_arg SHA) )
229+ CC_ARGS +=( $( k_arg SLUG) $( v_arg SLUG) )
234230elif [ " $CC_RUN_CMD " == " pr-base-picking" ]; then
235- c_args +=( $( k_arg BASE_SHA) $( v_arg BASE_SHA) )
236- c_args +=( $( k_arg PR) $( v_arg PR) )
237- c_args +=( $( k_arg SLUG) $( v_arg SLUG) )
238- c_args +=( $( k_arg SERVICE) $( v_arg SERVICE) )
231+ CC_ARGS +=( $( k_arg BASE_SHA) $( v_arg BASE_SHA) )
232+ CC_ARGS +=( $( k_arg PR) $( v_arg PR) )
233+ CC_ARGS +=( $( k_arg SLUG) $( v_arg SLUG) )
234+ CC_ARGS +=( $( k_arg SERVICE) $( v_arg SERVICE) )
239235elif [ " $CC_RUN_CMD " == " send-notifications" ]; then
240- c_args +=( $( k_arg SHA) $( v_arg SHA) )
241- c_args +=( $( write_bool_args CC_FAIL_ON_ERROR) )
242- c_args +=( $( k_arg GIT_SERVICE) $( v_arg GIT_SERVICE) )
243- c_args +=( $( k_arg SLUG) $( v_arg SLUG) )
236+ CC_ARGS +=( $( k_arg SHA) $( v_arg SHA) )
237+ CC_ARGS +=( $( write_bool_args CC_FAIL_ON_ERROR) )
238+ CC_ARGS +=( $( k_arg GIT_SERVICE) $( v_arg GIT_SERVICE) )
239+ CC_ARGS +=( $( k_arg SLUG) $( v_arg SLUG) )
244240else
245241 exit_if_error " Invalid run command specified: $CC_RUN_CMD "
246242 exit
247243fi
248244unset NODE_OPTIONS
249245# github.com/codecov/uploader/issues/475
246+ if [ -n " $CC_TOKEN_VAR " ];
247+ then
248+ token=" $( eval echo \$ $CC_TOKEN_VAR ) "
249+ else
250+ token=" $( eval echo $CC_TOKEN ) "
251+ fi
252+ say " $g ->$x Token length: ${# token} "
253+ token_str=" "
254+ token_arg=()
255+ if [ -n " $token " ];
256+ then
257+ token_str+=" -t <redacted>"
258+ token_arg+=( " -t " " $token " )
259+ fi
250260say " $g ==>$x Running $CC_RUN_CMD "
251- say " $b$c_command $( echo " ${c_cli_args [@]} " ) $CC_RUN_CMD$token_str $( echo " ${c_args [@]} " ) $x "
252- if ! $c_command \
253- ${c_cli_args [*]} \
261+ say " $b$CC_COMMAND $( echo " ${CC_CLI_ARGS [@]} " ) $CC_RUN_CMD$token_str $( echo " ${CC_ARGS [@]} " ) $x "
262+ if ! $CC_COMMAND \
263+ ${CC_CLI_ARGS [*]} \
254264 ${CC_RUN_CMD} \
255265 ${token_arg[*]} \
256- " ${c_args [@]} " ;
266+ " ${CC_ARGS [@]} " ;
257267then
258268 exit_if_error " Failed to run $CC_RUN_CMD "
259269fi
0 commit comments