65 lines
1.7 KiB
YAML
65 lines
1.7 KiB
YAML
# 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
|