diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fbc726e..530fff4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,11 +10,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Set up JDK 8 - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - name: Set up JDK 21 + uses: actions/setup-java@v4 with: - java-version: '8' + java-version: '21' distribution: 'temurin' cache: 'gradle' diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..b8ca6dd --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,33 @@ +name: Publish Release + +on: + push: + branches: [ master ] + tags: [ 'v*' ] + +jobs: + publish-release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Run tests + run: ./gradlew test + + - name: Publish release + run: ./gradlew publishAggregationToCentralPortal + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + signingInMemoryKey: ${{ secrets.SIGNING_KEY }} + signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }} \ No newline at end of file diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml new file mode 100644 index 0000000..eecd0b8 --- /dev/null +++ b/.github/workflows/publish-snapshot.yml @@ -0,0 +1,39 @@ +name: Publish Snapshot + +on: + push: + branches: [ develop ] + +jobs: + publish-snapshot: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Set snapshot version + run: | + VERSION=$(grep "version = " build.gradle | sed 's/version = "\(.*\)"/\1/') + if [[ ! $VERSION == *"-SNAPSHOT" ]]; then + sed -i "s/version = \"$VERSION\"/version = \"$VERSION-SNAPSHOT\"/" build.gradle + fi + + - name: Run tests + run: ./gradlew test + + - name: Publish snapshot + run: ./gradlew publishAggregationToCentralPortalSnapshots + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + signingInMemoryKey: ${{ secrets.SIGNING_KEY }} + signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 6477234..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Snapshot Release - -on: - push: - branches: ['master'] - -jobs: - build: - name: Compile and Test code - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'temurin' - cache: 'gradle' - - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b - - name: Build with Gradle - run: ./gradlew build --no-daemon - - publish: - name: Publish Artifacts - needs: [build] - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'temurin' - cache: 'gradle' - - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b - - - name: Publish with Gradle - env: - ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} - ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} - ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET }} - ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }} - run: ./gradlew -Psnapshot=false publishToSonatype --no-daemon - - increment: - name: Increment Version - needs: [publish] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Increment Version - run: | - git config --global user.email "sidhant92@hotmail.com" - git config --global user.name "Sidhant Aggarwal" - ./gradlew incrementVersion --versionIncrementType=PATCH --versionIncrementBranch=master diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml deleted file mode 100644 index 8799480..0000000 --- a/.github/workflows/snapshot.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Java CI - -on: - push: - branches: ['develop'] - -jobs: - build: - name: Compile and Test code - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'temurin' - cache: 'gradle' - - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b - - name: Build with Gradle - run: ./gradlew build --no-daemon - - publish: - name: Publish Artifacts - needs: [build] - if: github.event_name != 'pull_request' - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'temurin' - cache: 'gradle' - - - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b - - - name: Publish with Gradle - env: - ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} - ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} - ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET }} - ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }} - run: ./gradlew publishToSonatype --no-daemon diff --git a/build.gradle b/build.gradle index 25b9b99..ee365c8 100644 --- a/build.gradle +++ b/build.gradle @@ -104,7 +104,8 @@ signing { // Configure New Maven Central Portal publishing nmcp { - publishAllPublications { + publishAggregation { + project(":") username = System.getenv("MAVEN_USERNAME") ?: findProperty("mavenCentralUsername") password = System.getenv("MAVEN_PASSWORD") ?: findProperty("mavenCentralPassword") publicationType = "AUTOMATIC"