Skip to content

Commit b1a6383

Browse files
Th/add commands (#1745)
* chore(deps): bump wrapper to 0.0.33 * feat: allow for new commands * fix: bump to 0.0.34
1 parent 6c5b693 commit b1a6383

File tree

4 files changed

+96
-57
lines changed

4 files changed

+96
-57
lines changed

CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1009,4 +1009,4 @@ for the full list.
10091009
### Dependencies and Misc
10101010
- #166 Bump requestretry from 4.1.1 to 4.1.2
10111011
- #169 Bump typescript from 4.0.5 to 4.1.2
1012-
- #178 Bump @types/jest from 26.0.15 to 26.0.19
1012+
- #178 Bump @types/jest from 26.0.15 to 26.0.19

action.yml

+14
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ name: 'Codecov'
44
description: 'GitHub Action that uploads coverage reports for your repository to codecov.io'
55
author: 'Thomas Hu <@thomasrockhu-codecov> | Codecov'
66
inputs:
7+
base_sha:
8+
description: 'The base SHA to select. This is only used in the "pr-base-picking" run command'
9+
required: false
710
binary:
811
description: 'The file location of a pre-downloaded version of the CLI. If specified, integrity checking will be bypassed.'
912
required: false
@@ -52,6 +55,9 @@ inputs:
5255
flags:
5356
description: 'Comma-separated list of flags to upload to group coverage metrics.'
5457
required: false
58+
force:
59+
description: 'Only used for empty-upload run command'
60+
required: false
5561
git_service:
5662
description: 'Override the git_service (e.g. github_enterprise)'
5763
required: false
@@ -115,6 +121,10 @@ inputs:
115121
root_dir:
116122
description: 'Root folder from which to consider paths on the network section. Defaults to current working directory.'
117123
required: false
124+
run_command:
125+
description: 'Choose which CLI command to run. Options are "upload-coverage", "empty-upload", "pr-base-picking", "send-notifications". "upload-coverage" is run by default.'
126+
required: false
127+
default: 'upload-coverage'
118128
skip_validation:
119129
description: 'Skip integrity checking of the CLI. This is NOT recommended.'
120130
required: false
@@ -253,6 +263,7 @@ runs:
253263
shell: bash
254264
working-directory: ${{ inputs.working-directory }}
255265
env:
266+
CC_BASE_SHA: ${{ inputs.base_sha }}
256267
CC_BINARY: ${{ inputs.binary }}
257268
CC_BUILD: ${{ inputs.override_build }}
258269
CC_BUILD_URL: ${{ inputs.override_build_url }}
@@ -268,6 +279,7 @@ runs:
268279
CC_FAIL_ON_ERROR: ${{ inputs.fail_ci_if_error }}
269280
CC_FILES: ${{ inputs.files }}
270281
CC_FLAGS: ${{ inputs.flags }}
282+
CC_FORCE: ${{ inputs.force }}
271283
CC_GCOV_ARGS: ${{ inputs.gcov_args }}
272284
CC_GCOV_EXECUTABLE: ${{ inputs.gcov_executable }}
273285
CC_GCOV_IGNORE: ${{ inputs.gcov_ignore }}
@@ -284,6 +296,8 @@ runs:
284296
CC_PARENT_SHA: ${{ inputs.commit_parent }}
285297
CC_PLUGINS: ${{ inputs.plugins }}
286298
CC_REPORT_TYPE: ${{ inputs.report_type }}
299+
CC_RUN_COMMAND: ${{ inputs.run_command }}
300+
CC_SERVICE: ${{ inputs.git_service }}
287301
CC_SKIP_VALIDATION: ${{ inputs.skip_validation }}
288302
CC_SLUG: ${{ inputs.slug }}
289303
CC_SWIFT_PROJECT: ${{ inputs.swift_project }}

dist/codecov.sh

+80-55
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
2-
CC_WRAPPER_VERSION="0.0.32"
2+
CC_WRAPPER_VERSION="0.0.34"
33
set +u
44
say() {
55
echo -e "$1"
@@ -47,6 +47,7 @@ say " _____ _
4747
"
4848
CC_VERSION="${CC_VERSION:-latest}"
4949
CC_FAIL_ON_ERROR="${CC_FAIL_ON_ERROR:-false}"
50+
CC_RUN_COMMAND="${CC_RUN_COMMAND:-upload-coverage}"
5051
if [ -n "$CC_BINARY" ];
5152
then
5253
if [ -f "$CC_BINARY" ];
@@ -84,7 +85,7 @@ else
8485
curl -Os "$cc_url"
8586
say "$g==>$x Finishing downloading $b${CC_OS}:${CC_VERSION}$x"
8687
version_url="https://cli.codecov.io/api/${CC_OS}/${CC_VERSION}"
87-
version=$(curl -s "$version_url" -H "Accept:application/json" | jq -r '.version')
88+
version=$(curl -s "$version_url" -H "Accept:application/json" | tr \{ '\n' | tr , '\n' | tr \} '\n' | grep "\"version\"" | awk -F'"' '{print $4}' | tail -1)
8889
say " Version: $b$version$x"
8990
say " "
9091
fi
@@ -136,91 +137,115 @@ then
136137
fi
137138
cc_cli_args+=( $(write_truthy_args CC_DISABLE_TELEM) )
138139
cc_cli_args+=( $(write_truthy_args CC_VERBOSE) )
139-
cc_uc_args=()
140+
if [ -n "$CC_TOKEN_VAR" ];
141+
then
142+
token="$(eval echo \$$CC_TOKEN_VAR)"
143+
else
144+
token="$(eval echo $CC_TOKEN)"
145+
fi
146+
say "$g ->$x Token of length ${#token} detected"
147+
token_str=""
148+
token_arg=()
149+
if [ -n "$token" ];
150+
then
151+
token_str+=" -t <redacted>"
152+
token_arg+=( " -t " "$token")
153+
fi
154+
if [ "$CC_RUN_COMMAND" == "upload-coverage" ]; then
155+
cc_run_args=()
140156
# Args for create commit
141-
cc_uc_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
142-
cc_uc_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
143-
cc_uc_args+=( $(k_arg PARENT_SHA) $(v_arg PARENT_SHA))
144-
cc_uc_args+=( $(k_arg PR) $(v_arg PR))
145-
cc_uc_args+=( $(k_arg SHA) $(v_arg SHA))
146-
cc_uc_args+=( $(k_arg SLUG) $(v_arg SLUG))
157+
cc_run_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
158+
cc_run_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
159+
cc_run_args+=( $(k_arg PARENT_SHA) $(v_arg PARENT_SHA))
160+
cc_run_args+=( $(k_arg PR) $(v_arg PR))
161+
cc_run_args+=( $(k_arg SHA) $(v_arg SHA))
162+
cc_run_args+=( $(k_arg SLUG) $(v_arg SLUG))
147163
# Args for create report
148-
cc_uc_args+=( $(k_arg CODE) $(v_arg CODE))
164+
cc_run_args+=( $(k_arg CODE) $(v_arg CODE))
149165
# Args for do upload
150-
cc_uc_args+=( $(k_arg ENV) $(v_arg ENV))
166+
cc_run_args+=( $(k_arg ENV) $(v_arg ENV))
151167
OLDIFS=$IFS;IFS=,
152-
cc_uc_args+=( $(k_arg BRANCH) $(v_arg BRANCH))
153-
cc_uc_args+=( $(k_arg BUILD) $(v_arg BUILD))
154-
cc_uc_args+=( $(k_arg BUILD_URL) $(v_arg BUILD_URL))
155-
cc_uc_args+=( $(k_arg DIR) $(v_arg DIR))
156-
cc_uc_args+=( $(write_truthy_args CC_DISABLE_FILE_FIXES) )
157-
cc_uc_args+=( $(write_truthy_args CC_DISABLE_SEARCH) )
158-
cc_uc_args+=( $(write_truthy_args CC_DRY_RUN) )
168+
cc_run_args+=( $(k_arg BRANCH) $(v_arg BRANCH))
169+
cc_run_args+=( $(k_arg BUILD) $(v_arg BUILD))
170+
cc_run_args+=( $(k_arg BUILD_URL) $(v_arg BUILD_URL))
171+
cc_run_args+=( $(k_arg DIR) $(v_arg DIR))
172+
cc_run_args+=( $(write_truthy_args CC_DISABLE_FILE_FIXES) )
173+
cc_run_args+=( $(write_truthy_args CC_DISABLE_SEARCH) )
174+
cc_run_args+=( $(write_truthy_args CC_DRY_RUN) )
159175
if [ -n "$CC_EXCLUDES" ];
160176
then
161177
for directory in $CC_EXCLUDES; do
162-
cc_uc_args+=( "--exclude" "$directory" )
178+
cc_run_args+=( "--exclude" "$directory" )
163179
done
164180
fi
165181
if [ -n "$CC_FILES" ];
166182
then
167183
for file in $CC_FILES; do
168-
cc_uc_args+=( "--file" "$file" )
184+
cc_run_args+=( "--file" "$file" )
169185
done
170186
fi
171187
if [ -n "$CC_FLAGS" ];
172188
then
173189
for flag in $CC_FLAGS; do
174-
cc_uc_args+=( "--flag" "$flag" )
190+
cc_run_args+=( "--flag" "$flag" )
175191
done
176192
fi
177-
cc_uc_args+=( $(k_arg GCOV_ARGS) $(v_arg GCOV_ARGS))
178-
cc_uc_args+=( $(k_arg GCOV_EXECUTABLE) $(v_arg GCOV_EXECUTABLE))
179-
cc_uc_args+=( $(k_arg GCOV_IGNORE) $(v_arg GCOV_IGNORE))
180-
cc_uc_args+=( $(k_arg GCOV_INCLUDE) $(v_arg GCOV_INCLUDE))
181-
cc_uc_args+=( $(write_truthy_args CC_HANDLE_NO_REPORTS_FOUND) )
182-
cc_uc_args+=( $(k_arg JOB_CODE) $(v_arg JOB_CODE))
183-
cc_uc_args+=( $(write_truthy_args CC_LEGACY) )
193+
cc_run_args+=( $(k_arg GCOV_ARGS) $(v_arg GCOV_ARGS))
194+
cc_run_args+=( $(k_arg GCOV_EXECUTABLE) $(v_arg GCOV_EXECUTABLE))
195+
cc_run_args+=( $(k_arg GCOV_IGNORE) $(v_arg GCOV_IGNORE))
196+
cc_run_args+=( $(k_arg GCOV_INCLUDE) $(v_arg GCOV_INCLUDE))
197+
cc_run_args+=( $(write_truthy_args CC_HANDLE_NO_REPORTS_FOUND) )
198+
cc_run_args+=( $(k_arg JOB_CODE) $(v_arg JOB_CODE))
199+
cc_run_args+=( $(write_truthy_args CC_LEGACY) )
184200
if [ -n "$CC_NAME" ];
185201
then
186-
cc_uc_args+=( "--name" "$CC_NAME" )
202+
cc_run_args+=( "--name" "$CC_NAME" )
187203
fi
188-
cc_uc_args+=( $(k_arg NETWORK_FILTER) $(v_arg NETWORK_FILTER))
189-
cc_uc_args+=( $(k_arg NETWORK_PREFIX) $(v_arg NETWORK_PREFIX))
190-
cc_uc_args+=( $(k_arg NETWORK_ROOT_FOLDER) $(v_arg NETWORK_ROOT_FOLDER))
204+
cc_run_args+=( $(k_arg NETWORK_FILTER) $(v_arg NETWORK_FILTER))
205+
cc_run_args+=( $(k_arg NETWORK_PREFIX) $(v_arg NETWORK_PREFIX))
206+
cc_run_args+=( $(k_arg NETWORK_ROOT_FOLDER) $(v_arg NETWORK_ROOT_FOLDER))
191207
if [ -n "$CC_PLUGINS" ];
192208
then
193209
for plugin in $CC_PLUGINS; do
194-
cc_uc_args+=( "--plugin" "$plugin" )
210+
cc_run_args+=( "--plugin" "$plugin" )
195211
done
196212
fi
197-
cc_uc_args+=( $(k_arg REPORT_TYPE) $(v_arg REPORT_TYPE))
198-
cc_uc_args+=( $(k_arg SWIFT_PROJECT) $(v_arg SWIFT_PROJECT))
213+
cc_run_args+=( $(k_arg REPORT_TYPE) $(v_arg REPORT_TYPE))
214+
cc_run_args+=( $(k_arg SWIFT_PROJECT) $(v_arg SWIFT_PROJECT))
199215
IFS=$OLDIFS
200-
unset NODE_OPTIONS
201-
# See https://github.com/codecov/uploader/issues/475
202-
chmod +x $cc_command
203-
if [ -n "$CC_TOKEN_VAR" ];
204-
then
205-
token="$(eval echo \$$CC_TOKEN_VAR)"
216+
elif [ "$CC_RUN_COMMAND" == "empty-upload" ]; then
217+
cc_run_args=()
218+
cc_run_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
219+
cc_run_args+=( $(write_truthy_args CC_FORCE) )
220+
cc_run_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
221+
cc_run_args+=( $(k_arg SHA) $(v_arg SHA))
222+
cc_run_args+=( $(k_arg SLUG) $(v_arg SLUG))
223+
elif [ "$CC_RUN_COMMAND" == "pr-base-picking" ]; then
224+
cc_run_args=()
225+
cc_run_args+=( $(k_arg BASE_SHA) $(v_arg BASE_SHA))
226+
cc_run_args+=( $(k_arg PR) $(v_arg PR))
227+
cc_run_args+=( $(k_arg SLUG) $(v_arg SLUG))
228+
cc_run_args+=( $(k_arg SERVICE) $(v_arg SERVICE))
229+
elif [ "$CC_RUN_COMMAND" == "send-notifications" ]; then
230+
cc_run_args=()
231+
cc_run_args+=( $(k_arg SHA) $(v_arg SHA))
232+
cc_run_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
233+
cc_run_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
234+
cc_run_args+=( $(k_arg SLUG) $(v_arg SLUG))
206235
else
207-
token="$(eval echo $CC_TOKEN)"
236+
exit_if_error "Invalid run command specified: $CC_RUN_COMMAND"
237+
exit
208238
fi
209-
say "$g ->$x Token of length ${#token} detected"
210-
token_str=""
211-
token_arg=()
212-
if [ -n "$token" ];
213-
then
214-
token_str+=" -t <redacted>"
215-
token_arg+=( " -t " "$token")
216-
fi
217-
say "$g==>$x Running upload-coverage"
218-
say " $b$cc_command $(echo "${cc_cli_args[@]}") upload-coverage$token_str $(echo "${cc_uc_args[@]}")$x"
239+
unset NODE_OPTIONS
240+
# See https://github.com/codecov/uploader/issues/475
241+
chmod +x "$cc_command"
242+
say "$g==>$x Running $CC_RUN_COMMAND"
243+
say " $b$cc_command $(echo "${cc_cli_args[@]}")$CC_RUN_COMMAND$token_str $(echo "${cc_run_args[@]}")$x"
219244
if ! $cc_command \
220245
${cc_cli_args[*]} \
221-
upload-coverage \
246+
${CC_RUN_COMMAND} \
222247
${token_arg[*]} \
223-
"${cc_uc_args[@]}";
248+
"${cc_run_args[@]}";
224249
then
225-
exit_if_error "Failed to upload coverage"
250+
exit_if_error "Failed to run $CC_RUN_COMMAND"
226251
fi

0 commit comments

Comments
 (0)