30 Commits

Author SHA1 Message Date
361a85592e fix: Refer to new container tag within chart values
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-12 12:10:06 +02:00
e83b98e116 chore: Fix variable reference 2023-07-11 21:19:54 +02:00
a4ced9e4b4 build: Include non-dryrun semantic release step
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-11 21:17:55 +02:00
cde06aae36 build: Fix manifest path
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-11 19:47:50 +02:00
f4ee0617cc build: Apply semantic release version to chart
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 19:44:28 +02:00
dce6d7fb1c build: Avoid newline in encoded authentication token
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-11 19:25:44 +02:00
f09dfc99d2 build: Debug registry authentication config file
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 19:24:30 +02:00
396e2fe9b3 build: Debug registry authentication
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 19:22:19 +02:00
3501cd51f3 build: Remove registry from destination
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 17:40:32 +02:00
78cb46795f build: Fix mixed up destination / credentials
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 17:37:37 +02:00
48e8b21c30 build: Change kaniko auth config to explicit registry v2 api
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 17:35:57 +02:00
b19a3f7391 build: Remove redundant apk repository commands 2023-07-11 17:30:23 +02:00
cde425809f build: Use busybox built-in wget instead of curl
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 17:29:12 +02:00
6170a12b19 build: Download jq binary
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 17:26:40 +02:00
a12ce0a9e9 build: Test build with original kaniko container image
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 17:19:16 +02:00
2c749e2077 build: Fix step name references
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 15:38:16 +02:00
1f2081f05c build: Test explicit binary
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2023-07-11 15:37:29 +02:00
1d791a3820 build: Debug drone plugin behaviour
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 15:30:47 +02:00
7f5242eedc build: Remove erroneous parameter
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-11 15:19:34 +02:00
ec276c088d build: Include semantic release (WIP)
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 15:15:41 +02:00
1ab1c10f37 feat: Switch to lts-slim tag
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-11 14:11:58 +02:00
4deac9ab13 build: Revert parameter to secret value
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-11 10:23:40 +02:00
2f6c7f7f91 build: Align settings between registries
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-11 10:22:25 +02:00
d24792b8c3 build: Replace registry address with explicit api version
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-11 10:18:43 +02:00
55afb79de5 build: Specify explicit url for registry
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 10:11:31 +02:00
0fa80669cd build: Explicitly add registry to repo name
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 09:57:20 +02:00
38eb4e9faa build: Switch to kaniko plugin
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 09:51:52 +02:00
c6815721df fix: Replace deprecated parameters
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 09:43:26 +02:00
ff42784426 build: Reverse order of helm cm-push arguments
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-11 09:38:41 +02:00
d6e01f3c23 build: Refactor helm-chart upload
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-11 09:36:55 +02:00
3 changed files with 145 additions and 48 deletions

View File

