leenjewel / openssl_for_ios_and_android

OpenSSL Library for iOS and Android
920 stars 317 forks source link

Github CI Workflow #60

Closed leso-kn closed 3 years ago

leso-kn commented 3 years ago

Hi,

I've created a github ci workflow for this project.

It can be configured to build any version of openssl, nghttp2 and curl for both, ios and android automatically on push events (or whatever repository event, like pull-request).

Library versions, target architectures, -platforms, -abis, -api versions etc can be adjusted from inside a single workflow file (ci.yml).

The pipeline automatically creates releases and attaches the compiled files. For a preview, check the releases section of my fork.


:warning: Please beware: Github workflows do not support yaml anchors at the moment.

Yaml anchors are a technique to re-use sections of yaml code. Since this feature is missing at the moment and the build step for curl depends on openssl and nghttp2, the workflow configuration file is a bit large right now.

Support for yaml anchors in gitlab workflows is planned in the future. This will allow to shorten the contents of the ci config.

leso-kn commented 3 years ago

Please note as well, that the scripts inside tools/ needed to be modified in order to be configurable from ci.yml.

This also involves changes to the way log colors are initialized in build-common.sh, since I had trouble to run the original script inside a clean macos envionment on the github ci runner.


If you prefer to not change these files, the PR can of cause be adjusted to remove the configure options from ci.yml and move everything related to configuration back to the tools/ scripts.

leso-kn commented 3 years ago

Current CI configuration:

With the matrix feature, different versions and platforms can easily be added inside the ci config.

leenjewel commented 3 years ago

Thank you for your contribution