diff --git a/.github/workflows/00-run-unit-tests.yml b/.github-disabled/workflows/00-run-unit-tests.yml similarity index 100% rename from .github/workflows/00-run-unit-tests.yml rename to .github-disabled/workflows/00-run-unit-tests.yml diff --git a/.github/workflows/01-build-docker-image.yml b/.github-disabled/workflows/01-build-docker-image.yml similarity index 100% rename from .github/workflows/01-build-docker-image.yml rename to .github-disabled/workflows/01-build-docker-image.yml diff --git a/.github/workflows/git-sync.yml b/.github-disabled/workflows/git-sync.yml similarity index 100% rename from .github/workflows/git-sync.yml rename to .github-disabled/workflows/git-sync.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..b275aaffd46b7a9019e82d2b8a0517b66782aba8 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,55 @@ +stages: + - test + - build + +test: + stage: test + image: golang:1.21 + tags: + - docker + script: + - | + go get github.com/johnaoss/htpasswd/apr1 + go get github.com/xanzy/go-gitlab + go get k8s.io/api/core/v1 + go get k8s.io/apimachinery/pkg/apis/meta/v1 + go get k8s.io/apimachinery/pkg/types + go get k8s.io/client-go/kubernetes + go get k8s.io/client-go/rest + go get github.com/evanphx/json-patch + go get google.golang.org/grpc + go install google.golang.org/grpc + go get github.com/golang/protobuf/protoc-gen-go + go install github.com/golang/protobuf/protoc-gen-go + wget https://github.com/protocolbuffers/protobuf/releases/download/v25.1/protoc-25.1-linux-x86_64.zip + unzip protoc-25.1-linux-x86_64.zip -d ./protoc + mkdir -p pkg/api/v1 + protoc/bin/protoc --proto_path=api/proto/v1 --proto_path=third_party --go_out=plugins=grpc:pkg/api/v1 config-service.proto + go test ./... + +build_and_push_latest_image: + stage: build + only: + - develop + variables: + IMAGE_TAG: "latest" + script: + - | + docker image prune -f + docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REPOSITORY + docker build -t $DOCKER_REPOSITORY_LOCAL:$IMAGE_TAG . + docker push $DOCKER_REPOSITORY_LOCAL:$IMAGE_TAG + docker logout $DOCKER_REPOSITORY + +build_and_push_release_image: + stage: build + only: + - tags + script: + - | + export IMAGE_TAG=$(echo $CI_COMMIT_TAG | cut -c 2-) + docker image prune -f + docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REPOSITORY + docker build -t $DOCKER_REPOSITORY_LOCAL:$IMAGE_TAG . + docker push $DOCKER_REPOSITORY_LOCAL:$IMAGE_TAG + docker logout $DOCKER_REPOSITORY \ No newline at end of file