-
Notifications
You must be signed in to change notification settings - Fork 11
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
Fix CI publishing failing with Java SSL handshake exceptions to repo.locationtech.org #238
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What are your thoughts on executing cipublish
with a docker
executor? It looks like we only need to utilize docker-compose
in the build job. The cache would still be restored, since it should be indifferent to the executor type.
Here's a patch:
diff --git a/.circleci/config.yml b/.circleci/config.yml
index a0a4b84..cfd09e8 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -54,17 +54,28 @@ aliases:
command: ./scripts/cipublish
# Build environments
- - &openjdk8-scala2_11_12_environment
+ - &machine-openjdk8-scala2_11_12_environment
machine:
image: ubuntu-1604:201903-01
environment:
SCALA_VERSION: 2.11.12
- - &openjdk8-scala2_12_8_environment
+ - &machine-openjdk8-scala2_12_8_environment
machine:
image: ubuntu-1604:201903-01
environment:
SCALA_VERSION: 2.12.8
+ - &openjdk8-scala2_11_12-nodelts_environment
+ docker:
+ - image: circleci/openjdk:8-jdk
+ environment:
+ SCALA_VERSION: 2.11.12
+
+ - &openjdk8-scala2_12_8-nodelts_environment
+ docker:
+ - image: circleci/openjdk:8-jdk
+ environment:
+ SCALA_VERSION: 2.12.8
version: 2
workflows:
@@ -110,11 +121,11 @@ workflows:
jobs:
"openjdk8-scala2.11.12":
- <<: *openjdk8-scala2_11_12_environment
+ <<: *machine-openjdk8-scala2_11_12_environment
steps: *run_cibuild
"openjdk8-scala2.12.8":
- <<: *openjdk8-scala2_12_8_environment
+ <<: *machine-openjdk8-scala2_12_8_environment
steps: *run_cibuild
"openjdk8-scala2.11.12_deploy":
.circleci/config.yml
Outdated
@@ -20,6 +20,26 @@ aliases: | |||
|
|||
- &run_cipublish | |||
- checkout | |||
- run: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we take this approach, I would consider breaking these steps out into their own anchor. Something like &update_machine_java
.
@rbreslow just applied your patch and pushed a new commit, we'll see if it works. I'd expect it to since its the same workflow as the other repos and the docker image has a newer version of docker installed.
Overall, I prefer this solution (assuming it works). It brings this setup more in line with the others, and reduces our dependency on the machine images which are slower. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Otherwise use docker executors for simplicity and consisntency with other GT build environments. This addresses an issue where using the machine environment in cipublish (which doesn't use the docker-compose setup) has too old of a Java version to include the necessary SSL ciphers to connect to repo.locationtech.org
f7aa2c7
to
06ffac6
Compare
Overview
./scripts/cipublish
uses native java + ./sbt because otherwise we need to install and mount gpg information in the sbt container when publishing, which is a hassle. Native Java on the latest machine executor available in CircleCI happens to have a version of Java too old to have the cipher repo.locationtech.org uses. So here we update the version of Java on the CI machine executor rather than do the configuration necessary to wrap GPG and our keys up in a container with SBT. Code comments and git log have an extra bit of detail.Connects #222