@ -1,55 +1,152 @@
kind: pipeline
type: kubernetes
name: Container image
name: Container & Helm chart
trigger:
event:
exclude:
- tag
steps:
- name: Build & publish (Harbor)
depends_on:
- clone
image: plugins/docker
context: .
settings:
repo: bv11-cr01.bessems.eu/library/json-server
registry: bv11-cr01.bessems.eu
tags: latest
mtu: 1450
username:
from_secret: harbor_username
password:
from_secret: harbor_password
- name: Build & publish (Dockerhub)
depends_on:
- clone
image: plugins/docker
context: .
settings:
repo: djpbessems/json-server
tags: latest
mtu: 1450
username:
from_secret: docker_username
password:
from_secret: docker_password
---
kind: pipeline
type: kubernetes
name: Helm chart (Gitea)
steps:
- name: Package & publish
image: bv11-cr01.bessems.eu/proxy/alpine/helm
- name: Semantic Release (Dry-run)
image: bv11-cr01.bessems.eu/proxy/library/node:20-slim
pull: always
commands:
- |
apk add yq
apt-get update
- |
helm package ./charts/json-server
apt-get install -y --no-install-recommends \
git-core \
ca-certificates
- |
CHART_VERSION=$(cat ./charts/json-server/Chart.yaml | yq '.version')
curl \
--header "Authorization: token $GIT_APIKEY" \
--upload-file json-server-$CHART_VERSION.tgz \
https://code.spamasaurus.com/api/packages/$GIT_USERNAME/helm/api/charts
npm install \
semantic-release \
@semantic-release/commit-analyzer \
@semantic-release/exec \
- |
export GIT_CREDENTIALS=$${GIT_USERNAME}:$${GIT_APIKEY}
- |
npx semantic-release \
--package @semantic-release/exec \
--package semantic-release \
--branches ${DRONE_BRANCH} \
--tag-format "v\$${version}" \
--dry-run \
--plugins @semantic-release/commit-analyzer,@semantic-release/exec \
--analyzeCommits @semantic-release/commit-analyzer \
--verifyRelease @semantic-release/exec \
--verifyReleaseCmd 'echo "$${nextRelease.version}" > .version'
environment:
GIT_APIKEY:
from_secret: git_apikey
GIT_USERNAME: djpbessems
- name: Container image (Harbor)
depends_on:
- Semantic Release (Dry-run)
image: gcr.io/kaniko-project/executor:debug
pull: always
commands:
- |
wget https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 -qO /bin/jq
chmod +x /bin/jq
- |
/bin/jq '.auths["https://bv11-cr01.bessems.eu/v2/"].auth="'"$(echo -n $HARBOR_USERNAME':'$HARBOR_PASSWORD | base64)"'"' --null-input > /kaniko/.docker/config.json
- |
export IMAGE_TAG=$(cat .version)
- |
/kaniko/executor \
--dockerfile=Dockerfile \
--context=dir://. \
--destination=bv11-cr01.bessems.eu/library/json-server:latest \
--destination=bv11-cr01.bessems.eu/library/json-server:$IMAGE_TAG
environment:
HARBOR_USERNAME:
from_secret: harbor_username
HARBOR_PASSWORD:
from_secret: harbor_password
- name: Container image (docker.io)
depends_on:
- Semantic Release (Dry-run)
image: gcr.io/kaniko-project/executor:debug
pull: always
commands:
- |
wget https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64 -qO /bin/jq
chmod +x /bin/jq
- |
export IMAGE_TAG=$(cat .version)
- |
/bin/jq '.auths["https://index.docker.io/v1/"].auth="'"$(echo -n $DOCKER_USERNAME':'$DOCKER_PASSWORD | base64)"'"' --null-input > /kaniko/.docker/config.json
- |
/kaniko/executor \
--dockerfile=Dockerfile \
--context=dir://. \
--destination=docker.io/djpbessems/json-server:latest \
--destination=docker.io/djpbessems/json-server:$IMAGE_TAG
environment:
DOCKER_USERNAME:
from_secret: docker_username
DOCKER_PASSWORD:
from_secret: docker_password
- name: Helm chart (Gitea)
depends_on:
- Semantic Release (Dry-run)
image: bv11-cr01.bessems.eu/proxy/alpine/helm
pull: always
commands:
- |
export CHART_VERSION=$(cat .version)
sed -i 's/{{ chart_version }}/'$CHART_VERSION'/g' charts/json-server/Chart.yaml
sed -i 's/tag: latest/tag: '$CHART_VERSION'/g' charts/json-server/values.yaml
- |
helm package ./charts/json-server
- |
helm plugin install https://github.com/chartmuseum/helm-push
- |
helm repo add \
--username $GIT_USERNAME \
--password $GIT_APIKEY \
spamasaurus \
https://code.spamasaurus.com/api/packages/$GIT_USERNAME/helm
- |
helm cm-push \
json-server-*.tgz \
spamasaurus
environment:
GIT_APIKEY:
from_secret: git_apikey
GIT_USERNAME: djpbessems
- name: Semantic Release
depends_on:
- Container image (Harbor)
- Container image (docker.io)
- Helm chart (Gitea)
image: bv11-cr01.bessems.eu/proxy/library/node:20-slim
pull: always
commands:
- |
apt-get update
- |
apt-get install -y --no-install-recommends \
git-core \
ca-certificates
- |
npm install \
semantic-release \
@semantic-release/commit-analyzer \
@semantic-release/git \
@semantic-release/release-notes-generator
- |
export GIT_CREDENTIALS=$${GIT_USERNAME}:$${GIT_APIKEY}
- |
npx semantic-release \
--branches ${DRONE_BRANCH} \
--tag-format "v\$${version}" \
--plugins @semantic-release/commit-analyzer,@semantic-release/release-notes-generator,@semantic-release/git
environment:
GIT_APIKEY:
from_secret: git_apikey

View File

@ -1,6 +1,6 @@
FROM node:latest
FROM node:lts-slim AS build
RUN npm install -g --no-optional --omit=dev \
RUN npm install -g --omit=optional --omit=dev \
json-server && \
npm cache clean --force

View File

@ -6,10 +6,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: v0.5.3
version: v{{ chart_version }}
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "v0.5.3"
appVersion: "v{{ chart_version }}"