From 56cfe957dc0fb00e1b26189cf45bd4279c7a3f10 Mon Sep 17 00:00:00 2001 From: Roberto Perez Alcolea Date: Wed, 17 Dec 2025 11:27:12 -0800 Subject: [PATCH] Update github actions --- .github/workflows/build.yml | 41 ++++++++++ .github/workflows/nebula.yml | 149 ---------------------------------- .github/workflows/release.yml | 50 ++++++++++++ 3 files changed, 91 insertions(+), 149 deletions(-) create mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/nebula.yml create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..b65b5f2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,41 @@ +name: Nebula Build +permissions: + contents: read + actions: write +on: + push: + branches: + - 'main' + pull_request: + +jobs: + buildmultijdk: + runs-on: ubuntu-latest + strategy: + matrix: + # test against latest update of some major Java version(s), as well as specific LTS version(s) + java: [17, 21, 25] + name: Gradle Build without Publish + steps: + - uses: actions/checkout@v4 + - name: Setup git user + run: | + git config --global user.name "Nebula Plugin Maintainers" + git config --global user.email "nebula-plugins-oss@netflix.com" + - name: Set up JDKs + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: | + 17 + 21 + ${{ matrix.java }} + java-package: jdk +# - name: Setup Gradle +# uses: gradle/actions/setup-gradle@v5 +# with: +# cache-overwrite-existing: true + - name: Gradle build + run: ./gradlew --stacktrace build + env: + JDK_VERSION_FOR_TESTS: ${{ matrix.java }} \ No newline at end of file diff --git a/.github/workflows/nebula.yml b/.github/workflows/nebula.yml deleted file mode 100644 index 889d210..0000000 --- a/.github/workflows/nebula.yml +++ /dev/null @@ -1,149 +0,0 @@ -name: Nebula Build -on: - push: - branches: - - '*' - tags: - - v*.*.* - - v*.*.*-rc.* - pull_request: - -jobs: - validation: - name: "Gradle Wrapper Validation" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: gradle/wrapper-validation-action@v1 - buildmultijdk: - if: (!startsWith(github.ref, 'refs/tags/v')) - needs: validation - runs-on: ubuntu-latest - strategy: - matrix: - # test against latest update of some major Java version(s), as well as specific LTS version(s) - java: [17, 21] - name: Gradle Build without Publish - steps: - - uses: actions/checkout@v4 - - name: Setup git user - run: | - git config --global user.name "Nebula Plugin Maintainers" - git config --global user.email "nebula-plugins-oss@netflix.com" - - name: Set up JDKs - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: | - 17 - ${{ matrix.java }} - java-package: jdk - - uses: actions/cache@v4 - id: gradle-cache - with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle/dependency-locks/*.lockfile') }} - restore-keys: | - - ${{ runner.os }}-gradle- - - uses: actions/cache@v4 - id: gradle-wrapper-cache - with: - path: ~/.gradle/wrapper - key: ${{ runner.os }}-gradlewrapper-${{ hashFiles('gradle/wrapper/*') }} - restore-keys: | - - ${{ runner.os }}-gradlewrapper- - - name: Gradle build - run: ./gradlew --info --stacktrace build - env: - JDK_VERSION_FOR_TESTS: ${{ matrix.java }} - validatepluginpublication: - if: startsWith(github.ref, 'refs/tags/v') - needs: validation - runs-on: ubuntu-latest - name: Gradle Plugin Publication Validation - env: - NETFLIX_OSS_SONATYPE_USERNAME: ${{ secrets.ORG_SONATYPE_USERNAME }} - NETFLIX_OSS_SONATYPE_PASSWORD: ${{ secrets.ORG_SONATYPE_PASSWORD }} - steps: - - uses: actions/checkout@v4 - - name: Setup git user - run: | - git config --global user.name "Nebula Plugin Maintainers" - git config --global user.email "nebula-plugins-oss@netflix.com" - - name: Set up JDKs - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: | - 17 - 21 - java-package: jdk - - uses: actions/cache@v4 - id: gradle-cache - with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle/dependency-locks/*.lockfile') }} - restore-keys: | - - ${{ runner.os }}-gradle- - - uses: actions/cache@v4 - id: gradle-wrapper-cache - with: - path: ~/.gradle/wrapper - key: ${{ runner.os }}-gradlewrapper-${{ hashFiles('gradle/wrapper/*') }} - restore-keys: | - - ${{ runner.os }}-gradlewrapper- - - name: Verify plugin publication - if: | - startsWith(github.ref, 'refs/tags/v') && - (!contains(github.ref, '-rc.')) - run: ./gradlew --stacktrace -Dgradle.publish.key=${{ secrets.gradlePublishKey }} -Dgradle.publish.secret=${{ secrets.gradlePublishSecret }} -Prelease.useLastTag=true final publishPlugin --validate-only -x check -x signPluginMavenPublication - publish: - if: startsWith(github.ref, 'refs/tags/v') - needs: validatepluginpublication - runs-on: ubuntu-latest - name: Gradle Build and Publish - env: - NETFLIX_OSS_SONATYPE_USERNAME: ${{ secrets.ORG_SONATYPE_USERNAME }} - NETFLIX_OSS_SONATYPE_PASSWORD: ${{ secrets.ORG_SONATYPE_PASSWORD }} - NETFLIX_OSS_SIGNING_KEY: ${{ secrets.ORG_SIGNING_KEY }} - NETFLIX_OSS_SIGNING_PASSWORD: ${{ secrets.ORG_SIGNING_PASSWORD }} - NETFLIX_OSS_REPO_USERNAME: ${{ secrets.ORG_NETFLIXOSS_USERNAME }} - NETFLIX_OSS_REPO_PASSWORD: ${{ secrets.ORG_NETFLIXOSS_PASSWORD }} - steps: - - uses: actions/checkout@v4 - - name: Setup git user - run: | - git config --global user.name "Nebula Plugin Maintainers" - git config --global user.email "nebula-plugins-oss@netflix.com" - - name: Set up JDKs - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: | - 17 - 21 - java-package: jdk - - uses: actions/cache@v4 - id: gradle-cache - with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle/dependency-locks/*.lockfile') }} - restore-keys: | - - ${{ runner.os }}-gradle- - - uses: actions/cache@v4 - id: gradle-wrapper-cache - with: - path: ~/.gradle/wrapper - key: ${{ runner.os }}-gradlewrapper-${{ hashFiles('gradle/wrapper/*') }} - restore-keys: | - - ${{ runner.os }}-gradlewrapper- - - name: Publish candidate - if: | - startsWith(github.ref, 'refs/tags/v') && - contains(github.ref, '-rc.') - run: ./gradlew --info --stacktrace -Prelease.useLastTag=true candidate - - name: Publish release - if: | - startsWith(github.ref, 'refs/tags/v') && - (!contains(github.ref, '-rc.')) - run: ./gradlew --info --stacktrace -Dgradle.publish.key=${{ secrets.gradlePublishKey }} -Dgradle.publish.secret=${{ secrets.gradlePublishSecret }} -Prelease.useLastTag=true final diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..6913fce --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,50 @@ +name: Release +on: + push: + tags: + - v*.*.* + - v*.*.*-rc.* + +jobs: + publish: + runs-on: ubuntu-latest + name: Gradle Build and Publish + environment: + name: Publish + url: "https://repo1.maven.org/maven2/com/netflix/nebula/gradle-resolution-rules/" + env: + NETFLIX_OSS_SONATYPE_USERNAME: ${{ secrets.ORG_SONATYPE_USERNAME }} + NETFLIX_OSS_SONATYPE_PASSWORD: ${{ secrets.ORG_SONATYPE_PASSWORD }} + NETFLIX_OSS_SIGNING_KEY: ${{ secrets.ORG_SIGNING_KEY }} + NETFLIX_OSS_SIGNING_PASSWORD: ${{ secrets.ORG_SIGNING_PASSWORD }} + NETFLIX_OSS_REPO_USERNAME: ${{ secrets.ORG_NETFLIXOSS_USERNAME }} + NETFLIX_OSS_REPO_PASSWORD: ${{ secrets.ORG_NETFLIXOSS_PASSWORD }} + GRADLE_PUBLISH_KEY: ${{ secrets.ORG_GRADLE_PUBLISH_KEY }} + GRADLE_PUBLISH_SECRET: ${{ secrets.ORG_GRADLE_PUBLISH_SECRET }} + steps: + - uses: actions/checkout@v4 + - name: Setup git user + run: | + git config --global user.name "Nebula Plugin Maintainers" + git config --global user.email "nebula-plugins-oss@netflix.com" + - name: Set up JDKs + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: | + 17 + 21 + java-package: jdk +# - name: Setup Gradle +# uses: gradle/actions/setup-gradle@v5 +# with: +# cache-overwrite-existing: true + - name: Verify plugin publication + if: (!contains(github.ref, '-rc.')) + run: ./gradlew --stacktrace -Prelease.useLastTag=true final publishPlugin --validate-only -x check + - name: Publish candidate + if: contains(github.ref, '-rc.') + run: ./gradlew --info --stacktrace -Prelease.useLastTag=true candidate + - name: Publish release + if: (!contains(github.ref, '-rc.')) + run: ./gradlew --stacktrace -Prelease.useLastTag=true final \ No newline at end of file