Skip to content

Commit

Permalink
Use new gha API for setting output, latest core actions (#3237)
Browse files Browse the repository at this point in the history
This commit changes the way job output is defined, using the new way of
a GITHUB_OUTPUT file environment variable.

The old way of echoing strings is deprecated for sensitive elements,
including action/job output.

It also reorders the output in order to:
 - ensure BAD version is detected before any output and fails the job
 - ensure only one version/versionType is outputted when there are
 multiple modules (here, the `reactor-core` one)

Finally it updates core and gradle actions to latest versions.
This fixes warnings about deprecated output style and deprecated Node
version being still in use by these actions.

See reactor/reactor#727.
  • Loading branch information
simonbasle authored and chemicL committed Mar 7, 2023
1 parent b28eca5 commit 445d2b2
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 32 deletions.
26 changes: 13 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ jobs:
name: preliminary sanity checks
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
with:
fetch-depth: 0 #needed by spotless
- uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf # renovate: tag=v2
- uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc # tag=v3
with:
distribution: 'temurin'
java-version: 8
- uses: gradle/gradle-build-action@cd579d970f8aec1cf0cae5f62a8e418768970015 # tag=v2
- uses: gradle/gradle-build-action@3fbe033aaae657f011f88f29be9e65ed26bd29ef # tag=v2
name: spotless (license header)
if: always()
with:
arguments: spotlessCheck -PspotlessFrom=origin/${{ github.base_ref }}
- uses: gradle/gradle-build-action@cd579d970f8aec1cf0cae5f62a8e418768970015 # tag=v2
- uses: gradle/gradle-build-action@3fbe033aaae657f011f88f29be9e65ed26bd29ef # tag=v2
name: api compatibility
if: always()
with:
Expand All @@ -44,12 +44,12 @@ jobs:
runs-on: ubuntu-latest
needs: preliminary
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf # renovate: tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc # tag=v3
with:
distribution: 'temurin'
java-version: 8
- uses: gradle/gradle-build-action@cd579d970f8aec1cf0cae5f62a8e418768970015 # tag=v2
- uses: gradle/gradle-build-action@3fbe033aaae657f011f88f29be9e65ed26bd29ef # tag=v2
name: gradle
with:
arguments: :reactor-core:test --no-daemon -Pjunit-tags=!slow
Expand All @@ -58,12 +58,12 @@ jobs:
runs-on: ubuntu-latest
needs: preliminary
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf # renovate: tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc # tag=v3
with:
distribution: 'temurin'
java-version: 8
- uses: gradle/gradle-build-action@cd579d970f8aec1cf0cae5f62a8e418768970015 # tag=v2
- uses: gradle/gradle-build-action@3fbe033aaae657f011f88f29be9e65ed26bd29ef # tag=v2
name: gradle
with:
arguments: :reactor-core:test --no-daemon -Pjunit-tags=slow
Expand All @@ -72,12 +72,12 @@ jobs:
runs-on: ubuntu-latest
needs: preliminary
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf # renovate: tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc # tag=v3
with:
distribution: 'temurin'
java-version: 8
- uses: gradle/gradle-build-action@cd579d970f8aec1cf0cae5f62a8e418768970015 # tag=v2
- uses: gradle/gradle-build-action@3fbe033aaae657f011f88f29be9e65ed26bd29ef # tag=v2
name: other tests
with:
arguments: check -x :reactor-core:test -x spotlessCheck --no-daemon
4 changes: 2 additions & 2 deletions .github/workflows/gradle-wrapper-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ jobs:
name: "validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b # renovate: tag=v1
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: gradle/wrapper-validation-action@55e685c48d84285a5b0418cd094606e199cca3b6 # tag=v1
28 changes: 14 additions & 14 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ jobs:
versionType: ${{ steps.version.outputs.versionType }}
fullVersion: ${{ steps.version.outputs.fullVersion }}
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- name: setup java
uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf # renovate: tag=v2
uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc # tag=v3
with:
distribution: 'temurin'
java-version: 8
Expand All @@ -32,7 +32,7 @@ jobs:
run: ./gradlew qualifyVersionGha
- name: run checks
id: checks
uses: gradle/gradle-build-action@cd579d970f8aec1cf0cae5f62a8e418768970015 # tag=v2
uses: gradle/gradle-build-action@3fbe033aaae657f011f88f29be9e65ed26bd29ef # tag=v2
with:
arguments: check -Pjunit-tags=!slow -x jcstress

Expand All @@ -41,15 +41,15 @@ jobs:
name: slowerChecks
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- name: setup java
uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf # renovate: tag=v2
uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc # tag=v3
with:
distribution: 'temurin'
java-version: 8
- name: run slower tests
id: slowerTests
uses: gradle/gradle-build-action@cd579d970f8aec1cf0cae5f62a8e418768970015 # tag=v2
uses: gradle/gradle-build-action@3fbe033aaae657f011f88f29be9e65ed26bd29ef # tag=v2
with:
arguments: reactor-core:test -Pjunit-tags=slow jcstress

Expand All @@ -61,8 +61,8 @@ jobs:
if: needs.prepare.outputs.versionType == 'SNAPSHOT'
environment: snapshots
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf # renovate: tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc # tag=v3
with:
distribution: 'temurin'
java-version: 8
Expand All @@ -81,8 +81,8 @@ jobs:
if: needs.prepare.outputs.versionType == 'MILESTONE'
environment: releases
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf # renovate: tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc # tag=v3
with:
distribution: 'temurin'
java-version: 8
Expand All @@ -103,8 +103,8 @@ jobs:
if: needs.prepare.outputs.versionType == 'RELEASE'
environment: releases
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/setup-java@f0bb91606209742fe3ea40199be2f3ef195ecabf # renovate: tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc # tag=v3
with:
distribution: 'temurin'
java-version: 8
Expand All @@ -126,7 +126,7 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- name: tag
run: |
git config --local user.name 'reactorbot'
Expand All @@ -141,7 +141,7 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e # tag=v2
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
- name: tag
run: |
git config --local user.name 'reactorbot'
Expand Down
28 changes: 25 additions & 3 deletions gradle/setup.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,39 @@ static def qualifyVersion(String v) {
return "BAD"
}

static def outputToGha(String versionType, String fullVersion) {
def ghaFilename = System.getenv("GITHUB_OUTPUT")
if (ghaFilename == null) {
println "::set-output name=versionType::$versionType"
println "::set-output name=fullVersion::$fullVersion"
}
else {
println "using GITHUB_OUTPUT file"
def ghaFile = new File(ghaFilename)
ghaFile.withWriterAppend {
it.newLine()
it.append("versionType=$versionType")
it.newLine()
it.append("fullVersion=$fullVersion")
}
}
}

task qualifyVersionGha() {
doLast {
def versionType = qualifyVersion("$version")

println "::set-output name=versionType::$versionType"
println "::set-output name=fullVersion::$version"
//we ensure that if at least _one_ submodule version is BAD, we only output versionType=BAD + job fails
if (versionType == "BAD") {
outputToGha(versionType, version)
println "::error ::Unable to parse $version to a VersionNumber with recognizable qualifier"
throw new TaskExecutionException(tasks.getByName("qualifyVersionGha"), new IllegalArgumentException("Unable to parse $version to a VersionNumber with recognizable qualifier"))
}
println "Recognized $version as $versionType"

//only output the versionType and fullVersion for the main artifact
if (project.name == 'reactor-core') {
outputToGha(versionType, version)
}
}
}

Expand Down

0 comments on commit 445d2b2

Please sign in to comment.