Skip to content

Merge pull request #7 from 398ja/develop #37

Merge pull request #7 from 398ja/develop

Merge pull request #7 from 398ja/develop #37

Workflow file for this run

name: CI
on:
push:
branches: [ main, master, develop ]
pull_request:
branches: [ main, master, develop ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build and Test
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [ '21' ]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: mvn -B compile -DskipTests
- name: Run unit tests
run: mvn -B test
- name: Run integration tests
run: mvn -B verify -DskipUnitTests
continue-on-error: true
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results-java-${{ matrix.java-version }}
path: |
**/target/surefire-reports/
**/target/failsafe-reports/
retention-days: 7
- name: Upload JaCoCo coverage reports
uses: actions/upload-artifact@v4
if: matrix.java-version == '21'
with:
name: coverage-reports
path: |
**/target/site/jacoco/
**/target/jacoco.exec
retention-days: 7
quality:
name: Code Quality
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Run Checkstyle
run: mvn -B checkstyle:check
continue-on-error: true
- name: Run SpotBugs
run: mvn -B spotbugs:check
continue-on-error: true
- name: Run PMD
run: mvn -B pmd:check pmd:cpd-check
continue-on-error: true
- name: Upload quality reports
uses: actions/upload-artifact@v4
if: always()
with:
name: quality-reports
path: |
**/target/checkstyle-result.xml
**/target/spotbugsXml.xml
**/target/pmd.xml
**/target/cpd.xml
retention-days: 7
package:
name: Package
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'push'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Package artifacts
run: mvn -B package -DskipTests
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: maven-artifacts
path: |
**/target/*.jar
!**/target/*-sources.jar
!**/target/*-javadoc.jar
retention-days: 30