From: jaruga@... Date: 2018-10-12T16:31:08+00:00 Subject: [ruby-core:89389] [Ruby trunk Misc#15220] Adding OpenSSL 1.1.1 on Travis CI gcc-8 case Issue #15220 has been updated by jaruga (Jun Aruga). > Maybe we can use docker like ruby/openssl does today, or maybe we can have our own .deb prepared somewhere. I sent pull-request to use docker on the only gcc-8 test case as an experiment. https://github.com/ruby/ruby/pull/1983 The result on my repository is here. https://travis-ci.org/junaruga/ruby/builds/440699457 I installed needed OpenSSL 1.1.1 in the docker container image in advance. But unfortunately the total running time is longer than above OpenSSL source compiled case. But I think this experiment includes some tips to run ruby tests in the docker container. I did put the built container image here. https://hub.docker.com/r/junaruga/ruby-docker/tags/ Top directory's Dockerfile would refer this container image. ## Use case Build the base container, and push the built image to the repository. ``` $ cd tool/ci $ docker build --rm --no-cache -t ruby-docker . $ docker login docker.io $ docker tag ruby-docker docker.io/junaruga/ruby-docker:test $ docker push docker.io/junaruga/ruby-docker:test ``` Run the test on local. If you are using docker >= 17.06, maybe you need `--network=host` option to `docker run`. See .travis.yml for detail. ``` $ cd ../.. (<= Back to top directory) $ docker build --rm -t ruby . $ docker run --rm -t ruby tool/ci/test.sh ``` You can set arguments optionally. ``` $ docker build --rm \ --build-arg TEST_USER=travis \ --build-arg WORK_DIR=$(pwd) \ -t ruby . $ docker run \ -e CC="gcc-8" \ -e OPENSSL_VERSION="1.1.1" \ ruby tool/ci/test.sh ``` * `tool/ci/test.sh` is same with commands on previous Travis's before_install, before_script and script section. * We might be able to run below test commands in parallel with multi Travis instances to save the running time. ``` make -s test => Travis instance 1 make -s test-all => Travis instance 2 make -s test-spec => Travis instance 1 ``` ---------------------------------------- Misc #15220: Adding OpenSSL 1.1.1 on Travis CI gcc-8 case https://bugs.ruby-lang.org/issues/15220#change-74429 * Author: jaruga (Jun Aruga) * Status: Open * Priority: Normal * Assignee: ---------------------------------------- Currently Travis CI test cases are running on OpenSSL 1.0.1f as the default setting. I want to add the latest version OpenSSL 1.1.1 to the gcc-8 test case on Travis CI. I sent pull-request for that. https://github.com/ruby/ruby/pull/1980 ## Motivation The motivation is that ruby/openssl has very good CI environment covering the supported SSL collections. However the benefits to enable OpenSSL 1.1.1 for the main repository (ruby/ruby) are 1. To make us check the entire logic on the latest OpenSSL as early as possible. For example, I can find this kind of issue [1] as early as possible. 2. We can check it on ruby-2.5 branch too. That is related to #15219 [2] As we are working for OpenSSL 1.1.1 on Windows CI [3] and python project is testing on the custom OpenSSL built from the source code [4], I think that we can adapt it to Travis CI. ## Detail of implementation In the new process, the OpenSSL is built from source code. That takes 134.63 sec = 2 min 14 sec I could not find the better idea than that. I found the binary openssl package that someone is managing [5]. But it might not be valid for Trusty. And it seems that the repository is quite personal one. I am using `cache/directories` element [6]. I created `tool/install_openssl.sh` script. But some logic might be moved to `configure.ac` like [7]. How do you think? * [1] net/http, net/ftp: fix session resumption with TLS 1.3: https://github.com/ruby/ruby/commit/1dfc377 * [2] Ruby 2.5.X supporting OpenSSL 1.1.1 and TLS 1.3: https://bugs.ruby-lang.org/issues/15219 * [3] OpenSSL 1.1.1 soon available from MSYS2: https://bugs.ruby-lang.org/issues/15171 * [4] Python with custom OpenSSL: https://github.com/python/cpython/blob/master/.travis.yml#L15 * [5] Personal(?) openssl repository: https://launchpad.net/~xnox/+archive/ubuntu/openssl * [6] Travis cache: https://docs.travis-ci.com/user/caching/#arbitrary-directories * [7] deduce versioned tools from CC: https://github.com/ruby/ruby/commit/f677ba8 -- https://bugs.ruby-lang.org/ Unsubscribe: