-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: update release job and drop semantic release
- Loading branch information
Showing
11 changed files
with
334 additions
and
254 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,25 +7,34 @@ orbs: | |
keeper: gravitee-io/[email protected] | ||
gravitee: gravitee-io/[email protected] | ||
slack: circleci/[email protected] | ||
gh: circleci/[email protected] | ||
|
||
parameters: | ||
go-version: | ||
type: string | ||
default: "1.22.1" | ||
trigger: | ||
type: enum | ||
default: test | ||
enum: | ||
- release | ||
- test | ||
release-version: | ||
type: string | ||
default: "" | ||
latest: | ||
type: boolean | ||
default: false | ||
description: Is this version the latest version available ? | ||
dry-run: | ||
type: boolean | ||
default: false | ||
|
||
executors: | ||
azure-cli: | ||
parameters: | ||
resource_class: | ||
description: The resource class | ||
type: enum | ||
enum: ["small", "medium", "large", "xlarge"] | ||
default: "medium" | ||
docker: | ||
# Version can be found here https://docs.microsoft.com/en-us/cli/azure/release-notes-azure-cli | ||
# be careful when updating the version as it looks it is not following semver | ||
- image: mcr.microsoft.com/azure-cli:2.61.0 | ||
resource_class: <<parameters.resource_class>> | ||
resource_class: small | ||
|
||
commands: | ||
notify-on-failure: | ||
|
@@ -242,7 +251,6 @@ jobs: | |
login-to-azure: | ||
executor: | ||
name: azure-cli | ||
resource_class: small | ||
parameters: | ||
clusterName: | ||
type: enum | ||
|
@@ -341,39 +349,119 @@ jobs: | |
- go/save-cache | ||
- notify-on-failure | ||
|
||
semantic-release: | ||
release: | ||
docker: | ||
- image: cimg/go:<< pipeline.parameters.go-version >>-node | ||
environment: | ||
GITHUB_TOKEN: "keeper://TIlcGPFq4rN5GvgnZb9hng/field/password" | ||
GIT_AUTHOR_NAME: "keeper://q9AKrHbbTqSGDoUl-Lg85g/field/login" | ||
GIT_AUTHOR_EMAIL: "keeper://q9AKrHbbTqSGDoUl-Lg85g/custom_field/email" | ||
GIT_COMMITTER_NAME: "keeper://q9AKrHbbTqSGDoUl-Lg85g/field/login" | ||
GIT_COMMITTER_EMAIL: "keeper://q9AKrHbbTqSGDoUl-Lg85g/custom_field/email" | ||
DOCKER_USERNAME: "keeper://cooU9UoXIk8Kj0hsP2rkBw/field/login" | ||
DOCKER_TOKEN: "keeper://cooU9UoXIk8Kj0hsP2rkBw/field/password" | ||
steps: | ||
- checkout | ||
- gravitee/install-semantic-release | ||
- setup_remote_docker | ||
- keeper/exec: | ||
step-name: Docker login | ||
command: docker login --username="${DOCKER_USERNAME}" -p="${DOCKER_TOKEN}" | ||
- keeper/env-export: | ||
secret-url: keeper://TIlcGPFq4rN5GvgnZb9hng/field/password | ||
var-name: GITHUB_TOKEN | ||
- keeper/env-export: | ||
secret-url: keeper://q9AKrHbbTqSGDoUl-Lg85g/field/login | ||
var-name: GIT_AUTHOR_NAME | ||
- keeper/env-export: | ||
secret-url: keeper://q9AKrHbbTqSGDoUl-Lg85g/custom_field/email | ||
var-name: GIT_AUTHOR_EMAIL | ||
- keeper/env-export: | ||
secret-url: keeper://q9AKrHbbTqSGDoUl-Lg85g/field/login | ||
var-name: GIT_COMMITTER_NAME | ||
- keeper/env-export: | ||
secret-url: keeper://q9AKrHbbTqSGDoUl-Lg85g/custom_field/email | ||
var-name: GIT_COMMITTER_EMAIL | ||
- keeper/env-export: | ||
secret-url: keeper://cooU9UoXIk8Kj0hsP2rkBw/field/login | ||
var-name: DOCKER_USERNAME | ||
- keeper/env-export: | ||
secret-url: keeper://cooU9UoXIk8Kj0hsP2rkBw/field/password | ||
var-name: DOCKER_TOKEN | ||
- keeper/env-export: | ||
secret-url: keeper://hfnQD5TEfxzwRXUKhJhM-A/field/password | ||
var-name: JIRA_TOKEN | ||
- run: | ||
name: Install operator SDK | ||
name: Switch to release branch | ||
command: | | ||
export OPERATOR_SDK_RELEASE_VERSION=v1.23.0 | ||
export ARCH=$(case $(uname -m) in amd64|x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac) | ||
export OS=$(uname | awk '{print tolower($0)}') | ||
export DOWNLOAD_URL=https://github.com/operator-framework/operator-sdk/releases/latest/download | ||
export BINARY=operator-sdk_${OS}_${ARCH} | ||
curl -OJL ${DOWNLOAD_URL}/${BINARY} | ||
chmod +x ${BINARY} && sudo cp ${BINARY} /usr/local/bin/operator-sdk && rm ${BINARY} | ||
export RELEASE_BRANCH=$(npx zx scripts/get-release-branch.mjs --version << pipeline.parameters.release-version >>) | ||
echo "Switching to branch $RELEASE_BRANCH" | ||
git fetch | ||
git switch $RELEASE_BRANCH 2>/dev/null || git switch -c $RELEASE_BRANCH | ||
- run: | ||
name: Docker login | ||
command: docker login --username="${DOCKER_USERNAME}" -p="${DOCKER_TOKEN}" | ||
# - run: | ||
# name: Build Docker image for version << pipeline.parameters.release-version >> | ||
# command: | | ||
# docker build -t graviteeio/kubernetes-operator:<< pipeline.parameters.release-version >> . | ||
- when: | ||
condition: << pipeline.parameters.latest >> | ||
steps: | ||
- run: | ||
name: Tag << pipeline.parameters.release-version >> image as latest | ||
command: | | ||
docker tag \ | ||
graviteeio/kubernetes-operator:<< pipeline.parameters.release-version >> \ | ||
graviteeio/kubernetes-operator:latest | ||
- when: | ||
condition: | ||
and: | ||
- not: << pipeline.parameters.dry-run >> | ||
- << pipeline.parameters.latest >> | ||
steps: | ||
- run: | ||
name: Push << pipeline.parameters.release-version >> Docker image as latest tag | ||
command: | | ||
docker push graviteeio/kubernetes-operator:<< pipeline.parameters.release-version >> | ||
docker push graviteeio/kubernetes-operator:latest | ||
- when: | ||
condition: | ||
and: | ||
- not: << pipeline.parameters.dry-run >> | ||
- not: << pipeline.parameters.latest >> | ||
steps: | ||
- run: | ||
name: Push << pipeline.parameters.release-version >> Docker image tag | ||
command: | | ||
docker push graviteeio/kubernetes-operator:<< pipeline.parameters.release-version >> | ||
- helm/install_helm_client | ||
- keeper/exec: | ||
step-name: "Run Semantic Release" | ||
command: npx semantic-release | ||
|
||
- when: | ||
condition: << pipeline.parameters.dry-run >> | ||
steps: | ||
- run: | ||
name: Dry run release Helm chart | ||
command: | | ||
npx zx scripts/release-helm-chart.mjs --dry-run --version << pipeline.parameters.release-version >> | ||
- when: | ||
condition: | ||
not: << pipeline.parameters.dry-run >> | ||
steps: | ||
- run: | ||
name: Release Helm chart | ||
command: | | ||
npx zx scripts/release-helm-chart.mjs --version << pipeline.parameters.release-version >> | ||
- run: | ||
name: Commit and tag release | ||
command: | | ||
make add-license > /dev/null | ||
git add helm/gko/Chart.yaml | ||
git commit -m "ci: release version << pipeline.parameters.release-version >> [skip ci]" | ||
git tag << pipeline.parameters.release-version >> | ||
echo | ||
git diff HEAD~1 HEAD | ||
- when: | ||
condition: | ||
not: << pipeline.parameters.dry-run >> | ||
steps: | ||
- run: | ||
name: Push release tag and commit | ||
command: | | ||
export RELEASE_BRANCH=$(npx zx scripts/get-release-branch.mjs --version << pipeline.parameters.release-version >>) | ||
git push -u origin $RELEASE_BRANCH | ||
git push --tags origin $RELEASE_BRANCH | ||
- run: | ||
name: Generate changelog | ||
command: npx zx scripts/generate-changelog.mjs --version << pipeline.parameters.release-version >> | ||
- gh/setup | ||
notify-release-slack: | ||
docker: | ||
- image: cimg/base:stable | ||
|
@@ -462,6 +550,10 @@ workflows: | |
and: | ||
- not: | ||
equal: [master, << pipeline.git.branch >>] | ||
- not: | ||
equal: ['release', << pipeline.parameters.trigger >>] | ||
- not: | ||
equal: ['test', << pipeline.parameters.trigger >>] | ||
jobs: | ||
- lint-sources: | ||
name: Lint sources | ||
|
@@ -550,10 +642,10 @@ workflows: | |
|
||
release: | ||
when: | ||
equal: [trigger-release, << pipeline.git.branch >>] | ||
equal: ['release', << pipeline.parameters.trigger >>] | ||
jobs: | ||
- semantic-release: | ||
name: Semantic Release | ||
- release: | ||
name: Release | ||
context: cicd-orchestrator | ||
|
||
notify-release: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.