diff --git a/.github/workflows/gradle-check.yml b/.github/workflows/gradle-check.yml deleted file mode 100644 index de2f5c50..00000000 --- a/.github/workflows/gradle-check.yml +++ /dev/null @@ -1,23 +0,0 @@ -# This workflow will build a Java project with Gradle -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle - -name: Run tests in project - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 8 - - uses: gradle/gradle-build-action@v2 - with: - arguments: check \ No newline at end of file diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 00000000..c992c160 --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,48 @@ +name: Java CI +on: + push: + branches: + - 'master' + - '[5-9]+.[0-9]+.x' + pull_request: + branches: + - 'master' + - '[5-9]+.[0-9]+.x' + workflow_dispatch: +jobs: + build: + runs-on: ubuntu-latest + env: + WORKSPACE: ${{ github.workspace }} + GRADLE_OPTS: -Xmx1500m -Dfile.encoding=UTF-8 + SIGNING_KEYRING: ${{ secrets.SECRING_FILE }} + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: 'adopt' + java-version: '8' + - name: Run Build + uses: gradle/gradle-build-action@v3 + with: + arguments: build -Dgeb.env=chromeHeadless + publish: + if: github.event_name == 'push' + needs: ['build'] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: 'adopt' + java-version: '8' + - name: Publish Artifacts (repo.grails.org) + id: publish + uses: gradle/gradle-build-action@v3 + env: + ARTIFACTORY_USERNAME: ${{ secrets.TEMP_ARTIFACTORY_USERNAME }} + ARTIFACTORY_PASSWORD: ${{ secrets.TEMP_ARTIFACTORY_PASSWORD }} + with: + arguments: -Dorg.gradle.internal.publish.checksums.insecure=true publish \ No newline at end of file diff --git a/build.gradle b/build.gradle index 9903e471..dcad513d 100644 --- a/build.gradle +++ b/build.gradle @@ -7,27 +7,23 @@ buildscript { dependencies { classpath "org.grails:grails-gradle-plugin:$grailsGradlePluginVersion" classpath 'io.github.groovylang.groovydoc:groovydoc-gradle-plugin:1.0.1' - classpath "io.github.gradle-nexus:publish-plugin:1.1.0" } } plugins { id 'org.asciidoctor.jvm.convert' version '3.3.2' } -group 'io.github.gpc' +group 'org.grails.plugins' apply plugin: 'org.grails.grails-plugin' apply plugin: 'org.grails.grails-gsp' apply plugin: "org.grails.grails-doc" -apply plugin: 'maven-publish' -apply plugin: 'signing' -apply plugin: "io.github.gradle-nexus.publish-plugin" +apply plugin: "org.grails.internal.grails-plugin-publish" sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { - mavenLocal() mavenCentral() maven { url "https://repo.grails.org/grails/core" } } @@ -55,114 +51,19 @@ dependencies { } } -tasks.withType(GroovyCompile).configureEach { - configure(groovyOptions) { - forkOptions.jvmArgs = ['-Xmx1024m'] - } -} - tasks.withType(Test).configureEach { useJUnitPlatform() } -publishing { - publications { - maven(MavenPublication) { - groupId = project.group - artifactId = 'fields' - version = project.version - - from components.java - artifact sourcesJar - artifact javadocJar - - pom { - name = 'Fields' - description = 'Fields integration for Grails' - url = 'https://github.com/gpc/fields' - licenses { - license { - name = 'The Apache License, Version 2.0' - url = 'https://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - id = 'robfletcher' - name = 'Rob Fletcher' - } - developer { - id = 'graemerocher' - name = 'Graeme Rocher' - } - developer { - id = 'sdelamo' - name = 'Sergio del Amo' - } - developer { - id = 'sbglasius' - name = 'Søren Berg Glasius' - email = 'soeren+gpc@glasius.dk' - } - } - scm { - connection = 'scm:git:git://github.com/gpc/fields.git' - developerConnection = 'scm:git:https://github.com/gpc/fields.git' - url = 'https://github.com/gpc/fields' - } - } - } - } -} - -ext.isReleaseVersion = !version.endsWith("SNAPSHOT") - -if(System.getenv('SIGNING_KEY_ID')) { - ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID') - ext["signing.password"] = System.getenv('SIGNING_PASSPHRASE') - ext["signing.secretKeyRingFile"] = System.getenv('SIGNING_FILE') -} - -afterEvaluate { - signing { - if (System.getenv('SIGN_ARMORED_KEY')) { - String signingKey = System.getenv('SIGN_ARMORED_KEY') - String signingPassword = System.getenv('SIGN_PASSWORD') - useInMemoryPgpKeys(signingKey, signingPassword) - } - required { - isReleaseVersion - } - - sign publishing.publications.maven +grailsPublish { + userOrg = "grails" + githubSlug = 'gpc/fields' + license { + name = 'Apache-2.0' } -} - -tasks.withType(Sign).configureEach { - onlyIf { isReleaseVersion } -} - -import io.github.gradlenexus.publishplugin.InitializeNexusStagingRepository - -tasks.withType(InitializeNexusStagingRepository).configureEach { - onlyIf { isReleaseVersion } - shouldRunAfter(tasks.withType(Sign)) -} - -nexusPublishing { - repositories { - sonatype { - def ossUser = System.getenv("SONATYPE_USERNAME") ?: project.hasProperty("sonatypeOssUsername") ? project.sonatypeOssUsername : '' - def ossPass = System.getenv("SONATYPE_PASSWORD") ?: project.hasProperty("sonatypeOssPassword") ? project.sonatypeOssPassword : '' - def ossStagingProfileId = System.getenv("SONATYPE_STAGING_PROFILE_ID") ?: project.hasProperty("sonatypeOssStagingProfileIdExternalConfig") ? project.sonatypeOssStagingProfileIdExternalConfig : '' - - nexusUrl = uri("https://s01.oss.sonatype.org/service/local/") - snapshotRepositoryUrl = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") - username = ossUser - password = ossPass - stagingProfileId = ossStagingProfileId - } - } + title = "Grails Fields Plugin" + desc = "Fields integration for Grails" + developers = [robfletcher: 'Rob Fletcher', graemerocher: "Graeme Rocher", sdelamo: "Sergio del Amo", sbglasius: 'Søren Berg Glasius'] } asciidoctor { @@ -189,13 +90,3 @@ tasks.register('apiDocs', Copy) { } asciidoctor.dependsOn(apiDocs) - -tasks.register('snapshotVersion') { - doLast { - if (isReleaseVersion) { - ant.propertyfile(file: "gradle.properties") { - entry(key: "version", value: "${project.version}-SNAPSHOT") - } - } - } -} diff --git a/gradle.properties b/gradle.properties index fe33f5d9..04320f23 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,3 +12,8 @@ projectDesc=Customizable form-field rendering based on overrideable GSP template guide=../../guide projectUrl=https\://github.com/gpc/fields developers=Robert Fletcher, Graeme Rocher, S\u00c3\u00b8ren Berg Glasius and more + +org.gradle.caching=true +org.gradle.daemon=true +org.gradle.parallel=true +org.gradle.jvmargs=-Dfile.encoding=UTF-8 -Xmx1536M -XX:MaxMetaspaceSize=512M