Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
D
dyndnsd-client
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
open-source
dyndnsd-client
Commits
1e5508ff
Commit
1e5508ff
authored
6 years ago
by
Erick Hitter
Browse files
Options
Downloads
Patches
Plain Diff
Introduce CI with linting
parent
d21051d6
Branches
Branches containing commit
No related tags found
1 merge request
!1
Add CI
Pipeline
#205
failed
6 years ago
Stage: test
Stage: build
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
.gitlab-ci.yml
+66
-0
66 additions, 0 deletions
.gitlab-ci.yml
Makefile
+39
-0
39 additions, 0 deletions
Makefile
tools/coverage.sh
+29
-0
29 additions, 0 deletions
tools/coverage.sh
with
134 additions
and
0 deletions
.gitlab-ci.yml
0 → 100644
+
66
−
0
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
This diff is collapsed.
Click to expand it.
Makefile
0 → 100644
+
39
−
0
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}'
This diff is collapsed.
Click to expand it.
tools/coverage.sh
0 → 100755
+
29
−
0
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
"
;
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment