mirror of
https://github.com/enix/x509-certificate-exporter.git
synced 2026-08-28 16:27:16 +00:00
ci: remove Gitlab assets
Preparing for the pending migration to Github Actions.
This commit is contained in:
-177
@@ -1,177 +0,0 @@
|
||||
stages:
|
||||
- test
|
||||
- build
|
||||
- release
|
||||
|
||||
variables:
|
||||
GITHUB_REPO: enix/$CI_PROJECT_NAME
|
||||
PLATFORMS: linux/amd64,linux/arm64
|
||||
STANDALONE_PLATFORMS: linux/amd64,linux/arm64,darwin/amd64,freebsd/amd64,openbsd/amd64,solaris/amd64,windows/amd64,linux/arm,linux/386,windows/386
|
||||
CACHE_TAG: $CI_REGISTRY_IMAGE:cache
|
||||
IMAGE_TAG_LATEST: $CI_REGISTRY_IMAGE:latest
|
||||
|
||||
.only-main-and-release:
|
||||
only:
|
||||
- main
|
||||
- release
|
||||
except:
|
||||
- tags
|
||||
|
||||
.only-semver:
|
||||
only:
|
||||
refs:
|
||||
- /^v([0-9]|[1-9][0-9]*)\.([0-9]|[1-9][0-9]*)\.([0-9]|[1-9][0-9]*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/
|
||||
|
||||
.init-docker-buildx:
|
||||
variables:
|
||||
DOCKER_CLI_EXPERIMENTAL: enabled
|
||||
services:
|
||||
- docker:20-dind
|
||||
before_script:
|
||||
- mkdir -p ~/.docker/cli-plugins
|
||||
- wget -O ~/.docker/cli-plugins/docker-buildx "https://github.com/docker/buildx/releases/download/v0.5.1/buildx-v0.5.1.linux-amd64"
|
||||
- chmod +x ~/.docker/cli-plugins/docker-buildx
|
||||
- docker context create $CI_PIPELINE_ID
|
||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
- docker buildx create $CI_PIPELINE_ID --name builder --use
|
||||
- docker buildx inspect builder
|
||||
- echo -n "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
|
||||
|
||||
test:
|
||||
stage: test
|
||||
image: golang:1.18.6-alpine
|
||||
except:
|
||||
- tags
|
||||
services:
|
||||
- docker:20-dind
|
||||
before_script:
|
||||
- apk add --update gcc libc-dev curl docker-cli bash
|
||||
- go install sigs.k8s.io/kind@v0.9.0
|
||||
- curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
- chmod +x kubectl
|
||||
- mv kubectl /usr/local/bin
|
||||
- docker info
|
||||
- kind create cluster --name $CI_PIPELINE_ID --config=test/kind-config.yml
|
||||
- getent hosts docker
|
||||
- export IP=$(docker inspect $CI_PIPELINE_ID-control-plane --format '{{ .NetworkSettings.Networks.kind.Gateway }}')
|
||||
- sed -i -E -e "s/localhost|0\.0\.0\.0/docker/g" "$HOME/.kube/config"
|
||||
- kubectl --insecure-skip-tls-verify cluster-info
|
||||
- go mod tidy
|
||||
script:
|
||||
- go test -v -failfast -timeout 1m -coverprofile=coverage.cov ./internal
|
||||
- go tool cover -html=coverage.cov -o coverage.html
|
||||
after_script:
|
||||
- kind delete cluster --name $CI_PIPELINE_ID
|
||||
coverage: '/coverage: (\d+\.\d+)% of statements/'
|
||||
artifacts:
|
||||
paths:
|
||||
- coverage.html
|
||||
|
||||
build:
|
||||
extends:
|
||||
- .init-docker-buildx
|
||||
- .only-main-and-release
|
||||
stage: build
|
||||
image: docker:stable-dind
|
||||
script:
|
||||
- export IMAGE_TAG="$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME"
|
||||
- docker buildx build --platform "$PLATFORMS" -t "$IMAGE_TAG" --build-arg "VERSION=devel ($CI_COMMIT_SHORT_SHA)" --cache-from $CACHE_TAG --cache-to $CACHE_TAG --push .
|
||||
|
||||
build-latest:
|
||||
extends:
|
||||
- .init-docker-buildx
|
||||
- .only-semver
|
||||
stage: build
|
||||
image: docker:stable-dind
|
||||
script:
|
||||
- export IMAGE_TAG="$CI_REGISTRY_IMAGE:${CI_COMMIT_REF_NAME:1}"
|
||||
- docker buildx build --platform "$PLATFORMS" -t "$IMAGE_TAG" -t "$IMAGE_TAG_LATEST" --build-arg "VERSION=${CI_COMMIT_REF_NAME:1}" --cache-from $CACHE_TAG --cache-to $CACHE_TAG --push .
|
||||
|
||||
semantic-release:
|
||||
extends:
|
||||
- .only-main-and-release
|
||||
stage: release
|
||||
image: enix/semantic-release:gitlab
|
||||
when: manual
|
||||
before_script:
|
||||
- git show-ref
|
||||
script:
|
||||
- "echo \"{\\\"repository\\\": \\\"https://github.com/${GITHUB_REPO}\\\"}\" > package.json"
|
||||
- semantic-release --ci
|
||||
|
||||
release-assets:
|
||||
stage: release
|
||||
image: golang:1.18.6
|
||||
extends:
|
||||
- .only-semver
|
||||
before_script:
|
||||
- git show-ref --tags
|
||||
script:
|
||||
- set -o xtrace
|
||||
- export IFS=","
|
||||
- >
|
||||
for platform in $STANDALONE_PLATFORMS; do
|
||||
export GOOS=$(echo "$platform" | cut -d'/' -f1)
|
||||
export GOARCH=$(echo "$platform" | cut -d'/' -f2)
|
||||
BIN=$CI_PROJECT_NAME-$GOOS-$GOARCH
|
||||
go build -tags netgo,osusergo -o $BIN -ldflags "-X \"github.com/enix/$CI_PROJECT_NAME/v3/internal.Version=${CI_COMMIT_REF_NAME:1}\"" ./cmd/$CI_PROJECT_NAME
|
||||
./test/upload-release.sh "github_api_token=$GITHUB_TOKEN" "owner=enix" "repo=$CI_PROJECT_NAME" "tag=$CI_COMMIT_TAG" "filename=$BIN"
|
||||
done
|
||||
|
||||
docker-hub:
|
||||
extends:
|
||||
- .only-semver
|
||||
stage: release
|
||||
image:
|
||||
name: ananace/skopeo:latest
|
||||
entrypoint: ['']
|
||||
script:
|
||||
- export IMAGE_TAG="$CI_REGISTRY_IMAGE:${CI_COMMIT_REF_NAME:1}"
|
||||
- export PUBLIC_IMAGE_TAG="docker.io/$DOCKER_HUB_REPOSITORY/$CI_PROJECT_NAME:${CI_COMMIT_REF_NAME:1}"
|
||||
- export PUBLIC_IMAGE_TAG_LATEST="docker.io/$DOCKER_HUB_REPOSITORY/$CI_PROJECT_NAME:latest"
|
||||
- skopeo --insecure-policy copy --all --src-creds "$CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD" --dest-creds "$DOCKER_HUB_USER:$DOCKER_HUB_PASSWORD" "docker://${IMAGE_TAG}" "docker://${PUBLIC_IMAGE_TAG}"
|
||||
- skopeo --insecure-policy copy --all --src-creds "$CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD" --dest-creds "$DOCKER_HUB_USER:$DOCKER_HUB_PASSWORD" "docker://${IMAGE_TAG_LATEST}" "docker://${PUBLIC_IMAGE_TAG_LATEST}"
|
||||
|
||||
quay:
|
||||
extends:
|
||||
- .only-semver
|
||||
stage: release
|
||||
image:
|
||||
name: ananace/skopeo:latest
|
||||
entrypoint: ['']
|
||||
script:
|
||||
- export IMAGE_TAG="$CI_REGISTRY_IMAGE:${CI_COMMIT_REF_NAME:1}"
|
||||
- export PUBLIC_IMAGE_TAG="$QUAY_REPOSITORY/$CI_PROJECT_NAME:${CI_COMMIT_REF_NAME:1}"
|
||||
- export PUBLIC_IMAGE_TAG_LATEST="$QUAY_REPOSITORY/$CI_PROJECT_NAME:latest"
|
||||
- skopeo --insecure-policy copy --all --src-creds "$CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD" --dest-creds "$QUAY_USER:$QUAY_PASSWORD" "docker://${IMAGE_TAG}" "docker://${PUBLIC_IMAGE_TAG}"
|
||||
- skopeo --insecure-policy copy --all --src-creds "$CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD" --dest-creds "$QUAY_USER:$QUAY_PASSWORD" "docker://${IMAGE_TAG_LATEST}" "docker://${PUBLIC_IMAGE_TAG_LATEST}"
|
||||
|
||||
chart:
|
||||
extends:
|
||||
- .only-semver
|
||||
stage: release
|
||||
image: debian
|
||||
needs:
|
||||
- docker-hub
|
||||
- quay
|
||||
before_script:
|
||||
- apt update -y
|
||||
- apt install -y curl jq git
|
||||
- curl -sSL 'https://github.com/helm/chart-releaser/releases/download/v1.4.0/chart-releaser_1.4.0_linux_amd64.tar.gz' | tar xz
|
||||
- mv cr /usr/bin/cr
|
||||
- curl -sSL 'https://github.com/mikefarah/yq/releases/download/v4.25.2/yq_linux_amd64.tar.gz' | tar xz
|
||||
- mv yq_linux_amd64 /usr/bin/yq
|
||||
- git config --global user.name "Monkeynator"
|
||||
- git config --global user.email "monkeynator@enix.io"
|
||||
script:
|
||||
- cd deploy/charts/x509-certificate-exporter/
|
||||
- curl -sL "https://api.github.com/repos/enix/x509-certificate-exporter/releases/tags/${CI_COMMIT_REF_NAME}" | jq -r .body > CHANGELOG.md
|
||||
- ${CI_PROJECT_DIR}/.gitlab-ci/release-chart.sh "${CI_COMMIT_REF_NAME:1}" "$(cat CHANGELOG.md)" "${CONTAINS_SECURITY_UPDATES:-false}"
|
||||
- export CHARTS_DIRECTORY=/tmp/charts
|
||||
- git clone https://github.com/enix/helm-charts $CHARTS_DIRECTORY
|
||||
- mkdir -p $CHARTS_DIRECTORY/charts/x509-certificate-exporter
|
||||
- cp -r ** $CHARTS_DIRECTORY/charts/x509-certificate-exporter
|
||||
- cd $CHARTS_DIRECTORY
|
||||
- cr package $CHARTS_DIRECTORY/charts/x509-certificate-exporter
|
||||
- cr upload --skip-existing --owner enix --git-repo helm-charts
|
||||
- cr index --push -i index.yaml --owner enix --git-repo helm-charts
|
||||
@@ -1,35 +0,0 @@
|
||||
#! /bin/bash
|
||||
|
||||
version="$1"
|
||||
notes="$2"
|
||||
containsSecurityUpdates="$3"
|
||||
|
||||
if [ "$version" = "" ]; then
|
||||
echo "Skipping x509 certificate exporter release because no version parameter was passed to the CI script"
|
||||
exit
|
||||
fi
|
||||
|
||||
prerelease="false"
|
||||
versionComponents=(${version//-/ })
|
||||
|
||||
if [ ! -z "${versionComponents[1]}" ]; then
|
||||
prerelease="true"
|
||||
fi
|
||||
|
||||
echo "Releasing x509 certificate exporter version: $version (prerelease: $prerelease)"
|
||||
|
||||
yq -i ".version = \"$version\"" Chart.yaml
|
||||
yq -i ".appVersion = \"$version\"" Chart.yaml
|
||||
yq -i ".annotations[\"artifacthub.io/prerelease\"] = \"$prerelease\"" Chart.yaml
|
||||
yq -i ".annotations[\"artifacthub.io/containsSecurityUpdates\"] = \"$containsSecurityUpdates\"" Chart.yaml
|
||||
|
||||
changes="[]"
|
||||
IFS=$'\n'
|
||||
for line in $notes; do
|
||||
if [[ "${line:0:1}" == "*" ]]; then
|
||||
changes=$(echo $changes | jq ". += [$(echo -n ${line:2} | jq -R -s '.')]")
|
||||
fi
|
||||
done
|
||||
|
||||
rawChanges="$(echo -n $changes | jq -R -s '.')"
|
||||
yq -i ".annotations[\"artifacthub.io/changes\"] = $rawChanges" Chart.yaml
|
||||
Reference in New Issue
Block a user