# GitLab CI - pipeline для сборки и публикации Terraform Provider Registry stages: - test - build - sign - publish variables: HARBOR_HOST: "pearlharbor.registryk8s.services.ngcloud.ru" S3_BUCKET: "terraform-registry" PROVIDER_NAME: "nubes" PROVIDER_NAMESPACE: "nubes" test: stage: test image: golang:1.24 script: - cd universal_rebuild - go test ./... - go vet ./... build-provider: stage: build image: golang:1.24 script: - cd universal_rebuild - GOOS=linux GOARCH=amd64 go build -o bin/terraform-provider-${PROVIDER_NAME}_linux_amd64 - GOOS=darwin GOARCH=amd64 go build -o bin/terraform-provider-${PROVIDER_NAME}_darwin_amd64 - GOOS=windows GOARCH=amd64 go build -o bin/terraform-provider-${PROVIDER_NAME}_windows_amd64.exe artifacts: paths: [universal_rebuild/bin/] build-images: stage: build script: - docker build -t ${HARBOR_HOST}/terraform/registry-server:${CI_COMMIT_TAG} registry-server-build/ - docker build -t ${HARBOR_HOST}/terraform/registry-operator:${CI_COMMIT_TAG} operator/ - docker push ${HARBOR_HOST}/terraform/registry-server:${CI_COMMIT_TAG} - docker push ${HARBOR_HOST}/terraform/registry-operator:${CI_COMMIT_TAG} only: - tags sign: stage: sign image: golang:1.24 script: - cd universal_rebuild/bin - sha256sum terraform-provider-* > SHA256SUMS - gpg --import $GPG_PRIVATE_KEY - gpg --detach-sign SHA256SUMS artifacts: paths: - universal_rebuild/bin/SHA256SUMS - universal_rebuild/bin/SHA256SUMS.gpg publish-to-s3: stage: publish image: alpine:3.19 before_script: - apk add --no-cache s3cmd script: - s3cmd put universal_rebuild/bin/* s3://${S3_BUCKET}/terraform-providers/ only: - tags