Merge pull request #7 from nebula-plugins/upgrade-kotlin #107
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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@v2 | |
- 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: [8, 17, 21] | |
name: Gradle Build without Publish | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Setup git user | |
run: | | |
git config --global user.name "Nebula Plugin Maintainers" | |
git config --global user.email "[email protected]" | |
- name: Set up JDKs | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: | | |
8 | |
${{ matrix.java }} | |
java-package: jdk | |
- uses: actions/cache@v1 | |
id: gradle-cache | |
with: | |
path: ~/.gradle/caches | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle/dependency-locks/*.lockfile') }} | |
restore-keys: | | |
- ${{ runner.os }}-gradle- | |
- uses: actions/cache@v1 | |
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@v1 | |
- name: Setup git user | |
run: | | |
git config --global user.name "Nebula Plugin Maintainers" | |
git config --global user.email "[email protected]" | |
- name: Set up JDKs | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: | | |
8 | |
21 | |
java-package: jdk | |
- uses: actions/cache@v1 | |
id: gradle-cache | |
with: | |
path: ~/.gradle/caches | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle/dependency-locks/*.lockfile') }} | |
restore-keys: | | |
- ${{ runner.os }}-gradle- | |
- uses: actions/cache@v1 | |
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@v1 | |
- name: Setup git user | |
run: | | |
git config --global user.name "Nebula Plugin Maintainers" | |
git config --global user.email "[email protected]" | |
- name: Set up JDKs | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: | | |
8 | |
21 | |
java-package: jdk | |
- uses: actions/cache@v1 | |
id: gradle-cache | |
with: | |
path: ~/.gradle/caches | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle/dependency-locks/*.lockfile') }} | |
restore-keys: | | |
- ${{ runner.os }}-gradle- | |
- uses: actions/cache@v1 | |
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 |