mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-10-24 12:32:55 +08:00
add scripts/coverage.sh
This commit is contained in:
@@ -21,6 +21,10 @@ jobs:
|
||||
echo $targets | tr ' ' '\n'
|
||||
make $targets
|
||||
ls -lh _output/bin/
|
||||
- deploy:
|
||||
name: code_coverage
|
||||
command: |
|
||||
./scripts/coverage.sh --codecov
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
|
||||
Executable
+49
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright 2019 Yunion
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
covermode=${COVERMODE:-atomic}
|
||||
coverdir=$(mktemp -d /tmp/coverage.XXXXXXXXXX)
|
||||
profile="${coverdir}/profile.out"
|
||||
|
||||
function get_test_pkgs() {
|
||||
go list ./... | egrep -v 'host-image|hostimage'
|
||||
}
|
||||
|
||||
function generate_coverage_data() {
|
||||
echo "mode: $covermode" > "$profile"
|
||||
go test -coverprofile="$profile" -covermode="$covermode" $(get_test_pkgs)
|
||||
}
|
||||
|
||||
function push_to_codecov() {
|
||||
if [ -z "$CODECOV_TOKEN" ]; then
|
||||
echo "You must set CODECOV_TOKEN"
|
||||
exit 1
|
||||
fi
|
||||
echo "Push $profile to codecov.io"
|
||||
curl -s https://codecov.io/bash | bash -s -- -c -F aFlag -f "$profile"
|
||||
}
|
||||
|
||||
generate_coverage_data
|
||||
go tool cover -func "$profile"
|
||||
|
||||
case "${1-}" in
|
||||
--html)
|
||||
go tool cover -html "$profile"
|
||||
;;
|
||||
--codecov)
|
||||
push_to_codecov
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user