kind: pipeline type: docker name: build platform: os: linux arch: arm64 trigger: branch: - main event: - push - pull_request steps: # test if it compiles correctly - name: build image: maven:3-eclipse-temurin-16 commands: - mvn verify --no-transfer-progress -DskipTests=true -Dmaven.javadoc.skip=true -B -V # run unit tests - name: test image: maven:3-eclipse-temurin-16 commands: - mvn test --no-transfer-progress -B -V # run code analysis - name: code-analysis image: maven:3-eclipse-temurin-16 commands: - mvn sonar:sonar --no-transfer-progress -Dsonar.projectKey=$SONAR_PROJECT_KEY -Dsonar.host.url=$SONAR_INSTANCE_URL -Dsonar.login=$SONAR_LOGIN_KEY -B -V environment: SONAR_PROJECT_KEY: from_secret: sonar_project_key SONAR_INSTANCE_URL: from_secret: sonar_instance_url SONAR_LOGIN_KEY: from_secret: sonar_login_key --- kind: pipeline type: docker name: default platform: os: linux arch: arm64 trigger: event: - promote target: - production steps: # skip all previous steps because they were already ran in the "build" phase; we don't need to re-analyze the code. # upload to maven repository - name: maven-deploy image: maven:3-eclipse-temurin-16 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