diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b2bc9dee491d60937d3b3d33f4a6fdf8a99a16bb
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,9 @@
+image: lyda/golang:1.7
+
+test:
+  type: test
+  script:
+    - mkdir -p /go/src/gitlab.ie.suberic.net/kevin
+    - ln -s $PWD /go/src/gitlab.ie.suberic.net/kevin/sidecheck
+    - cd /go/src/gitlab.ie.suberic.net/kevin/sidecheck
+    - ./run_tests.sh
diff --git a/run_tests.sh b/run_tests.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5d9ae73dea68b6ef0ca3d9160779bbbd54bcac08
--- /dev/null
+++ b/run_tests.sh
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+# This can be used as a pre-commit script.  Just run
+#   cp run_tests.sh .git/hooks/pre-commit
+# and it will run before each commit.
+
+set -xue
+
+go list ./...  | grep -v vendor/ | xargs go test
+gofmt -d $(find * -type f -name '*.go' | grep -v vendor/)
+go list ./... |grep -v vendor/ | xargs go vet
+if ! type -f golint > /dev/null; then
+  go get -u github.com/golang/lint/golint
+fi
+go list ./... |grep -v vendor/ | xargs -L1 golint -set_exit_status