Merge remote-tracking branch 'origin/main' into renovate/python-3.x
ci/woodpecker/push/lint_general Pipeline was successful Details
ci/woodpecker/push/documentation Pipeline was successful Details
ci/woodpecker/push/frontend Pipeline failed Details

pull/23/head
Richard Attermeyer 2024-01-28 20:45:56 +00:00
commit 4f6db55742
16 changed files with 41 additions and 98 deletions

View File

@ -1,3 +1,4 @@
# Enable auto-env through the sdkman_auto_env config # Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below # Add key=value pairs of SDKs to use below
java=17.0.8-tem java=21.0.2-tem
gradle=8.5

View File

@ -3,6 +3,7 @@ variables:
- &java_image "gradle:8.5.0-jdk17" - &java_image "gradle:8.5.0-jdk17"
when: when:
path: "app/**" path: "app/**"
event: [push, tag]
clone: clone:
git: git:
image: woodpeckerci/plugin-git image: woodpeckerci/plugin-git
@ -16,27 +17,31 @@ steps:
commands: commands:
- . ./version.sh - . ./version.sh
"lint:style": "lint:style":
group: lint
image: *java_image image: *java_image
commands: commands:
- gradle --no-daemon spotlessCheck - gradle --no-daemon spotlessCheck
depends_on: ["prepare:version"]
"lint:dockerfile": "lint:dockerfile":
group: lint
image: ghcr.io/hadolint/hadolint:latest-debian image: ghcr.io/hadolint/hadolint:latest-debian
commands: commands:
- hadolint --version - hadolint --version
depends_on: ["prepare:version"]
"build:java": "build:java":
group: build depends_on:
- lint:style
- lint:dockerfile
image: *java_image image: *java_image
commands: commands:
- . ./version-lock.sh - . ./version-lock.sh
- ./gradlew -Pversion=$CD_CURRENT_VERSION build - ./gradlew -Pversion=$CD_CURRENT_VERSION build
"analyze:sbom": "analyze:sbom":
depends_on: ["build:java"]
image: *java_image image: *java_image
commands: commands:
- ./gradlew cyclonedxBom - ./gradlew cyclonedxBom
"deploy:backend": "deploy:backend":
depends_on: ["analyze:sbom"]
image: alpine:latest image: alpine:latest
commands: commands:
- echo "deploy backend" - echo "deploy backend"

View File

@ -1,6 +1,7 @@
--- ---
when: when:
path: "documentation/**" path: "documentation/**"
event: [push, tag]
variables: variables:
- &frontend_image "cl00e9ment/node.js-builder:git" - &frontend_image "cl00e9ment/node.js-builder:git"
clone: clone:

View File

@ -1,6 +1,7 @@
--- ---
when: when:
path: "frontend/**" path: "frontend/**"
event: [push, tag]
variables: variables:
- &frontend_image "cl00e9ment/node.js-builder:git" - &frontend_image "cl00e9ment/node.js-builder:git"
clone: clone:
@ -13,12 +14,11 @@ clone:
steps: steps:
"prepare:version": "prepare:version":
image: bitnami/git:2.43.0 image: bitnami/git:2.43.0
group: prepare
commands: commands:
- . ./version.sh - . ./version.sh
"prepare:frontend": "prepare:frontend":
image: *frontend_image image: *frontend_image
group: prepare depends_on: ["prepare:version"]
commands: commands:
- pnpm install - pnpm install
directory: frontend directory: frontend

View File

@ -1,4 +1,6 @@
--- ---
when:
event: [push, tag]
clone: clone:
git: git:
image: woodpeckerci/plugin-git image: woodpeckerci/plugin-git
@ -11,7 +13,6 @@ steps:
- git log -1 --pretty=%B >> commitlint.txt - git log -1 --pretty=%B >> commitlint.txt
"lint:commitlint": "lint:commitlint":
group: lint
image: node:lts-slim image: node:lts-slim
commands: commands:
- npm install --save-dev conventional-changelog-conventionalcommits @commitlint/config-conventional commitlint@latest - npm install --save-dev conventional-changelog-conventionalcommits @commitlint/config-conventional commitlint@latest
@ -28,7 +29,6 @@ steps:
- pre-commit install - pre-commit install
- pre-commit run --all-files - pre-commit run --all-files
"lint:credentials": "lint:credentials":
group: lint
image: ghcr.io/gitleaks/gitleaks:latest image: ghcr.io/gitleaks/gitleaks:latest
commands: commands:
- export HOME=/home/gitleaks - export HOME=/home/gitleaks

