Skip to content

Enable (more detailed) SonarQube analysis and JavaDoc build in CI #911

Enable (more detailed) SonarQube analysis and JavaDoc build in CI

Enable (more detailed) SonarQube analysis and JavaDoc build in CI #911

Workflow file for this run

name: CI
# workflow triggers
on:
# manually
workflow_dispatch:
# PRs on `main`
pull_request:
branches:
- main
# nightly
schedule:
- cron: "0 3 * * *"
jobs:
verify:
name: Verify build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Setup Java and Maven cache
uses: actions/[email protected]
with:
distribution: 'temurin'
java-version: '17'
check-latest: true
cache: 'maven'
- name: Verify build
if: matrix.os != 'ubuntu-latest'
run: >
./mvnw clean verify
--batch-mode
--update-snapshots
--no-transfer-progress
- name: Verify build with Sonar
if: matrix.os == 'ubuntu-latest'
run: >
./mvnw clean verify javadoc:javadoc-no-fork sonar:sonar -P coverage
--batch-mode
--update-snapshots
--no-transfer-progress
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- name: Stage build results
run: mkdir staging-${{ matrix.os }} && cp **/target/*.jar staging-${{ matrix.os }}/
- name: Upload build results
uses: actions/[email protected]
with:
name: Build Results
path: staging-*/
deploy-snapshot:
name: Deploy snapshot
runs-on: ubuntu-latest
needs: [verify]
if: github.ref == 'refs/heads/main' && github.repository_owner == 'vitruv-tools'
strategy:
fail-fast: true
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Setup Java and Maven cache
uses: actions/[email protected]
with:
distribution: 'temurin'
java-version: '17'
check-latest: true
cache: 'maven'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Deploy snapshot
run: >
./mvnw clean deploy -P snapshot
-DskipTests
--batch-mode
--update-snapshots
--no-transfer-progress
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}