feat: documentation
Co-authored-by: Richard Attermeyer <richard.attermeyer@opitz-consulting.com> Reviewed-on: https://git.192.168.1.151.nip.io:8543/fjadmin/ci-demo-2/pulls/4pull/1/head
parent
22a3f74737
commit
9d7827eab9
|
|
@ -4,7 +4,7 @@
|
||||||
<component name="FrameworkDetectionExcludesConfiguration">
|
<component name="FrameworkDetectionExcludesConfiguration">
|
||||||
<file type="web" url="file://$PROJECT_DIR$" />
|
<file type="web" url="file://$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" project-jdk-name="19" project-jdk-type="JavaSDK" />
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" project-jdk-name="temurin-17 (4)" project-jdk-type="JavaSDK" />
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
<option name="id" value="jpab" />
|
<option name="id" value="jpab" />
|
||||||
</component>
|
</component>
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ steps:
|
||||||
image: *java_image
|
image: *java_image
|
||||||
commands:
|
commands:
|
||||||
- gradle spotlessCheck --no-daemon
|
- gradle spotlessCheck --no-daemon
|
||||||
"lint:hadolint":
|
"lint:dockerfile":
|
||||||
group: lint
|
group: lint
|
||||||
image: ghcr.io/hadolint/hadolint:latest-debian
|
image: ghcr.io/hadolint/hadolint:latest-debian
|
||||||
commands:
|
commands:
|
||||||
|
|
@ -28,5 +28,16 @@ steps:
|
||||||
image: *java_image
|
image: *java_image
|
||||||
commands:
|
commands:
|
||||||
- ./gradlew cyclonedxBom
|
- ./gradlew cyclonedxBom
|
||||||
|
|
||||||
|
"deploy:backend":
|
||||||
|
image: alpine:latest
|
||||||
|
commands:
|
||||||
|
- echo "deploy frontend"
|
||||||
|
- env
|
||||||
|
directory: frontend
|
||||||
|
when:
|
||||||
|
- event: [deployment]
|
||||||
|
|
||||||
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- "lint_general"
|
- "lint_general"
|
||||||
|
|
|
||||||
|
|
@ -48,5 +48,14 @@ steps:
|
||||||
- npx @cyclonedx/cyclonedx-npm --output-file bom.json
|
- npx @cyclonedx/cyclonedx-npm --output-file bom.json
|
||||||
directory: frontend
|
directory: frontend
|
||||||
|
|
||||||
|
"deploy:frontend":
|
||||||
|
image: alpine:latest
|
||||||
|
commands:
|
||||||
|
- echo "deploy frontend"
|
||||||
|
- env
|
||||||
|
directory: frontend
|
||||||
|
when:
|
||||||
|
- event: [manual]
|
||||||
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- "lint_general"
|
- "lint_general"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
---
|
||||||
|
when:
|
||||||
|
branch: dev
|
||||||
|
clone:
|
||||||
|
git:
|
||||||
|
image: woodpeckerci/plugin-git
|
||||||
|
settings:
|
||||||
|
skip_verify: true
|
||||||
|
partial: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
"version:update":
|
||||||
|
image: bitnami/git:2.42.1
|
||||||
|
commands:
|
||||||
|
- echo "$CI_COMMIT_MESSAGE" | ./version-auto-update.sh
|
||||||
|
- git config --global http.sslVerify false
|
||||||
|
- git remote set-url origin "https://$CI_COMMIT_AUTHOR:$GIT_PAT@$(echo $CI_REPO_CLONE_URL | cut -b9-)"
|
||||||
|
- "git config --global user.name $CI_COMMIT_AUTHOR"
|
||||||
|
- "git config --global user.email $CI_COMMIT_AUTHOR_EMAIL"
|
||||||
|
- "git commit -am \"chore: auto update version [skip ci]\""
|
||||||
|
- "git push origin HEAD:dev"
|
||||||
|
secrets: [git_pat]
|
||||||
|
depends_on:
|
||||||
|
- "lint_general"
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
read -r msg
|
||||||
|
|
||||||
|
if [[ $msg = *"BREAKING CHANGE:"* ]]; then
|
||||||
|
./update-version.sh MAJOR
|
||||||
|
fi
|
||||||
|
|
||||||
|
summary=$(echo "$msg" | head -1)
|
||||||
|
type=$(cut -d':' -f1 <<< "$summary")
|
||||||
|
|
||||||
|
if [[ $type = *"!"* ]]; then
|
||||||
|
./version-update.sh MAJOR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $type = "feat" ]]; then
|
||||||
|
./version-update.sh MINOR
|
||||||
|
else
|
||||||
|
echo "last commit message does not indicate a base version update, skipping"
|
||||||
|
fi
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
source version.sh
|
||||||
|
|
||||||
|
if [ "MINOR" == "$1" ] ; then
|
||||||
|
NEW_VERSION=$(awk -F. '{printf("%s.%s", $1, int($2+1))}' version.txt)
|
||||||
|
elif [ "MAJOR" == "$1" ] ; then
|
||||||
|
NEW_VERSION=$(awk -F. '{printf("%s.0", int($1+1))}' version.txt)
|
||||||
|
fi
|
||||||
|
echo "${NEW_VERSION}"
|
||||||
|
|
||||||
|
echo "${NEW_VERSION}" > version.txt
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# We only want to tag in git when the version changes
|
||||||
|
# Next version is based on versioned version.txt
|
||||||
|
# using git describe requires a tag at the begging of development, not at the end
|
||||||
|
TRUNK_BRANCH="dev"
|
||||||
|
CD_BASE_VERSION=$(cat version.txt)
|
||||||
|
CD_PATCH=$(git rev-list --count HEAD ^"${TRUNK_BRANCH}")
|
||||||
|
CD_QUALIFIER=$(git rev-parse --short HEAD)
|
||||||
|
CD_CURRENT_RELEASE_TAG=$(git tag -l --contains HEAD)
|
||||||
|
CD_NEXT_VERSION="${CD_BASE_VERSION}.${CD_PATCH}"
|
||||||
|
CD_NEXT_QUALIFIED_VERSION="${CD_BASE_VERSION}.${CD_PATCH}-${CD_QUALIFIER}"
|
||||||
|
CD_NEXT_MAJOR_TAG=$(cut -d'.' -f1 <<< "${CD_BASE_VERSION}")
|
||||||
|
|
||||||
|
export CD_BASE_VERSION
|
||||||
|
export CD_PATCH
|
||||||
|
export CD_QUALIFIER
|
||||||
|
export CD_RELEASE_TAG
|
||||||
|
export CD_NEXT_QUALIFIED_VERSION
|
||||||
|
export CD_NEXT_MAJOR_TAG
|
||||||
|
|
||||||
|
echo "Example versioning"
|
||||||
|
echo "Trunk Branch: ${TRUNK_BRANCH}"
|
||||||
|
echo "Java Development Version: ${CD_BASE_VERSION}.0-SNAPSHOT"
|
||||||
|
echo "NPM Development Version: ${CD_BASE_VERSION}.alpha.0"
|
||||||
|
echo "Next Release Version: ${CD_NEXT_VERSION}"
|
||||||
|
echo "Next qualified Release Version: ${CD_NEXT_QUALIFIED_VERSION}"
|
||||||
|
echo "BASE TAG: ${CD_BASE_VERSION}"
|
||||||
|
echo "Next Major Release Tag: ${CD_NEXT_MAJOR_TAG}"
|
||||||
|
echo "Current Release Tag (normally get from pipeline CI_COMMIT_TAG): ${CD_RELEASE_TAG}"
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
0.6
|
||||||
Loading…
Reference in New Issue