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

Fix CI publishing failing with Java SSL handshake exceptions to repo.locationtech.org #238

Merged
merged 1 commit into from
Sep 30, 2019

Conversation

CloudNiner
Copy link
Contributor

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

.circleci/config.yml Outdated Show resolved Hide resolved
.circleci/config.yml Outdated Show resolved Hide resolved
Copy link
Contributor

@rbreslow rbreslow left a 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":

@@ -20,6 +20,26 @@ aliases:

- &run_cipublish
- checkout
- run:
Copy link
Contributor

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.

@CloudNiner
Copy link
Contributor Author

@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.

What are your thoughts on executing cipublish with a docker executor?

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.

Copy link
Contributor

@rbreslow rbreslow left a 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
@CloudNiner CloudNiner force-pushed the feature/awf/fix-publish branch from f7aa2c7 to 06ffac6 Compare September 30, 2019 14:26
@CloudNiner CloudNiner merged commit 57a1e9f into develop Sep 30, 2019
@CloudNiner CloudNiner deleted the feature/awf/fix-publish branch September 30, 2019 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants