diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d9a7d07f612348924e2fba2388c641a027f15625..1b3e9fe148e3abee4497534c7fe2f454708eec97 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,7 +12,7 @@ stages:
   - build
   - trigger-deploy
 lint:
-  image: golangci/golangci-lint:v1.50.1
+  image: golangci/golangci-lint:latest
   stage: test
   tags:
     - amd64-docker
@@ -20,16 +20,21 @@ lint:
     - golangci-lint --version
     - golangci-lint run
   before_script:
-    - ln -s /builds /go/src/gitlab.com
-    - cd /go/src/gitlab.com/${CI_PROJECT_PATH}
+    - ln -s /builds /go/src/code.vereign.com
+    - cd /go/src/code.vereign.com/${CI_PROJECT_PATH}
 
 unit tests:
   image: golang:${GO_VERSION}
-  extends: .gotest
   stage: test
   tags:
     - amd64-docker
-  before_script: []
+  before_script:
+    - ln -s /builds /go/src/code.vereign.com
+    - cd /go/src/code.vereign.com/${CI_PROJECT_PATH}
+  script:
+    - go version
+    - go test $(go list ./... | grep -v /integration) -race -coverprofile=coverage.out
+    - go tool cover -func=coverage.out
   coverage: '/total:\s+\(statements\)\s+(\d+.\d+\%)/'
 
 govulncheck:
@@ -38,8 +43,8 @@ govulncheck:
   tags:
     - amd64-docker
   before_script:
-    - ln -s /builds /go/src/gitlab.com
-    - cd /go/src/gitlab.com/${CI_PROJECT_PATH}
+    - ln -s /builds /go/src/code.vereign.com
+    - cd /go/src/code.vereign.com/${CI_PROJECT_PATH}
   script:
     - go version
     - go install golang.org/x/vuln/cmd/govulncheck@latest
diff --git a/.golangci.yml b/.golangci.yml
index bbcffe769d2a44cb772c1595ad69f69abf8fd2d6..deac9cf0c47bf49648d2bd828f6fe2b1b749e554 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -1,16 +1,17 @@
 run:
-  deadline: 5m
-  skip-dirs:
+  timeout: 5m
+
+issues:
+  exclude-dirs:
     - vendor/
     - .*fakes/
     - .*generated/
-  skip-files:
+  exclude-files:
     - .*generated.go
 
 linters:
   disable-all: true
   enable:
-    - megacheck
     - govet
     - errcheck
     - goconst
@@ -20,10 +21,7 @@ linters:
     - gosec
     - ineffassign
     - nakedret
-    - staticcheck
     - unconvert
-    - vet
-    - vetshadow
     - misspell
     - staticcheck
     - unused
diff --git a/cmd/signer/main.go b/cmd/signer/main.go
index c3369de8d18b0e177650b8ed1a000021fe96873a..e421aa20ed11b216992d9afbbb69c5ced4404743 100644
--- a/cmd/signer/main.go
+++ b/cmd/signer/main.go
@@ -193,6 +193,7 @@ func createLogger(logLevel string, opts ...zap.Option) (*zap.Logger, error) {
 	return config.Build(opts...)
 }
 
+// nolint:misspell
 func errFormatter(ctx context.Context, e error) goahttp.Statuser {
 	return service.NewErrorResponse(ctx, e)
 }
diff --git a/internal/clients/vault/client_test.go b/internal/clients/vault/client_test.go
index 4e5f7150c2d308110c82a73af0200e18ef818606..96e5c70e6672b7c71532a0f1c1c5f3f0029af80b 100644
--- a/internal/clients/vault/client_test.go
+++ b/internal/clients/vault/client_test.go
@@ -1,3 +1,4 @@
+//nolint:revive
 package vault_test
 
 import (
diff --git a/internal/service/error_response.go b/internal/service/error_response.go
index 9234f3041e4f396e936b553b74492589d15728e0..5933b14c4c08f85658b40c6bc69526640810e373 100644
--- a/internal/service/error_response.go
+++ b/internal/service/error_response.go
@@ -9,6 +9,7 @@ import (
 	"gitlab.eclipse.org/eclipse/xfsc/tsa/golib/errors"
 )
 
+// nolint:misspell
 func NewErrorResponse(ctx context.Context, err error) goahttp.Statuser {
 	if err == nil {
 		return nil
diff --git a/internal/service/signer/service_test.go b/internal/service/signer/service_test.go
index 75f4bfecb5bb8f20777370f19e0743161d72f1d2..67bb45914284743c2f41663fb8f4d444e44b08d0 100644
--- a/internal/service/signer/service_test.go
+++ b/internal/service/signer/service_test.go
@@ -1,4 +1,4 @@
-// nolint:gosec
+// nolint:gosec,revive
 package signer_test
 
 import (