apiVersion: v1 kind: ConfigMap metadata: name: builder-script namespace: {{ .Values.global.namespace }} labels: {{- include "terraform-registry.labels" . | nindent 4 }} data: build.sh: | #!/bin/sh set -e echo ">>> Starting Build for $PROVIDER_NAME $VERSION" # 1. Setup Environment # Inputs: GIT_REPO, GIT_REF, PROVIDER_NAME, VERSION WORK_DIR="/workspace" ARTIFACTS_DIR="/artifacts" mkdir -p $WORK_DIR $ARTIFACTS_DIR # 2. Clone Repository echo ">>> Cloning $GIT_REPO ($GIT_REF)..." git clone $GIT_REPO $WORK_DIR/src cd $WORK_DIR/src git checkout $GIT_REF # 3. Build for Platforms echo ">>> Building binaries..." # Linux amd64 echo "--> linux/amd64" GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o terraform-provider-${PROVIDER_NAME}_v${VERSION} zip ${ARTIFACTS_DIR}/terraform-provider-${PROVIDER_NAME}_${VERSION}_linux_amd64.zip terraform-provider-${PROVIDER_NAME}_v${VERSION} rm terraform-provider-${PROVIDER_NAME}_v${VERSION} # Windows amd64 echo "--> windows/amd64" GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -o terraform-provider-${PROVIDER_NAME}_v${VERSION}.exe zip ${ARTIFACTS_DIR}/terraform-provider-${PROVIDER_NAME}_${VERSION}_windows_amd64.zip terraform-provider-${PROVIDER_NAME}_v${VERSION}.exe rm terraform-provider-${PROVIDER_NAME}_v${VERSION}.exe # 4. Checksums cd $ARTIFACTS_DIR sha256sum *.zip > terraform-provider-${PROVIDER_NAME}_${VERSION}_SHA256SUMS # 5. GPG Sign touch terraform-provider-${PROVIDER_NAME}_${VERSION}_SHA256SUMS.sig # 6. Upload to S3 if [ -z "$REGISTRY_HOSTNAME" ]; then REGISTRY_HOSTNAME="{{ .Values.global.registryHostname }}" fi TARGET_PATH="terraform-providers/$REGISTRY_HOSTNAME/${NAMESPACE}/${PROVIDER_NAME}/${VERSION}" echo ">>> Uploading to S3 path: $TARGET_PATH" mc alias set nubes_s3 https://$S3_ENDPOINT $S3_ACCESS_KEY $S3_SECRET_KEY mc cp --recursive $ARTIFACTS_DIR/ nubes_s3/$TARGET_PATH/ echo ">>> Build Complete!"