Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
D
dyndnsd-client
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open-source
dyndnsd-client
Commits
1e5508ff
Commit
1e5508ff
authored
Aug 19, 2018
by
Erick Hitter
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Introduce CI with linting
parent
d21051d6
Pipeline
#205
failed with stages
in 3 minutes and 30 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
134 additions
and
0 deletions
+134
-0
.gitlab-ci.yml
.gitlab-ci.yml
+66
-0
Makefile
Makefile
+39
-0
tools/coverage.sh
tools/coverage.sh
+29
-0
No files found.
.gitlab-ci.yml
0 → 100644
View file @
1e5508ff
image
:
containers.ethitter.com:443/docker/images/golang:latest
variables
:
REPO_NAME
:
git.ethitter.com/open-source/dyndnsd-client
cache
:
paths
:
-
/apt-cache
-
$GOPATH/src/github.com
-
$GOPATH/src/golang.org
-
$GOPATH/src/google.golang.org
-
$GOPATH/src/gopkg.in
stages
:
-
test
-
build
before_script
:
-
mkdir -p $GOPATH/src/$(dirname $REPO_NAME)
-
cp -R $CI_PROJECT_DIR $GOPATH/src/$REPO_NAME
-
cd $GOPATH/src/$REPO_NAME
-
cp config-sample.json config.json
-
export CC=clang-5.0
-
make dep
unit_tests
:
stage
:
test
script
:
-
make test
race_detector
:
stage
:
test
script
:
-
make race
memory_sanitizer
:
stage
:
test
script
:
-
make msan
code_coverage
:
stage
:
test
script
:
-
make coverage
code_coverage_report
:
stage
:
test
script
:
-
make coverhtml
only
:
-
master
lint_code
:
stage
:
test
script
:
-
make lint
build
:
stage
:
build
script
:
-
make
artifacts
:
paths
:
-
dyndnsd-client/
\ No newline at end of file
Makefile
0 → 100644
View file @
1e5508ff
PROJECT_NAME
:=
"dyndnsd-client"
PKG
:=
"git.ethitter.com/debian/
$(PROJECT_NAME)
"
PKG_LIST
:=
$(
shell
go list
${PKG}
/... |
grep
-v
/vendor/
)
GO_FILES
:=
$(
shell
find
.
-name
'*.go'
|
grep
-v
/vendor/ |
grep
-v
_test.go
)
.PHONY
:
all dep build clean test coverage coverhtml lint
all
:
build
lint
:
@
golint
-set_exit_status
${PKG_LIST}
test
:
@
go
test
-v
${PKG_LIST}
race
:
dep
@
go
test
-v
-race
${PKG_LIST}
msan
:
dep
@
go
test
-v
-msan
${PKG_LIST}
coverage
:
./tools/coverage.sh
;
coverhtml
:
./tools/coverage.sh html
;
dep
:
@
go get
-v
-d
./...
@
go get github.com/mitchellh/gox
build
:
dep
@
gox
-output
=
"
${CI_PROJECT_DIR}
/
${PROJECT_NAME}
/{{.Dir}}_{{.OS}}_{{.Arch}}"
-parallel
=
6
clean
:
@
rm
-f
$(PROJECT_NAME)
help
:
@
grep
-h
-E
'^[a-zA-Z_-]+:.*?## .*$$'
$(MAKEFILE_LIST)
|
awk
'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
tools/coverage.sh
0 → 100755
View file @
1e5508ff
#!/bin/bash
#
# Code coverage generation
COVERAGE_DIR
=
"
${
COVERAGE_DIR
:-
coverage
}
"
PKG_LIST
=
$(
go list ./... |
grep
-v
/vendor/
)
# Create the coverage files directory
mkdir
-p
"
$COVERAGE_DIR
"
;
# Create a coverage file for each package
for
package
in
${
PKG_LIST
}
;
do
go
test
-covermode
=
count
-coverprofile
"
${
COVERAGE_DIR
}
/
${
package
##*/
}
.cov"
"
$package
"
;
done
;
# Merge the coverage profile files
echo
'mode: count'
>
"
${
COVERAGE_DIR
}
"
/coverage.cov
;
tail
-q
-n
+2
"
${
COVERAGE_DIR
}
"
/
*
.cov
>>
"
${
COVERAGE_DIR
}
"
/coverage.cov
;
# Display the global code coverage
go tool cover
-func
=
"
${
COVERAGE_DIR
}
"
/coverage.cov
;
# If needed, generate HTML report
if
[
"
$1
"
==
"html"
]
;
then
go tool cover
-html
=
"
${
COVERAGE_DIR
}
"
/coverage.cov
-o
coverage.html
;
fi
# Remove the coverage files directory
rm
-rf
"
$COVERAGE_DIR
"
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment