ci: remove Gitlab assets

Preparing for the pending migration to Github Actions.
This commit is contained in:
Thibault VINCENT
2022-09-19 15:12:23 +02:00
parent 8ea5e19415
commit 06d52fcfae
2 changed files with 0 additions and 212 deletions
-177
View File
@@ -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
-35
View File
@@ -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