This commit is contained in:
88
.pipelines/java-build-deploy.yaml
Normal file
88
.pipelines/java-build-deploy.yaml
Normal file
@@ -0,0 +1,88 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build
|
||||
platform:
|
||||
os: {{ .input.os }}
|
||||
arch: {{ .input.arch }}
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
{{- range .input.build_branches }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
event:
|
||||
{{- range .input.build_events }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
|
||||
# Global project-specific environment variables
|
||||
environment:
|
||||
{{- range .input.envs }}
|
||||
{{ .name }}: {{ .value }}
|
||||
{{- end }}
|
||||
|
||||
steps:
|
||||
# Test if it compiles correctly
|
||||
- name: build
|
||||
image: maven:3-eclipse-temurin-21
|
||||
commands:
|
||||
- mvn verify --no-transfer-progress -DskipTests=true -Dmaven.javadoc.skip=true -B -V
|
||||
|
||||
# Run unit tests
|
||||
- name: test
|
||||
image: maven:3-eclipse-temurin-21
|
||||
commands:
|
||||
- mvn test --no-transfer-progress -B -V
|
||||
|
||||
# Check maven dependencies
|
||||
- name: dependency-check
|
||||
image: owasp/dependency-check:latest
|
||||
commands:
|
||||
- dependency-check --scan /src --format ALL --out /src/target --nvdApiKey $NVD_API_KEY
|
||||
environment:
|
||||
NVD_API_KEY:
|
||||
from_secret: nvd_api_key
|
||||
|
||||
# Run code analysis
|
||||
- name: code-analysis
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
image: maven:3-eclipse-temurin-21
|
||||
commands:
|
||||
- mvn sonar:sonar --no-transfer-progress -Dsonar.projectKey={{ .input.sonar_project_key }} -Dsonar.host.url=$SONAR_INSTANCE_URL -Dsonar.token=$SONAR_LOGIN_KEY -B -V
|
||||
environment:
|
||||
SONAR_INSTANCE_URL:
|
||||
from_secret: sonar_instance_url
|
||||
SONAR_LOGIN_KEY:
|
||||
from_secret: sonar_login_key
|
||||
---
|
||||
kind: pipeline
|
||||
type: kubernetes
|
||||
name: deploy
|
||||
trigger:
|
||||
event:
|
||||
- promote
|
||||
target:
|
||||
{{- range .input.deploy_targets }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
|
||||
# Global project-specific environment variables
|
||||
environment:
|
||||
{{- range .input.envs }}
|
||||
{{ .name }}: {{ .value }}
|
||||
{{- end }}
|
||||
|
||||
steps:
|
||||
# Upload to Maven repository
|
||||
- name: maven-deploy
|
||||
image: maven:3-eclipse-temurin-21
|
||||
commands:
|
||||
- mvn deploy --no-transfer-progress -DskipTests=true -Dmaven.javadoc.skip=true -B -V -gs settings.xml -Dmaven.repo.username=$MAVEN_REPO_USERNAME -Dmaven.repo.password=$MAVEN_REPO_PASSWORD
|
||||
environment:
|
||||
MAVEN_REPO_USERNAME:
|
||||
from_secret: maven_repo_username
|
||||
MAVEN_REPO_PASSWORD:
|
||||
from_secret: maven_repo_password
|
Reference in New Issue
Block a user