From 5f07ea4011a9e49194355424a49e418b563bc0f2 Mon Sep 17 00:00:00 2001
From: Erick Hitter <git-contrib@ethitter.com>
Date: Sun, 12 Jun 2022 10:29:03 -0700
Subject: [PATCH] Port existing CI configuration

Taken from https://git.ethitter.com/open-source/dyndnsd-client/-/blob/85f4ccd5a0597f8067ebb6168099afd210a0d98c/.gitlab-ci.yml
---
 files/default.yml                 |  7 ++++++
 files/templates/before-script.yml |  9 +++++++
 files/templates/cache.yml         |  7 ++++++
 files/templates/image.yml         |  1 +
 files/templates/matrix.yml        | 39 +++++++++++++++++++++++++++++++
 files/templates/stages.yml        |  3 +++
 files/templates/variables.yml     |  2 ++
 7 files changed, 68 insertions(+)
 create mode 100644 files/default.yml
 create mode 100644 files/templates/before-script.yml
 create mode 100644 files/templates/cache.yml
 create mode 100644 files/templates/image.yml
 create mode 100644 files/templates/matrix.yml
 create mode 100644 files/templates/stages.yml
 create mode 100644 files/templates/variables.yml

diff --git a/files/default.yml b/files/default.yml
new file mode 100644
index 0000000..33ac4cc
--- /dev/null
+++ b/files/default.yml
@@ -0,0 +1,7 @@
+include:
+  - remote: https://git-cdn.e15r.co/gitlab/ci/golang/-/raw/main/files/templates/image.yml
+  - remote: https://git-cdn.e15r.co/gitlab/ci/golang/-/raw/main/files/templates/variables.yml
+  - remote: https://git-cdn.e15r.co/gitlab/ci/golang/-/raw/main/files/templates/cache.yml
+  - remote: https://git-cdn.e15r.co/gitlab/ci/golang/-/raw/main/files/templates/stages.yml
+  - remote: https://git-cdn.e15r.co/gitlab/ci/golang/-/raw/main/files/templates/before-script.yml
+  - remote: https://git-cdn.e15r.co/gitlab/ci/golang/-/raw/main/files/templates/matrix.yml
diff --git a/files/templates/before-script.yml b/files/templates/before-script.yml
new file mode 100644
index 0000000..278d386
--- /dev/null
+++ b/files/templates/before-script.yml
@@ -0,0 +1,9 @@
+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
+
+  - make dep
diff --git a/files/templates/cache.yml b/files/templates/cache.yml
new file mode 100644
index 0000000..bf6e933
--- /dev/null
+++ b/files/templates/cache.yml
@@ -0,0 +1,7 @@
+cache:
+  paths:
+    - /apt-cache
+    - $GOPATH/src/github.com
+    - $GOPATH/src/golang.org
+    - $GOPATH/src/google.golang.org
+    - $GOPATH/src/gopkg.in
diff --git a/files/templates/image.yml b/files/templates/image.yml
new file mode 100644
index 0000000..d07b5f5
--- /dev/null
+++ b/files/templates/image.yml
@@ -0,0 +1 @@
+image: containers.ethitter.com:443/docker/images/golang:latest
diff --git a/files/templates/matrix.yml b/files/templates/matrix.yml
new file mode 100644
index 0000000..b6577e3
--- /dev/null
+++ b/files/templates/matrix.yml
@@ -0,0 +1,39 @@
+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/
diff --git a/files/templates/stages.yml b/files/templates/stages.yml
new file mode 100644
index 0000000..df24ad8
--- /dev/null
+++ b/files/templates/stages.yml
@@ -0,0 +1,3 @@
+stages:
+  - test
+  - build
diff --git a/files/templates/variables.yml b/files/templates/variables.yml
new file mode 100644
index 0000000..96cb89c
--- /dev/null
+++ b/files/templates/variables.yml
@@ -0,0 +1,2 @@
+variables:
+  REPO_NAME: "${CI_SERVER_HOST}/${CI_PROJECT_NAMESPACE}/$(CI_PROJECT_NAME)"
-- 
GitLab