View File

@ -0,0 +1 @@
trigger

View File

@ -4,7 +4,7 @@
plugins { plugins {
id("com.opitzconsulting.demo.ci.java-application-conventions") id("com.opitzconsulting.demo.ci.java-application-conventions")
id("org.springframework.boot") version "3.1.5" id("org.springframework.boot") version "3.2.2"
id("io.spring.dependency-management") version "1.1.4" id("io.spring.dependency-management") version "1.1.4"
} }

View File

@ -1 +1,5 @@
module.exports = { extends: ['@commitlint/config-conventional'] } module.exports = { extends: ['@commitlint/config-conventional'],
"rules": {
"body-max-line-length": () => [0, "always", 200]
}
}

View File

@ -8,7 +8,7 @@
"@antora/cli": "3.1.7", "@antora/cli": "3.1.7",
"@antora/lunr-extension": "^1.0.0-alpha.8", "@antora/lunr-extension": "^1.0.0-alpha.8",
"@antora/site-generator": "3.1.7", "@antora/site-generator": "3.1.7",
"asciidoctor-kroki": "^0.17.0", "asciidoctor-kroki": "^0.18.0",
"http-server": "^14.1.1", "http-server": "^14.1.1",
"linkinator": "^5.0.1" "linkinator": "^5.0.1"
} }
@ -387,9 +387,9 @@
"dev": true "dev": true
}, },
"node_modules/asciidoctor-kroki": { "node_modules/asciidoctor-kroki": {
"version": "0.17.0", "version": "0.18.1",
"resolved": "https://registry.npmjs.org/asciidoctor-kroki/-/asciidoctor-kroki-0.17.0.tgz", "resolved": "http://npm.demo.rattermeyer.de/asciidoctor-kroki/-/asciidoctor-kroki-0.18.1.tgz",
"integrity": "sha512-aObUUfAtcfUTjhAP32bgrcoKXLRta57o3V5k+t73FXDKiLi+QfkHE+9+H4mGPTnghXBtiRYzsu7BbVGfTHoQzQ==", "integrity": "sha512-eQxbBCaPTbyNoJtk62Gp+6h4LlJp2147g7eS0QIVjqaLpFa8sseH0BlMiBoATrJUYv1w3nR+FTzvloBJ/MioYg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"json5": "2.2.3", "json5": "2.2.3",
@ -402,12 +402,12 @@
"node": ">=10" "node": ">=10"
}, },
"peerDependencies": { "peerDependencies": {
"@asciidoctor/core": "~2.2" "@asciidoctor/core": ">=2.2 <4.0"
} }
}, },
"node_modules/asciidoctor-kroki/node_modules/unxhr": { "node_modules/asciidoctor-kroki/node_modules/unxhr": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.2.0.tgz", "resolved": "http://npm.demo.rattermeyer.de/unxhr/-/unxhr-1.2.0.tgz",
"integrity": "sha512-6cGpm8NFXPD9QbSNx0cD2giy7teZ6xOkCUH3U89WKVkL9N9rBrWjlCwhR94Re18ZlAop4MOc3WU1M3Hv/bgpIw==", "integrity": "sha512-6cGpm8NFXPD9QbSNx0cD2giy7teZ6xOkCUH3U89WKVkL9N9rBrWjlCwhR94Re18ZlAop4MOc3WU1M3Hv/bgpIw==",
"dev": true, "dev": true,
"engines": { "engines": {

View File

@ -8,7 +8,7 @@
"@antora/cli": "3.1.7", "@antora/cli": "3.1.7",
"@antora/lunr-extension": "^1.0.0-alpha.8", "@antora/lunr-extension": "^1.0.0-alpha.8",
"@antora/site-generator": "3.1.7", "@antora/site-generator": "3.1.7",
"asciidoctor-kroki": "^0.17.0", "asciidoctor-kroki": "^0.18.0",
"http-server": "^14.1.1", "http-server": "^14.1.1",
"linkinator": "^5.0.1" "linkinator": "^5.0.1"
} }

View File

@ -15,8 +15,8 @@ devDependencies:
specifier: 3.1.7 specifier: 3.1.7
version: 3.1.7 version: 3.1.7
asciidoctor-kroki: asciidoctor-kroki:
specifier: ^0.17.0 specifier: ^0.18.0
version: 0.17.0(@asciidoctor/core@2.2.6) version: 0.18.1(@asciidoctor/core@2.2.6)
http-server: http-server:
specifier: ^14.1.1 specifier: ^14.1.1
version: 14.1.1 version: 14.1.1
@ -100,16 +100,6 @@ packages:
vinyl-fs: 3.0.3 vinyl-fs: 3.0.3
dev: true dev: true
/@antora/logger@3.1.5:
resolution: {integrity: sha512-DGIxiv/rsWRWxFTRD4Hu2TXiFUHOqCpiu4Rf7LxOPdKkuF6i167fw8BuZeFfTzvOE2W2FhB4sopI0EiAZ1D/vQ==}
engines: {node: '>=16.0.0'}
dependencies:
'@antora/expand-path-helper': 2.0.0
pino: 8.14.2
pino-pretty: 10.0.1
sonic-boom: 3.3.0
dev: true
/@antora/logger@3.1.7: /@antora/logger@3.1.7:
resolution: {integrity: sha512-Z2tfNIi9G4BnAZq26Kp30974FxCVCtvH46FOi6ClnkJg6Uf2gTrVlJERmtsDTsHjWsf1qKbnj/4b99/AU31iQg==} resolution: {integrity: sha512-Z2tfNIi9G4BnAZq26Kp30974FxCVCtvH46FOi6ClnkJg6Uf2gTrVlJERmtsDTsHjWsf1qKbnj/4b99/AU31iQg==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
@ -146,16 +136,6 @@ packages:
require-from-string: 2.0.2 require-from-string: 2.0.2
dev: true dev: true
/@antora/playbook-builder@3.1.5:
resolution: {integrity: sha512-h3zD1FkN8BVnsmHSgB3CTatVu5Q8E8lqZs7Zfsh7uN5eQHhxsPjOvVByeM1RhCpQuY+o2hERY2XexoLb8V89TQ==}
engines: {node: '>=16.0.0'}
dependencies:
'@iarna/toml': 2.2.5
convict: 6.2.4
js-yaml: 4.1.0
json5: 2.2.3
dev: true
/@antora/playbook-builder@3.1.7: /@antora/playbook-builder@3.1.7:
resolution: {integrity: sha512-lU80S1BqUy9DvqziEzRwpYTaWhOshxgrGAjf/F5VjAIaHCGVx0rZgfoI2rgFFkbVaH94kauOngdtTXDPXC1fPQ==} resolution: {integrity: sha512-lU80S1BqUy9DvqziEzRwpYTaWhOshxgrGAjf/F5VjAIaHCGVx0rZgfoI2rgFFkbVaH94kauOngdtTXDPXC1fPQ==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
@ -291,11 +271,11 @@ packages:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: true dev: true
/asciidoctor-kroki@0.17.0(@asciidoctor/core@2.2.6): /asciidoctor-kroki@0.18.1(@asciidoctor/core@2.2.6):
resolution: {integrity: sha512-aObUUfAtcfUTjhAP32bgrcoKXLRta57o3V5k+t73FXDKiLi+QfkHE+9+H4mGPTnghXBtiRYzsu7BbVGfTHoQzQ==} resolution: {integrity: sha512-eQxbBCaPTbyNoJtk62Gp+6h4LlJp2147g7eS0QIVjqaLpFa8sseH0BlMiBoATrJUYv1w3nR+FTzvloBJ/MioYg==}
engines: {node: '>=10'} engines: {node: '>=10'}
peerDependencies: peerDependencies:
'@asciidoctor/core': ~2.2 '@asciidoctor/core': '>=2.2 <4.0'
dependencies: dependencies:
'@asciidoctor/core': 2.2.6 '@asciidoctor/core': 2.2.6
json5: 2.2.3 json5: 2.2.3

View File

@ -29,7 +29,7 @@
"@types/react-dom": "^18.2.7", "@types/react-dom": "^18.2.7",
"eslint": "^8.38.0", "eslint": "^8.38.0",
"eslint-config-prettier": "9.0.0", "eslint-config-prettier": "9.0.0",
"prettier": "3.0.3", "prettier": "3.2.4",
"typescript": "^5.1.6" "typescript": "^5.1.6"
}, },
"engines": { "engines": {

View File

@ -47,8 +47,8 @@ devDependencies:
specifier: 9.0.0 specifier: 9.0.0
version: 9.0.0(eslint@8.52.0) version: 9.0.0(eslint@8.52.0)
prettier: prettier:
specifier: 3.0.3 specifier: 3.2.4
version: 3.0.3 version: 3.2.4
typescript: typescript:
specifier: ^5.1.6 specifier: ^5.1.6
version: 5.2.2 version: 5.2.2
@ -5085,8 +5085,8 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/prettier@3.0.3: /prettier@3.2.4:
resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
engines: {node: '>=14'} engines: {node: '>=14'}
hasBin: true hasBin: true
dev: true dev: true

View File

@ -1,49 +0,0 @@
# base domain
BASE_DOMAIN=rattermeyer.de
# Traefik server host
TRAEFIK_HOST=traefik.demo.${BASE_DOMAIN}
TRAEFIK_LETSENCRYPT_CASERVER=https://acme-staging-v02.api.letsencrypt.org/directory
TRAEFIK_LETSENCRYPT_EMAIL=richard.attermeyer@gmail.com
TRAEIFK_LOCALIP_WHITELIST=127.0.0.1/32, 192.168.0.0/16, 172.16.0.0/12, ::1, 2a00:6020:b41a:b600::/56
MAIL_HOST=mail.demo.${BASE_DOMAIN}
# forgejo server address
FORGEJO_HOST=git.demo.${BASE_DOMAIN}
FORGEJO_URL=https://${FORGEJO_HOST}
# Woodpecker server host
WOODPECKER_HOST=ci.demo.${BASE_DOMAIN}
# Woodpecker server address
WOODPECKER_URL=https://${WOODPECKER_HOST}
# Shared secret used by server and agents to authenticate communication (can be generated by 'openssl rand -hex 32')
WOODPECKER_AGENT_SECRET=c45adc154097b7a13a446da394570b888ea2e7da3aa462a318150266c9355f5d
# Comma-separated list of admin accounts
#WOODPECKER_ADMIN=CHANGE_ME
WOODPECKER_ADMIN=fjadmin
WOODPECKER_FORGEJO_URL=${FORGEJO_URL}
# giteleaks:allow
WOODPECKER_FORGEJO_CLIENT=e0049f6b-dd9d-4854-8b48-10dc724f61c3
# giteleaks:allow
WOODPECKER_FORGEJO_SECRET=gto_7nu6b2cljkimzc5bhbj2u7t2d5hpmig6wqbgmscaoq23x3uvgoda
# Renovate
RENOVATE_TOKEN=CHANGE_ME
# Registry
REGISTRY_HOST=container.demo.${BASE_DOMAIN}
REGISTRY_UI_HOST=container-ui.demo.${BASE_DOMAIN}
REPOSILITE_HOST=mvn.demo.${BASE_DOMAIN}
REPOSILITE_UI_HOST=mvn-ui.demo.${BASE_DOMAIN}
REPOSILITE_JAVA_COMPOSE_OPTS=
REPOSILITE_MEMORY=256M
REPOSILITE_COMPOSE_OPTS="--token admin:changeme"
REPOSILITE_PORT=8080
VERDACCIO_HOST=npm.demo.${BASE_DOMAIN}
SONARQUBE_HOST=sonarqube.demo.${BASE_DOMAIN}

View File

@ -162,7 +162,7 @@ services:
container_name: woodpecker-agent container_name: woodpecker-agent
image: woodpeckerci/woodpecker-agent:v2.2.2 image: woodpeckerci/woodpecker-agent:v2.2.2
restart: unless-stopped restart: unless-stopped
cpus: 0.5 cpus: 2
mem_limit: 512m mem_limit: 512m
depends_on: depends_on:
- woodpecker-server - woodpecker-server

View File

@ -1,4 +1,4 @@
FROM sonarqube:9.9-community FROM sonarqube:10.3-community
ARG COMMUNITY_BRANCH_VERSION=1.14.0 ARG COMMUNITY_BRANCH_VERSION=1.14.0
ENV COMMUNITY_BRANCH_URL=https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/${COMMUNITY_BRANCH_VERSION}/sonarqube-community-branch-plugin-${COMMUNITY_BRANCH_VERSION}.jar ENV COMMUNITY_BRANCH_URL=https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/${COMMUNITY_BRANCH_VERSION}/sonarqube-community-branch-plugin-${COMMUNITY_BRANCH_VERSION}.jar
WORKDIR ${SONARQUBE_HOME}/extensions WORKDIR ${SONARQUBE_HOME}/extensions