dogear/.github/workflows/upload-to-codecov.sh

61 строка
1.9 KiB
Bash
Executable File

#!/bin/sh
echo "GITHUB_ACTIONS: ${GITHUB_ACTIONS}"
echo "GITHUB_HEAD_REF: ${GITHUB_HEAD_REF}"
echo "GITHUB_REF: ${GITHUB_REF}"
echo "GITHUB_REPOSITORY: ${GITHUB_REPOSITORY}"
echo "GITHUB_RUN_ID: ${GITHUB_RUN_ID}"
echo "GITHUB_SHA: ${GITHUB_SHA}"
echo "GITHUB_WORKFLOW: ${GITHUB_WORKFLOW}"
# Make the reports file, which combines all reports together (currently we just have 1)
touch reports
cat cobertura.xml >> reports
echo '<<<<<< EOF' >> reports
# Calculate query params (most of this was taken from the bash uploader script)
# Use curl to urlencode values
urlencode() {
echo "$1" | curl -Gso /dev/null -w "%{url_effective}" --data-urlencode @- "" | cut -c 3- | sed -e 's/%0A//'
}
service="github-actions"
branch="${GITHUB_REF#refs/heads/}"
if [ "$GITHUB_HEAD_REF" != "" ];
then
# PR refs are in the format: refs/pull/7/merge
pr="${GITHUB_REF#refs/pull/}"
pr="${pr%/merge}"
branch="${GITHUB_HEAD_REF}"
fi
commit="${GITHUB_SHA}"
slug=$(urlencode "${GITHUB_REPOSITORY}")
build="${GITHUB_RUN_ID}"
build_url=$(urlencode "http://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}")
job="$(urlencode "${GITHUB_WORKFLOW}")"
# actions/checkout runs in detached HEAD
mc=
if [ -n "$pr" ] && [ "$pr" != false ] && [ "$commit_o" == "" ];
then
mc=$(git show --no-patch --format="%P" 2>/dev/null || echo "")
if [[ "$mc" =~ ^[a-z0-9]{40}[[:space:]][a-z0-9]{40}$ ]];
then
mc=$(echo "$mc" | cut -d' ' -f2)
echo " Fixing merge commit SHA $commit -> $mc"
commit=$mc
elif [[ "$mc" = "" ]];
then
echo "$r-> Issue detecting commit SHA. Please run actions/checkout with fetch-depth > 1 or set to 0$x"
fi
fi
query="commit=${commit}&branch=${branch}&build=${build}&job=${job}&build_url=${build_url}&slug=${slug}&service=${service}&pr=${pr}"
url="https://codecov.io/upload/v2?${query}"
echo "Codecov URL: ${url}"
curl -X POST --data-binary @reports ${url}