From: jaruga@... Date: 2018-10-18T09:45:10+00:00 Subject: [ruby-core:89457] [Ruby trunk Misc#15220] Adding OpenSSL 1.1.1 on Travis CI gcc-8 case Issue #15220 has been updated by jaruga (Jun Aruga). shyouhei (Shyouhei Urabe) wrote: ... > That pull request is OKish. I especially liked how cron-only build matrix is made possible. > The reason why I didn't press the merge button was that I couldn't immediately understand what's going on, mainly because of the creative use of YAML anchors in middle of actual definitions. > Now I understand that the anchors are introduced there to minimize the patch size. That is a good thing. I don't want to blame on it. Just it is a bit hard to maintain. I would admit the anchors are hard to maintain. Especially the `.definitions/if` part. The intent for the anchors is like you assumed. I did not want to write same logic to multi parts. There are 2 cautions to use anchors. 1. The anchor `&` part needs to be defined before the reference `*` part in a YAML file. 2. When the reference `*` refers to the not existed or not loaded anchor `&`, it is still valid without error at least for Travis CI's YAML parser. As an example of anchors defined separately, I can introduce you a Shippable CI's document. [1] > Anyway the series of pull request you sent is very informative. > Maybe we can add some cron-only builds (not for OpenSSL) using your technique. Thank you. Alright. That's great. I am looking forward to seeing it. I can introduce you how to add osx & gcc-8 [2][3] and clang-N case [4][5] on Travis if you want those.cases. I like that your openssl 1.1.1 patch on trunk branch will be backported to ruby_2_5 branch after "Let's monitor how it goes for now". Feel free to close my pull-request series when you like it. Thank you. [1] Shippable CI template: http://docs.shippable.com/platform/workflow/job/runsh/#shippabletemplatesyml [2] osx & gcc-8 case: .travis.yml: https://github.com/trinityrnaseq/trinityrnaseq/blob/master/.travis.yml [3] osx & gcc-8 case: Travis: https://travis-ci.org/trinityrnaseq/trinityrnaseq [4] clang-N case: .travis.yml: https://github.com/Microsoft/GSL/blob/master/.travis.yml [5] clang-N case: Travis: https://travis-ci.org/Microsoft/GSL ---------------------------------------- Misc #15220: Adding OpenSSL 1.1.1 on Travis CI gcc-8 case https://bugs.ruby-lang.org/issues/15220#change-74497 * 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: