diff options
Diffstat (limited to '')
-rw-r--r-- | .github/workflows/jvm.yml | 100 |
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 |