]> www.wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - .travis.yml
Reduce the repeated library dependence information
[openssl-gost/engine.git] / .travis.yml
index 5a3ca214183a55de230254449243c9bc131ea704..afe342281d1a3a5301ade84180e917c1429eadbc 100644 (file)
@@ -1,65 +1,70 @@
-sudo: required
 dist: bionic
 
 os: linux
 
 language: c
 
-addons:
-  apt:
-    packages: [ cpanminus ]
-  homebrew:
-    packages: [ cpanminus ]
-
 env:
   global:
     - PREFIX=${HOME}/opt
     - PATH=${PREFIX}/bin:${PATH}
-    - OPENSSL_BRANCH=master
+    - OPENSSL_BRANCH=openssl-3.0.0-alpha8
+    - RPATH="-Wl,-rpath=${PREFIX}/lib"
 
 matrix:
   include:
-    - os: linux
-      compiler: gcc
-    - env: LABEL="linux-ppc64le" CMAKE_VERSION=3.15.1
-      os: linux-ppc64le
-      compiler: gcc
-      install:
-        - wget https://cmake.org/files/v${CMAKE_VERSION%.*}/cmake-${CMAKE_VERSION}.tar.gz && tar -xzf cmake-${CMAKE_VERSION}.tar.gz
-        - cd cmake-${CMAKE_VERSION} && ./bootstrap && sudo make install && cd ..
-    - env: ASAN=-DASAN=1
-      os: linux
-      compiler: gcc
-    - env: COVERITY_SCAN_PROJECT_NAME="gost-engine" COVERITY_SCAN_BRANCH_PATTERN="*" COVERITY_SCAN_NOTIFICATION_EMAIL="beldmit@gmail.com" COVERITY_SCAN_BUILD_COMMAND="make"
+    - name: gcc | openssl-stable
+    - name: clang | openssl-stable
+      compiler: clang
+    - name: gcc | openssl-master
+      env: OPENSSL_BRANCH=master
+    # Dynamic and static analysers
+    - name: gcc+ASan | openssl-stable
+      env: ASAN=-DASAN=1
+    - name: gcc+Coverity | openssl-stable (cron)
+      env: COVERITY_SCAN_PROJECT_NAME="gost-engine" COVERITY_SCAN_BRANCH_PATTERN="*" COVERITY_SCAN_NOTIFICATION_EMAIL="beldmit@gmail.com" COVERITY_SCAN_BUILD_COMMAND="make"
       if: type == cron
-      os: linux
-      compiler: gcc
       script:
         - mkdir build
         - cd build
         - cmake -DOPENSSL_ROOT_DIR=${PREFIX} -DOPENSSL_LIBRARIES=${PREFIX}/lib -DOPENSSL_ENGINES_DIR=${PREFIX}/engines ..
         - curl -s "https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh" | bash || true
-    - os: linux
-      compiler: gcc
-    - os: linux
+    # Other arches
+    - name: gcc | openssl-stable
+      env: CFLAGS=-m32 LDFLAGS=-m32 SETARCH="setarch i386" APT_INSTALL=gcc-multilib
+    - name: gcc | openssl-stable
+      arch: ppc64le
+    - name: gcc | openssl-stable
       arch: arm64
-      compiler: gcc
-    - os: osx
+    - name: gcc | openssl-stable
+      arch: s390x
+    # Non-linux
+    - name: clang | openssl-stable
+      os: osx
       compiler: clang
+      #env: RPATH="-Wl,-rpath,${PREFIX}/lib"
+  allow_failures:
+      env: OPENSSL_BRANCH=master
+      if: type == pull_request
 
 before_script:
   - curl -L https://cpanmin.us | sudo perl - --sudo App::cpanminus
   - sudo cpanm --notest Test2::V0 > build.log 2>&1 || (cat build.log && exit 1)
+  - if [ "$APT_INSTALL" ]; then sudo apt-get install -y $APT_INSTALL; fi
   - git clone --depth 1 -b ${OPENSSL_BRANCH} https://github.com/openssl/openssl.git
   - cd openssl
-  - ./config shared -d --prefix=${PREFIX} --openssldir=${PREFIX} && make -j$(nproc) all && make install_sw > build.log 2>&1 || (cat build.log && exit 1)
+  - git describe --always --long
+  - $SETARCH ./config shared -d --prefix=${PREFIX} --openssldir=${PREFIX} ${RPATH}
+  - travis_wait $SETARCH make -s -j$(nproc) build_libs
+  - travis_wait $SETARCH make -s -j$(nproc) build_programs
+  - make -s install_sw
   - cd ..
 
 script:
-  - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then export LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH:-}"; fi
-  - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then export DYLD_LIBRARY_PATH="${PREFIX}/lib:${DYLD_LIBRARY_PATH:-}"; fi
+  - set -e
   - mkdir build
   - cd build
   - cmake -DOPENSSL_ROOT_DIR=${PREFIX} -DOPENSSL_LIBRARIES=${PREFIX}/lib -DOPENSSL_ENGINES_DIR=${PREFIX}/engines ${ASAN} ..
   - make
   - make test CTEST_OUTPUT_ON_FAILURE=1
+  - if [ -z "$ASAN" ]; then make tcl_tests; fi