diff --git a/.circleci/build-examples b/.circleci/build-examples deleted file mode 100755 index 473b453290ecb26829463e0bfb4d9416876e4fba..0000000000000000000000000000000000000000 --- a/.circleci/build-examples +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -for i in examples/*; do - echo "building $i" - go install github.com/bio-routing/bio-rd/$i -done diff --git a/.circleci/check-gofmt b/.circleci/check-gofmt deleted file mode 100755 index b9c4731eae06ebaafafc9ee0fff3d4566144f903..0000000000000000000000000000000000000000 --- a/.circleci/check-gofmt +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -result="$(gofmt -e -s -l . 2>&1 | grep -v '^vendor/' )" -if [ -n "$result" ]; then - echo "Go code is not formatted, run 'gofmt -e -s -w .'" >&2 - echo "$result" - exit 1 -else - echo "Go code is formatted well" -fi diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 4741b535c40db7fbcb286b461c8e21d64dee87c8..0000000000000000000000000000000000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,16 +0,0 @@ -# Golang CircleCI 2.0 configuration file -# -# Check https://circleci.com/docs/2.0/language-go/ for more details -version: 2 -jobs: - build: - docker: - - image: circleci/golang:1.13 - steps: - - checkout - - - run: go test -v -cover -coverprofile=coverage.txt ./... - - run: bash <(curl -s https://codecov.io/bash) - - - run: .circleci/build-examples - - run: .circleci/check-gofmt diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index a8eaa48e93a84ffce181f5224b85c264218a330d..0000000000000000000000000000000000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**Steps to Reproduce** -Give us clear and precise steps how to reproduce the bug. - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Configuration used** -Please show us your config, what settings did u used? - -**Additional context** -Add any other context about the problem here. diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..1412d587485e7f221678369a8ee01f34a9bb6d36 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,15 @@ +variables: + SECURE_ANALYZERS_PREFIX: registry.gitlab.com/gitlab-org/security-products/analyzers + +stages: + - test + +test:cover: + image: golang:1.15 + stage: test + script: + - go test -v -cover ./... + +include: +# - local: '/build/ci/.code-quality-ci.yml' + - local: '/build/ci/.security-and-compliance-ci.yml' diff --git a/build/ci/.code-quality-ci.yml b/build/ci/.code-quality-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..aa3ae0eb8b9411b8cb9fa839801efe11478b0632 --- /dev/null +++ b/build/ci/.code-quality-ci.yml @@ -0,0 +1,33 @@ +code-quality-master: + stage: test + allow_failure: true + tags: + - baremetal + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + script: + # writes golangci-lint output to gl-code-quality-report.json + - /home/gitlab-runner/go/bin/golangci-lint run --config build/ci/.golangci-config/.golangci-master.yml --out-format code-climate | tee gl-code-quality-report.json + artifacts: + reports: + codequality: gl-code-quality-report.json + paths: + - gl-code-quality-report.json + + +code-quality: + stage: test + allow_failure: true + tags: + - baremetal + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH + script: + # writes golangci-lint output to gl-code-quality-report.json + - /home/gitlab-runner/go/bin/golangci-lint run --config build/ci/.golangci-config/.golangci.yml --out-format code-climate | tee gl-code-quality-report.json + artifacts: + reports: + codequality: gl-code-quality-report.json + paths: + - gl-code-quality-report.json diff --git a/build/ci/.golangci-config/.golangci-master.yml b/build/ci/.golangci-config/.golangci-master.yml new file mode 100644 index 0000000000000000000000000000000000000000..1a21937d63f0d30e5daf6bf57d4f35763bf42da4 --- /dev/null +++ b/build/ci/.golangci-config/.golangci-master.yml @@ -0,0 +1,23 @@ +run: + timeout: 5m + issues-exit-code: 1 +output: + format: code-climate + print-issued-lines: true + print-linter-name: true + uniq-by-line: true + path-prefix: "" +linters-settings: + gocyclo: + min-complexity: 15 + golint: + min-confidence: 0.8 +linters: + disable-all: true + enable: + - gofmt + - golint + - gocyclo + - govet +issues: + exclude-use-default: false diff --git a/build/ci/.golangci-config/.golangci.yml b/build/ci/.golangci-config/.golangci.yml new file mode 100644 index 0000000000000000000000000000000000000000..5c4c88e8338b257ad41a8b594d2aae8a27f82f2a --- /dev/null +++ b/build/ci/.golangci-config/.golangci.yml @@ -0,0 +1,21 @@ +run: + timeout: 5m + issues-exit-code: 1 +output: + format: code-climate + print-issued-lines: true + print-linter-name: true + uniq-by-line: true + path-prefix: "" +linters-settings: + gocyclo: + min-complexity: 15 + golint: + min-confidence: 0.8 +linters: + disable-all: true + enable: + - gofmt + - golint + - gocyclo + - govet diff --git a/build/ci/.golangci-config/.runlint.sh b/build/ci/.golangci-config/.runlint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7b0012a32e7d08ffa9de118104d51f8d129c6aee --- /dev/null +++ b/build/ci/.golangci-config/.runlint.sh @@ -0,0 +1,4 @@ +golangci-lint run\ + --config .ci/.golangci-master.yml\ + --out-format code-climate |\ + jq -r '.[] | "\(.location.path):\(.location.lines.begin) \(.description)"' diff --git a/build/ci/.security-and-compliance-ci.yml b/build/ci/.security-and-compliance-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..3e98b739e62763538a6e6fe0d5bcf9259b91fbbd --- /dev/null +++ b/build/ci/.security-and-compliance-ci.yml @@ -0,0 +1,10 @@ +sast: + variables: + SAST_ANALYZER_IMAGE_TAG: '2' + SAST_EXCLUDED_PATHS: spec, test, tests, tmp + SEARCH_MAX_DEPTH: '4' + +include: + - template: Security/SAST.gitlab-ci.yml + - template: Dependency-Scanning.gitlab-ci.yml + - template: Security/License-Scanning.gitlab-ci.yml