diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a15d084dbd8b9c0215fec0e94ca463030bd12861..88052a49718cce0c75a50f71830fddf95ec4ddc7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,21 +1,108 @@ -image: $HELM_IMAGE - -include: - - project: 'gaiax/tsa/ci-helpers' - file: 'helm-package.yml' +--- +variables: + HELPERS_FILE: build-eclipse.yml + HELM_HELPERS_FILE: helm-eclipse.yml + APP_HELM_NAME: infohub + DOCKER_FILE: app/deployment/ci/Dockerfile stages: + - test + - build + - manifest - lint - package + - deploy + +include: + - project: "${HELPERS_PATH}" + file: 'build-eclipse.yml' + - template: "Workflows/Branch-Pipelines.gitlab-ci.yml" + - project: "${HELPERS_PATH}" + file: 'helm-eclipse.yml' + + +lint: + image: golangci/golangci-lint:latest + stage: test + tags: + - amd64-docker + script: + - golangci-lint --version + - golangci-lint run + before_script: + - ln -s /builds /go/src/gitlab.com + - cd /go/src/gitlab.com/${CI_PROJECT_PATH}/app + +unit tests: + image: golang:1.21.1 + stage: test + tags: + - amd64-docker + script: + - go version + - go test $(go list ./... | grep -v /integration) -race -coverprofile=coverage.out + - go tool cover -func=coverage.out + before_script: + - ln -s /builds /go/src/gitlab.com + - cd /go/src/gitlab.com/${CI_PROJECT_PATH}/app + coverage: '/total:\s+\(statements\)\s+(\d+.\d+\%)/' + +govulncheck: + image: golang:1.21.1 + stage: test + tags: + - amd64-docker + before_script: + - ln -s /builds /go/src/gitlab.com + - cd /go/src/gitlab.com/${CI_PROJECT_PATH}/app + script: + - go version + - go install golang.org/x/vuln/cmd/govulncheck@latest + - govulncheck ./... + +amd64: + extends: .docker-build + stage: build + tags: + - amd64-docker + +dockerize sync: + stage: build + tags: + - amd64-docker + script: + - cd ./app/cmd/sync + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker build -t "${CI_REGISTRY_IMAGE}/sync:${CI_COMMIT_REF_NAME}" . + - docker push "${CI_REGISTRY_IMAGE}/sync:${CI_COMMIT_REF_NAME}" + only: + - main + - tags + - integration + +manifest: + extends: .manifest-amd64 + stage: manifest + +cloud: + extends: .manifest-cloud + stage: manifest + +release: + extends: .manifest-release + stage: manifest helm-lint: + image: ${HELM_IMAGE} extends: .helm-lint stage: lint tags: - amd64-docker helm-package: + image: ${HELM_IMAGE} extends: .helm-package stage: package tags: - amd64-docker + needs: ["helm-lint"] diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..0c778636dfe18dbd374c8091dc4a1b4b157428fe --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "app"] + path = app + url = https://gitlab.eclipse.org/eclipse/xfsc/tsa/infohub.git diff --git a/app b/app new file mode 160000 index 0000000000000000000000000000000000000000..d4caff859968d1499817805715b81e6bde583ffb --- /dev/null +++ b/app @@ -0,0 +1 @@ +Subproject commit d4caff859968d1499817805715b81e6bde583ffb