From 698806da97ed8891916d6e46154875da7dd75558 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 7 May 2023 23:29:23 +0100 Subject: [PATCH] Add publishing to maven repo, adjust workflows --- .github/workflows/ci.yml | 41 +++++++++++++++++++++++++++ .github/workflows/gradle-ci.yml | 37 ------------------------ .github/workflows/release.yml | 38 +++++++++++++++++++++++++ README.md | 1 + build.gradle | 50 ++++++++++++++++++++++++++------- 5 files changed, 120 insertions(+), 47 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/gradle-ci.yml create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f27fed9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,41 @@ +# Builds, tests the project with Gradle +name: CI Tests + +on: + push: + branches: [ 'master' ] + paths-ignore: + - 'workflows/**' + - 'README.md' + +permissions: + contents: read + checks: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + - name: Build with Gradle + uses: gradle/gradle-build-action@v2 + with: + arguments: build test publish + env: + SNAPSHOTS_MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + SNAPSHOTS_MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + - name: Publish Test Report + uses: mikepenz/action-junit-report@v3 + if: success() || failure() # always run even if the previous step fails + with: + report_paths: '**/build/test-results/test/TEST-*.xml' + - name: Upload Artifact + uses: actions/upload-artifact@v2 + with: + name: artifact + path: target/*.jar \ No newline at end of file diff --git a/.github/workflows/gradle-ci.yml b/.github/workflows/gradle-ci.yml deleted file mode 100644 index ba2f0c5..0000000 --- a/.github/workflows/gradle-ci.yml +++ /dev/null @@ -1,37 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. -# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle - -name: Gradle CI - -on: - push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] - -permissions: - contents: read - -jobs: - 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: 'temurin' - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: test - - name: Upload artifact - uses: actions/upload-artifact@v2 - with: - name: artifact - path: target/*.jar diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..55f5867 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,38 @@ +# Builds, tests and publishes to maven when a release is published +name: Release Tests + +on: + release: + types: [ published ] + +permissions: + contents: read + checks: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + - name: Build with Gradle + uses: gradle/gradle-build-action@v2 + with: + arguments: build test publish + env: + RELEASES_MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + RELEASES_MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + - name: Publish Test Report + uses: mikepenz/action-junit-report@v3 + if: success() || failure() # always run even if the previous step fails + with: + report_paths: '**/build/test-results/test/TEST-*.xml' + - name: Upload Artifact + uses: actions/upload-artifact@v2 + with: + name: artifact + path: target/*.jar \ No newline at end of file diff --git a/README.md b/README.md index e590979..4d9b207 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # DesertWell +![CI](https://img.shields.io/github/actions/workflow/status/WiIIiam278/DesertWell/ci.yml?branch=master&logo=github) [![Discord](https://img.shields.io/discord/818135932103557162?color=7289da&logo=discord)](https://discord.gg/tVYhJfyDWG) [![JitPack](https://jitpack.io/v/net.william278/DesertWell.svg)](https://jitpack.io/#net.william278/DesertWell) diff --git a/build.gradle b/build.gradle index af9dce4..5ac6579 100644 --- a/build.gradle +++ b/build.gradle @@ -58,18 +58,48 @@ java { withJavadocJar() } +test { + useJUnitPlatform() +} + publishing { - publications { - shadow(MavenPublication) { publication -> - from components.java + repositories { + if (System.getenv("RELEASES_MAVEN_USERNAME") != null) { + maven { + name = "william278-releases" + url = "https://repo.william278.net/releases" + credentials { + username = System.getenv("RELEASES_MAVEN_USERNAME") + password = System.getenv("RELEASES_MAVEN_PASSWORD") + } + authentication { + basic(BasicAuthentication) + } + } + } + if (System.getenv("SNAPSHOTS_MAVEN_USERNAME") != null) { + maven { + name = "william278-snapshots" + url = "https://repo.william278.net/snapshots" + credentials { + username = System.getenv("SNAPSHOTS_MAVEN_USERNAME") + password = System.getenv("SNAPSHOTS_MAVEN_PASSWORD") + } + authentication { + basic(BasicAuthentication) + } + } } - } - repositories { - mavenLocal() + publications { + mavenJava(MavenPublication) { + groupId = 'net.william278' + artifactId = 'desertwell' + version = "$rootProject.version" + artifact shadowJar + artifact javadocJar + artifact sourcesJar + } + } } -} - -test { - useJUnitPlatform() } \ No newline at end of file