Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: windows path resolution #4159

Draft
wants to merge 12 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 43 additions & 25 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
plugins {
id 'com.github.sherter.google-java-format' version '0.9' apply false
id 'net.ltgt.errorprone' version '3.1.0' apply false
id 'net.researchgate.release' version '2.8.1' apply false
id 'net.researchgate.release' version '3.0.2' apply false
id 'com.gradle.plugin-publish' version '1.2.0' apply false
id 'io.freefair.maven-plugin' version '5.3.3.3' apply false
id 'io.freefair.maven-plugin' version '8.0.1' apply false

// apply so that we can collect quality metrics at the root project level
id 'org.sonarqube' version '4.0.0.2929'
Expand Down Expand Up @@ -51,6 +51,7 @@ project.ext.dependencyStrings = [
MAVEN_TESTING_HARNESS: 'org.apache.maven.plugin-testing:maven-plugin-testing-harness:3.3.0',
MAVEN_VERIFIER: 'org.apache.maven.shared:maven-verifier:1.8.0',
MOCKITO_CORE: 'org.mockito:mockito-core:4.11.0',
MOCKITO_INLINE: 'org.mockito:mockito-inline:4.11.0',
SISU_PLEXUS: 'org.eclipse.sisu:org.eclipse.sisu.plexus:0.3.5',
SLF4J_API: 'org.slf4j:slf4j-api:2.0.7',
SLF4J_SIMPLE: 'org.slf4j:slf4j-simple:2.0.9',
Expand All @@ -60,37 +61,41 @@ project.ext.dependencyStrings = [

import net.ltgt.gradle.errorprone.CheckSeverity

repositories {
mavenCentral()
}

// `java-library` must be applied before `java`.
// java-gradle-plugin (in jib-gradle-plugin) auto applies java-library, so ensure that happens first
['jib-core', 'jib-gradle-plugin', 'jib-gradle-plugin-extension-api', 'jib-maven-plugin-extension-api'].each { projectName ->
project(projectName).apply plugin: 'java-library'
}

apply plugin: 'checkstyle'

def chkConfig = project.configurations.getByName("checkstyle").resolve().find {
it.name.startsWith("checkstyle")
};


subprojects {
group 'com.google.cloud.tools'

repositories {
mavenCentral()
}

apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: 'checkstyle'
apply plugin: 'com.github.sherter.google-java-format'
apply plugin: 'net.ltgt.errorprone'
apply plugin: 'jacoco'

// Guava update breaks unit tests. Workaround mentioned in https://github.com/google/guava/issues/6612#issuecomment-1614992368.
sourceSets.all {
configurations.getByName(runtimeClasspathConfigurationName) {
attributes.attribute(Attribute.of("org.gradle.jvm.environment", String), "standard-jvm")
}
configurations.getByName(compileClasspathConfigurationName) {
attributes.attribute(Attribute.of("org.gradle.jvm.environment", String), "standard-jvm")
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
compileJava.options.encoding = 'UTF-8'
compileJava.options.compilerArgs += [ '-Xlint:deprecation' ]
compileTestJava.options.compilerArgs += [ '-Xlint:deprecation' ]
Expand Down Expand Up @@ -148,11 +153,10 @@ subprojects {

/* CHECKSTYLE */
checkstyle {
toolVersion = '8.29'

toolVersion = '9.3'
def googleChecks = resources.text.fromArchiveEntry(chkConfig, 'google_checks.xml').asString()
// use google checks from the jar
def googleChecks = resources.text.fromArchiveEntry(configurations.checkstyle[0], 'google_checks.xml').asString()

//
// set the location of the suppressions file referenced in google_checks.xml
configProperties['org.checkstyle.google.suppressionfilter.config'] = getConfigDirectory().file('checkstyle-suppressions.xml').get().toString()

Expand All @@ -163,10 +167,15 @@ subprojects {
<property name="fileExtensions" value="java"/>
<property name="id" value="header"/>
</module>
</module>
'''
googleChecks = googleChecks.substring(0, googleChecks.lastIndexOf('</module>')) + copyrightChecks

def supressionChecks = '''
<module name="SuppressionFilter">
<property name="file" value="'''+getConfigDirectory().file('checkstyle-suppressions.xml').get().toString()+'''"/>
</module>
</module>
'''
googleChecks = googleChecks.substring(0, googleChecks.lastIndexOf('</module>')) + copyrightChecks + supressionChecks
// this is the actual checkstyle config
config = resources.text.fromString(googleChecks)

Expand All @@ -176,15 +185,22 @@ subprojects {
/* CHECKSTYLE */

/* TEST CONFIG */
tasks.withType(Test).configureEach {
reports.html.outputLocation = file("${reporting.baseDir}/${name}")
tasks.withType(Test).configureEach {
reports.html.outputLocation.set file("${reporting.baseDir}/${name}")
}

test {
testLogging {
showStandardStreams = true
exceptionFormat = 'full'
}
doFirst {
if (JavaVersion.current().getMajorVersion().toInteger() >= 17) {
jvmArgs = [
'--add-opens', 'java.base/java.util=ALL-UNNAMED',
]
}
}
}
// jar to export tests classes for import in other project by doing:
// testCompile project(path:':project-name', configuration:'tests')
Expand All @@ -208,17 +224,19 @@ subprojects {
integrationTest {
java.srcDir file('src/integration-test/java')
resources.srcDir file('src/integration-test/resources')
compileClasspath += sourceSets.main.output + sourceSets.test.output
runtimeClasspath += sourceSets.main.output + sourceSets.test.output
}
}

configurations {
integrationTestImplementation.extendsFrom testImplementation
integrationTestImplementation.setCanBeResolved(true)
integrationTestRuntime.extendsFrom testRuntime
}

dependencies {
integrationTestImplementation sourceSets.main.output
integrationTestImplementation sourceSets.test.output
}

// Integration tests must be run explicitly
task integrationTest(type: Test) {
testClassesDirs = sourceSets.integrationTest.output.classesDirs
Expand Down Expand Up @@ -251,7 +269,7 @@ subprojects {
/* JAVADOC ENFORCEMENT */
// Fail build on javadoc warnings
tasks.withType(Javadoc) {
options.addBooleanOption('Xwerror', true)
// options.addBooleanOption('Xwerror', true)
}
assemble.dependsOn javadoc
/* JAVADOC ENFORCEMENT */
Expand Down
8 changes: 8 additions & 0 deletions config/checkstyle/checkstyle-suppressions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@

<!-- class with jib repo style: although maybe these should be eventually fixed -->
<suppress files=".*\.java" checks="OverloadMethodsDeclarationOrder"/>
<suppress files=".*\.java" checks="MissingJavadocType"/>
<suppress files=".*\.java" checks="AtclauseOrder"/>
<suppress files=".*\.java" checks="AbbreviationAsWordInName"/>

<!-- temporary suppressions as we work through them -->
<suppress files=".*\.java" checks="VariableDeclarationUsageDistance"/>
Expand All @@ -29,4 +32,9 @@
<suppress files=".*[\\/]src[\\/]integration-test[\\/].*\.java" checks="MissingJavadocMethod"/>
<suppress files=".*[\\/]src[\\/]integration-test[\\/].*\.java" checks="VariableDeclarationUsageDistance"/>

<suppress files=".*[\\/]src[\\/]test[\\/].*\.java" checks="MissingJavadocType"/>
<suppress files=".*[\\/]src[\\/]test[\\/].*\.java" checks="AbbreviationAsWordInName"/>
<suppress files=".*[\\/]src[\\/]integration-test[\\/].*\.java" checks="MissingJavadocType"/>
<suppress files=".*[\\/]src[\\/]integration-test[\\/].*\.java" checks="AbbreviationAsWordInName"/>

</suppressions>
4 changes: 2 additions & 2 deletions examples/helloworld/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id 'java'
id 'com.google.cloud.tools.jib' version '3.4.0'
id 'com.google.cloud.tools.jib' version '3.4.1-SNAPSHOT'
}

sourceCompatibility = 1.8
Expand All @@ -14,4 +14,4 @@ dependencies {
implementation 'com.google.guava:guava:23.6-jre'
}

jib.to.image = 'gcr.io/REPLACE-WITH-YOUR-GCP-PROJECT/image-built-with-jib'
jib.to.image = 'gcr.io/mpeddada-test/image-built-with-jib'
Binary file modified examples/helloworld/gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 3 additions & 1 deletion examples/helloworld/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading
Loading