Compare commits

...

31 Commits

Author SHA1 Message Date
Danny Bessems 2538247718 chore(release): 0.6.0 [skip ci]
# [0.6.0](https://code.spamasaurus.com/djpbessems/ContainerImage.JSONServer/compare/v0.5.3...v0.6.0) (2023-07-12)

### Bug Fixes

* Refer to new container tag within chart values ([361a855](361a85592e))
* Replace deprecated parameters ([c681572](c6815721df))

### Features

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

6905
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

9
package.json Normal file
View File

@ -0,0 +1,9 @@
{
"dependencies": {
"@semantic-release/commit-analyzer": "^10.0.1",
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@semantic-release/release-notes-generator": "^11.0.4",
"semantic-release": "^21.0.7"
}
}