Skip to content

Java CI

Java CI #9065

Workflow file for this run

name: Java CI
on:
push:
branches:
- main
pull_request:
branches:
- main
- promote/main
merge_group:
workflow_dispatch: {}
permissions:
contents: read
pull-requests: read
jobs:
java-check:
name: Java Code Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd
- name: Set up JDK
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165
with:
java-version: '21'
distribution: 'temurin'
- name: Cache Maven packages
uses: actions/cache@b7e8d49f17405cc70c1c120101943203c98d3a4b
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-m2-
- name: Check code style
run: mvn -B checkstyle:check --no-transfer-progress
- name: Check Java Formatting
run: mvn spotless:check --no-transfer-progress
- name: Check Dependencies
run: mvn dependency:analyze -DfailOnWarning=true --no-transfer-progress
java-test:
name: Build and Test
runs-on: ubuntu-latest
needs: java-check
strategy:
matrix:
java: [ '11', '17', '21', '25' ]
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
- name: Cache Maven packages
uses: actions/cache@b7e8d49f17405cc70c1c120101943203c98d3a4b
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-m2-
- name: Run tests with coverage
run: mvn -B clean test package --no-transfer-progress
sonar:
name: SonarCloud Analysis
runs-on: ubuntu-latest
needs: java-check
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165
with:
java-version: '21'
distribution: 'temurin'
- name: Cache SonarQube Cloud packages
uses: actions/cache@b7e8d49f17405cc70c1c120101943203c98d3a4b
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache Maven packages
uses: actions/cache@b7e8d49f17405cc70c1c120101943203c98d3a4b
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-m2-
- name: Build, coverage & SonarCloud analysis
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: >
mvn -B --no-transfer-progress clean test jacoco:report org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
-Dsonar.projectKey=Adyen_adyen-java-api-library