Skip to content

CI Build

CI Build #1153

Workflow file for this run

name: CI Build
on:
push:
branches:
- main
pull_request:
branches:
- main
schedule:
- cron: '0 5 * * *'
release:
branches:
- main
types:
- published
jobs:
validation:
name: Validate Gradle Wrapper
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1
build:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
java: [ 11 ]
runs-on: ${{ matrix.os }}
name: Build with JDK ${{ matrix.java }} on ${{ matrix.os }}
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: adopt
- name: ./gradlew build
uses: eskatos/gradle-command-action@v2
with:
arguments: build
codecov:
name: Publish coverage to Codecov
needs: build
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: 11
distribution: adopt
- name: ./gradlew jacocoTestReport
uses: eskatos/gradle-command-action@v2
with:
arguments: jacocoTestReport
- name: Codecov
uses: codecov/codecov-action@v3
with:
file: build/reports/jacoco/test/jacocoTestReport.xml
artifacts:
name: Upload artifacts
needs: build
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: 11
distribution: adopt
- name: ./gradlew jar javadocJar sourcesJar
uses: eskatos/gradle-command-action@v2
with:
arguments: jar javadocJar sourcesJar
- name: Upload JAR, Javadoc, and source artifact
uses: actions/upload-artifact@v3
with:
name: artifacts-jar-javadoc-sources
path: build/libs/
if-no-files-found: error
publish:
name: Publish Maven package to Sonatype
if: ${{ github.ref == 'refs/heads/main' || github.event_name == 'release' }}
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: 11
distribution: adopt
- name: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
uses: eskatos/gradle-command-action@v2
with:
arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository
env:
# GPG signing <3
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEYID }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }}
# Sonatype / Maven Central
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEPASSWORD }}
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEUSERNAME }}