aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/jvm.yml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/workflows/jvm.yml100
1 files changed, 100 insertions, 0 deletions
diff --git a/.github/workflows/jvm.yml b/.github/workflows/jvm.yml
new file mode 100644
index 0000000..2ea4fbc
--- /dev/null
+++ b/.github/workflows/jvm.yml
@@ -0,0 +1,100 @@
+name: JVM
+
+on:
+ push:
+ paths:
+ - "**.java"
+ - "**.kt"
+ - "**.kts"
+ - "**.gradle"
+ - ".github/workflows/jvm.yml"
+ pull_request:
+ paths:
+ - "**.java"
+ - "**.kt"
+ - "**.kts"
+ - "**.gradle"
+ - ".github/workflows/jvm.yml"
+
+jobs:
+ lint-build-and-test:
+ name: Lint, Build and Test
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, macos-latest, windows-latest]
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ lfs: true
+ - name: Setup Java
+ uses: actions/setup-java@v4
+ with:
+ cache: 'gradle'
+ distribution: 'adopt'
+ java-version: '11'
+ - name: Build with Gradle
+ run: ./gradlew build
+
+ publish-snapshot:
+ name: Publish Snapshot to GitHub Packages
+ needs: lint-build-and-test
+ if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+ runs-on: ubuntu-latest
+ permissions:
+ packages: write
+ contents: read
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ lfs: true
+ - name: Setup Java
+ uses: actions/setup-java@v4
+ with:
+ cache: 'gradle'
+ distribution: 'adopt'
+ java-version: '11'
+ - name: Snapshot version
+ run: sed '/^version/ s/$/-SNAPSHOT/' gradle.properties -i
+ - name: Build with Gradle
+ run: ./gradlew build
+ - name: Publish the preview package
+ run: ./gradlew publishAllPublicationsToGitHubPackagesRepository
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+
+ publish-release:
+ name: Publish Packages to Maven Central and GitHub Packages
+ needs: lint-build-and-test
+ # Only run on this on proper semver (vX.Y.Z) tags
+ if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }}
+ runs-on: ubuntu-latest
+ permissions:
+ packages: write
+ contents: write
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ lfs: true
+ - name: Setup Java
+ uses: actions/setup-java@v4
+ with:
+ cache: 'gradle'
+ distribution: 'adopt'
+ java-version: '11'
+ - name: Build with Gradle
+ run: ./gradlew build
+ - name: Publish the package
+ run: ./gradlew publish
+ env:
+ MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
+ MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file