.github/workflows/ci.yml
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