mojohaus / appassembler

https://www.mojohaus.org/appassembler/
MIT License
93 stars 49 forks source link

Fix AppVeyor and Improve Travis CIs #88

Closed adamretter closed 5 years ago

adamretter commented 5 years ago
adamretter commented 5 years ago

@khmarbaise I think we should drop the JDK 6 target from AppVeyor. Downloading and installing a custom version of Maven on AppVeyor seems to be hit-and-miss, two intermittent issues:

  1. Maven Central occasionally rejecting the request with a HTTP 403. Probably due to rate-limiting DDoS protection.

  2. Even after installing Maven 3.2.5, for JDK 6 and 7 (8 works fine) the build is failing on AppVeyor with:

    mvn -B -Prun-its clean verify
    [INFO] Scanning for projects...
    [INFO] Downloading: https://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/39/mojo-parent-39.pom
    [ERROR] The build could not read 1 project -> [Help 1]
    [ERROR]   
    [ERROR]   The project org.codehaus.mojo.appassembler:appassembler:2.0.1-SNAPSHOT (C:\projects\appassembler\pom.xml) has 1 error
    [ERROR]     Non-resolvable parent POM: Could not transfer artifact org.codehaus.mojo:mojo-parent:pom:39 from/to central (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_version and 'parent.relativePath' points at wrong local POM @ line 28, column 11 -> [Help 2]
    [ERROR] 
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

If we just tested against JDK 7 and 8 on AppVeyor we could use the default installed Maven and everything passes fine.

Do you really still need to test JDK 6 compatibility with newer releases of AppAssembler?

khmarbaise commented 5 years ago

If you like to build JDK7 you need to set https.protocols=TLSv1.2 cause the transfer to Central has been forced to use TLSv1.2+ which is not turned on by default for JDK7...

adamretter commented 5 years ago

@khmarbaise Okay that works for JDK 1.7, but still doesn't work for JDK 1.6 as the version on AppVeyor is very old (1.6.0_45), and this doesn't support TLS v1.2. It have tried JDK 1.6 with TLS v1.1 and v1.0 but both fail too. Should we abandon JDK 1.6 for AppVeyor CI?

khmarbaise commented 5 years ago

I would say JDK6 is dead...I would like to lift the minimum to JDK7+. The issue is simply that Central needs at least TLSv1.2 (based on security concerns see https://central.sonatype.org/articles/2018/May/04/discontinued-support-for-tlsv11-and-below/) so in the end JDK 6 will be in front of the door ...

adamretter commented 5 years ago

@khmarbaise Okay I have removed the JDK 1.6 target on AppVeyor.

The integration tests are passing on JDK 1.8 on AppVeyor but failing on JDK 1.7. I am not sure why. I tried to reproduce on my Windows 10 VM, but I get the same test failures on my VM for both JDK 1.7 and JDK 1.8. Any thoughts?

khmarbaise commented 5 years ago

For the integration tests the settings for the https.protocols TLSv1.2 must be configured for maven-invoker-plugin to support that during the integration tests cause they are downloading artifacts as well ...which is for sure the issue you are facing...

adamretter commented 5 years ago

@khmarbaise Okay I think I now have both CI's passing all tests :-)

khmarbaise commented 5 years ago

Yeah I see it...great work...

khmarbaise commented 5 years ago

BTW: can please separate your pull request with the appropriate issue which means not two things within a single pull request...makes it easier to integrate them...Ok..forget this time I will merge them together....

adamretter commented 5 years ago

@khmarbaise Thanks, I have done that with the other PRs. I didn't with this one, as I felt the two issues were tightly related. If you still want to merge it as is, that would be great :-)

khmarbaise commented 5 years ago

I Wrote already that I will merge it as it...No Problem..