boolivar/jdoc-test

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: CI
on:
  push:
    branches-ignore:
    - gh-pages
permissions:
  contents: write
  pull-requests: write
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4.1.1
    - name: Set up JDK 17
      uses: actions/setup-java@v4.1.0
      with:
        java-version: '17'
        distribution: 'temurin'
    - name: Setup Gradle
      uses: gradle/gradle-build-action@v3.1.0
    - name: Cache SonarCloud packages
      uses: actions/cache@v3
      with:
        path: ~/.sonar/cache
        key: ${{ runner.os }}-sonar
        restore-keys: ${{ runner.os }}-sonar
    - name: Run Gradle checks
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
      run: ./gradlew check sonar
    - name: Upload test reports
      if: ${{ !cancelled() }}
      uses: actions/upload-artifact@v4.3.1
      with:
        name: reports
        path: '**/build/reports/**/*'
    - name: Upload coverage reports to Codecov
      uses: codecov/codecov-action@v4.0.1
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        slug: boolivar/jdoc-test
    - name: Release please
      id: release
      if: ${{ github.ref_name == 'master' || startsWith(github.ref_name, 'release/') }}
      uses: google-github-actions/release-please-action@v4.1.0
      with:
        token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
        target-branch: ${{ github.ref_name }}
    - name: Publish
      if: ${{ steps.release.outputs.release_created }}
      env:
        RELEASE_VERSION: ${{ steps.release.outputs.tag_name }}
        GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
        GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
        ORG_GRADLE_PROJECT_sonatypeSigningKey: ${{ secrets.GPG_KEY }}
        ORG_GRADLE_PROJECT_sonatypeSigningSecret: ${{ secrets.GPG_SECRET }}
        ORG_GRADLE_PROJECT_sonatypeMavenCentralUser: ${{ secrets.SONATYPE_USER }}
        ORG_GRADLE_PROJECT_sonatypeMavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }}
      run: ./gradlew -Prelease.forceVersion=$RELEASE_VERSION createRelease && ./gradlew -x check -PmavenCentralAutoPublish=true publishToSonatype publishPlugins