diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 00000000..f1909e8d --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,31 @@ +name: E2E tests + +on: + push: + branches: + - master + - "szpak/*" + - "marc/*" + +jobs: + gradle: + runs-on: ubuntu-latest + steps: + - name: Checkout project with submodules + uses: actions/checkout@v2 + with: + submodules: true + - name: Setup JDK 8 + uses: actions/setup-java@v1 + with: + java-version: 8 + - name: Run sanity check + run: ./gradlew --scan --stacktrace test + - name: Run E2E tests + env: + ORG_GRADLE_PROJECT_sonatypeUsernameE2E: ${{ secrets.SONATYPE_USERNAME_E2E }} + ORG_GRADLE_PROJECT_sonatypePasswordE2E: ${{ secrets.SONATYPE_PASSWORD_E2E }} + ORG_GRADLE_PROJECT_signingKeyE2E: ${{ secrets.GPG_SIGNING_KEY_E2E }} + ORG_GRADLE_PROJECT_signingPasswordE2E: ${{ secrets.GPG_SIGNING_KEY_PASSPHRASE_E2E }} + run: | + ./gradlew --stacktrace --info e2eTest diff --git a/.gitmodules b/.gitmodules index de5b60d6..f0c0a807 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "src/e2eTest/resources/nexus-publish-e2e-minimal"] path = src/e2eTest/resources/nexus-publish-e2e-minimal - url = git@github.com:gradle-nexus-e2e/nexus-publish-e2e-minimal.git + url = git@github.com:gradle-nexus/nexus-publish-e2e-minimal.git diff --git a/build.gradle.kts b/build.gradle.kts index 3d55b878..1f6cbf33 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -104,6 +104,13 @@ stutter { } } +val e2eTest by sourceSets.creating { //separate infrastructure as compatTest is called multiple times with different Java versions + compileClasspath += sourceSets["compatTest"].output + compileClasspath += sourceSets["main"].output + runtimeClasspath += sourceSets["compatTest"].output + runtimeClasspath += sourceSets["main"].output +} + configurations { compatTestCompileClasspath { extendsFrom(testCompileClasspath.get()) @@ -111,10 +118,10 @@ configurations { compatTestRuntimeClasspath { extendsFrom(testRuntimeClasspath.get()) } - create("e2eTestCompileClasspath") { + configurations.named(e2eTest.implementationConfigurationName) { extendsFrom(compatTestCompileClasspath.get()) } - create("e2eTestRuntimeClasspath") { + configurations.named(e2eTest.runtimeOnlyConfigurationName) { extendsFrom(compatTestRuntimeClasspath.get()) } } @@ -126,12 +133,6 @@ sourceSets { runtimeClasspath += sourceSets["test"].output runtimeClasspath += sourceSets["main"].output } - create("e2eTest") { //separate infrastructure as compatTest is called multiple times with different Java versions - compileClasspath += sourceSets["compatTest"].output - compileClasspath += sourceSets["main"].output - runtimeClasspath += sourceSets["compatTest"].output - runtimeClasspath += sourceSets["main"].output - } } tasks { @@ -157,9 +158,9 @@ tasks { register("e2eTest") { description = "Run E2E tests." group = "Verification" - testClassesDirs = sourceSets.get("e2eTest").output.classesDirs - classpath = sourceSets.get("e2eTest").runtimeClasspath - listOf("sonatypeUsername", "sonatypePassword", "signing.gnupg.homeDir", "signing.gnupg.keyName", "signing.gnupg.passphrase").forEach { + testClassesDirs = e2eTest.output.classesDirs + classpath = e2eTest.runtimeClasspath + listOf("sonatypeUsername", "sonatypePassword", "signingKey", "signingPassword", "signing.gnupg.homeDir", "signing.gnupg.keyName", "signing.gnupg.passphrase").forEach { val e2eName = "${it}E2E" if (project.hasProperty(e2eName)) { systemProperties.put("org.gradle.project.$e2eName", project.property(e2eName)) diff --git a/src/e2eTest/resources/nexus-publish-e2e-minimal b/src/e2eTest/resources/nexus-publish-e2e-minimal index 32160c1b..689d6b42 160000 --- a/src/e2eTest/resources/nexus-publish-e2e-minimal +++ b/src/e2eTest/resources/nexus-publish-e2e-minimal @@ -1 +1 @@ -Subproject commit 32160c1b108501dc3e1473e03196dd3f8b0f16c3 +Subproject commit 689d6b424468630e7e4d1f2d5cea39dddaef5a2b