pawelgrzeda/openssl:.travis.yml@3ca1f65
dist: focal
sudo: required

language: c
git:
  submodules: false
  quiet: true

before_install:
  - if [ -n "$COVERALLS" ]; then
    pip install --user cpp-coveralls;
    fi;
  - if expr "$CONFIG_OPTS" ":" ".*enable-external-tests" > /dev/null; then
    git submodule update --init --recursive;
    fi;
  - eval "${MATRIX_EVAL}"

compiler:
  - gcc

env:
  - CONFIG_OPTS="no-tests" DESTDIR="_install"

matrix:
  include:
    - name: graviton2 lxd
      os: linux
      arch: arm64-graviton2
      virt: lxd
      group: edge
    - name: arm64 lxd
      os: linux
      arch: arm64
      virt: lxd
    - name: graviton2 vm
      os: linux
      group: edge
      virt: vm
      arch: arm64-graviton2

before_script:
    - env
    - if [ "$TRAVIS_PULL_REQUEST" != "false" -a -n "$EXTENDED_TEST" ]; then
          (git log -1 $TRAVIS_COMMIT_RANGE | grep '\[extended tests\]' > /dev/null) || travis_terminate 0;
      fi
    - if [ -n "$DESTDIR" ]; then
          sh .travis-create-release.sh $TRAVIS_OS_NAME;
          tar -xzf _srcdist.tar.gz;
          mkdir _build;
          cd _build;
          srcdir=../_srcdist;
          top=..;
      else
          srcdir=.;
          top=.;
      fi
    - if [ -n "$UBUNTU_GCC_HACK" ]; then
          $CC -dumpspecs | sed "s/--push-state//g; s/--pop-state/--as-needed/g" > gcc-specs.txt;
          CC="$CC -specs=gcc-specs.txt";
      fi
    - if [ "$CC" = i686-w64-mingw32-gcc ]; then
          export CROSS_COMPILE=${CC%%gcc}; unset CC;
          $srcdir/Configure mingw $CONFIG_OPTS -Wno-pedantic-ms-format;
      elif [ "$CC" = x86_64-w64-mingw32-gcc ]; then
          export CROSS_COMPILE=${CC%%gcc}; unset CC;
          $srcdir/Configure mingw64 $CONFIG_OPTS -Wno-pedantic-ms-format;
      else
          if [ "$CC" = clang-3.9 ]; then
              sudo cp .travis-apt-pin.preferences /etc/apt/preferences.d/no-ubuntu-clang;
              curl -sSL "http://apt.llvm.org/llvm-snapshot.gpg.key" | sudo -E apt-key add -;
              echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main" | sudo tee -a /etc/apt/sources.list > /dev/null;
              sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test";
              sudo -E apt-get -yq update;
              sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-3.9;
          elif which ccache >/dev/null; then
              CC="ccache $CC";
          fi;
          if [ -n "$CONFIGURE_TARGET" ]; then
              $srcdir/Configure $CONFIGURE_TARGET $CONFIG_OPTS;
          else
              $srcdir/config -v $CONFIG_OPTS;
          fi;
      fi
    - ./configdata.pm --dump
    - cd $top

script:
    - if [ -z "$BUILDONLY" ]; then
          make="make -s";
      else
          make="make";
      fi
    - if [ -n "$GENERATE" ]; then
          make2="$make PERL=no-perl";
      else
          make2="$make";
      fi
    - top=${PWD}
    - if [ -n "$DESTDIR" ]; then
          cd _build;
      fi
    - if $make update; then
          echo -e '+\057 MAKE UPDATE OK';
      else
          echo -e '+\057 MAKE UPDATE FAILED';
          travis_terminate 1;
      fi
    - git diff --exit-code
    - if [ -n "$CHECKDOCS" ]; then
          if $make doc-nits; then
              echo -e '+\057\057 MAKE DOC-NITS OK';
          else
              echo -e '+\057\057 MAKE DOC-NITS FAILED';
              travis_terminate 1;
          fi;
      fi
    - if [ -n "$GENERATE" ]; then
          if $make build_all_generated; then
              echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED OK';
          else
              echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED FAILED';
              travis_terminate 1;
          fi;
      fi
    - if $make2; then
          echo -e '+\057\057\057\057 MAKE OK';
      else
          echo -e '+\057\057\057\057 MAKE FAILED';
          travis_terminate 1;
      fi;
    - if [ -z "$BUILDONLY" ]; then
          if [ -n "$CROSS_COMPILE" ]; then
              sudo dpkg --add-architecture i386;
              sudo apt-get update;
              sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install wine;
              export EXE_SHELL="wine" WINEPREFIX=`pwd`;
          fi;
          if [ -e krb5/src ]; then
              sudo apt-get -yq install bison dejagnu gettext keyutils ldap-utils libldap2-dev libkeyutils-dev python-cjson python-paste python-pyrad slapd tcl-dev tcsh;
          fi;
          if HARNESS_VERBOSE=yes BORING_RUNNER_DIR=$top/boringssl/ssl/test/runner make test; then
              echo -e '+\057\057\057\057\057 MAKE TEST OK';
          else
              echo -e '+\057\057\057\057\057 MAKE TEST FAILED';
              travis_terminate 1;
          fi;
      else
          if $make build_tests >~/build.log 2>&1; then
              echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS OK';
          else
              echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS FAILED';
              cat ~/build.log
              travis_terminate 1;
          fi;
      fi
    - if [ -n "$DESTDIR" ]; then
          mkdir "$top/$DESTDIR";
          if $make install DESTDIR="$top/$DESTDIR" >~/install.log 2>&1 ; then
              echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL OK';
          else
              echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL FAILED';
              cat ~/install.log;
              travis_terminate 1;
          fi;
      fi
    - cd $top

after_success:
    - if [ -n "$COVERALLS" ]; then
          coveralls -b . --gcov gcov-5 --gcov-options '\-lpbc';
      fi;

notifications:
    email:
        secure: "xeGNgWO7aoaDgRvcZubposqMsj36aU8c6F0oHfw+rUqltCQ14IgYCUwzocmR2O+Pa7B3Cx5VjMfBFHbQaajZsfod8vu7g+aGq/zkjwbhsr/SR4dljJjFJXLGZjIalm9KgP6KInmVDuINfCqP+MHIY5lZkNI7DMcyHDhVc5nSKvCXV7xTDNgmstvh8rB/z51WfHDqGqfBtiuK5FDNxmvYK8OFJ5W94Lu9LDlizcxwK3GAj7arOui7Z5w8bQ6p4seUE3IvJL1Zbj0pZHxvNb6Zeb2Pn8QF1qLlN8YmBktD4aiw0ce4wYRiL87uLgcOxZY7SVXtv2XYFIYWapU/FKjCqa6vK93V/H9eZWEIYNMKnN3wXm2beqVdnKek3OeGJ8v0y7MbSfuLfRtBqbTSNYnpU1Zuo4MQAvHvEPuwCAYkYQajOSRplMH5sULFKptuVqNtOMfjL8jHb8AEoL1acYIk43ydxeYrzzas4fqgCDJ52573/u0RNdF1lkQBLkuM365OB8VRqtpnoxcdEIY/qBc/8TzZ24fxyrs5qdHFcxGSgpN2EP6cJMqpvkemnCNSdhxUqfzm22N7a3O8+4LFSBGOnHto/PwdsvF/01yGYL0LoZTnoO1i6x7AMJPBh+eyDU0ZjGhj/msjmqeb9C8vRqQ+1WjHrIS1iqCD0Czib8tUPD4="
Build Config
{
  "dist": "focal",
  "sudo": "required",
  "language": "c",
  "git": {
    "submodules": false,
    "quiet": true
  },
  "before_install": [
    "if [ -n \"$COVERALLS\" ]; then pip install --user cpp-coveralls; fi;",
    "if expr \"$CONFIG_OPTS\" \":\" \".*enable-external-tests\" > /dev/null; then git submodule update --init --recursive; fi;",
    "eval \"${MATRIX_EVAL}\""
  ],
  "compiler": [
    "gcc"
  ],
  "env": [
    "CONFIG_OPTS=\"no-tests\" DESTDIR=\"_install\""
  ],
  "matrix": {
    "include": [
      {
        "name": "graviton2 lxd",
        "os": "linux",
        "arch": "arm64-graviton2",
        "virt": "lxd",
        "group": "edge"
      },
      {
        "name": "arm64 lxd",
        "os": "linux",
        "arch": "arm64",
        "virt": "lxd"
      },
      {
        "name": "graviton2 vm",
        "os": "linux",
        "group": "edge",
        "virt": "vm",
        "arch": "arm64-graviton2"
      }
    ]
  },
  "before_script": [
    "env",
    "if [ \"$TRAVIS_PULL_REQUEST\" != \"false\" -a -n \"$EXTENDED_TEST\" ]; then (git log -1 $TRAVIS_COMMIT_RANGE | grep '\\[extended tests\\]' > /dev/null) || travis_terminate 0; fi",
    "if [ -n \"$DESTDIR\" ]; then sh .travis-create-release.sh $TRAVIS_OS_NAME; tar -xzf _srcdist.tar.gz; mkdir _build; cd _build; srcdir=../_srcdist; top=..; else srcdir=.; top=.; fi",
    "if [ -n \"$UBUNTU_GCC_HACK\" ]; then $CC -dumpspecs | sed \"s/--push-state//g; s/--pop-state/--as-needed/g\" > gcc-specs.txt; CC=\"$CC -specs=gcc-specs.txt\"; fi",
    "if [ \"$CC\" = i686-w64-mingw32-gcc ]; then export CROSS_COMPILE=${CC%%gcc}; unset CC; $srcdir/Configure mingw $CONFIG_OPTS -Wno-pedantic-ms-format; elif [ \"$CC\" = x86_64-w64-mingw32-gcc ]; then export CROSS_COMPILE=${CC%%gcc}; unset CC; $srcdir/Configure mingw64 $CONFIG_OPTS -Wno-pedantic-ms-format; else if [ \"$CC\" = clang-3.9 ]; then sudo cp .travis-apt-pin.preferences /etc/apt/preferences.d/no-ubuntu-clang; curl -sSL \"http://apt.llvm.org/llvm-snapshot.gpg.key\" | sudo -E apt-key add -; echo \"deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main\" | sudo tee -a /etc/apt/sources.list > /dev/null; sudo -E apt-add-repository -y \"ppa:ubuntu-toolchain-r/test\"; sudo -E apt-get -yq update; sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-3.9; elif which ccache >/dev/null; then CC=\"ccache $CC\"; fi; if [ -n \"$CONFIGURE_TARGET\" ]; then $srcdir/Configure $CONFIGURE_TARGET $CONFIG_OPTS; else $srcdir/config -v $CONFIG_OPTS; fi; fi",
    "./configdata.pm --dump",
    "cd $top"
  ],
  "script": [
    "if [ -z \"$BUILDONLY\" ]; then make=\"make -s\"; else make=\"make\"; fi",
    "if [ -n \"$GENERATE\" ]; then make2=\"$make PERL=no-perl\"; else make2=\"$make\"; fi",
    "top=${PWD}",
    "if [ -n \"$DESTDIR\" ]; then cd _build; fi",
    "if $make update; then echo -e '+\\057 MAKE UPDATE OK'; else echo -e '+\\057 MAKE UPDATE FAILED'; travis_terminate 1; fi",
    "git diff --exit-code",
    "if [ -n \"$CHECKDOCS\" ]; then if $make doc-nits; then echo -e '+\\057\\057 MAKE DOC-NITS OK'; else echo -e '+\\057\\057 MAKE DOC-NITS FAILED'; travis_terminate 1; fi; fi",
    "if [ -n \"$GENERATE\" ]; then if $make build_all_generated; then echo -e '+\\057\\057\\057 MAKE BUILD_ALL_GENERATED OK'; else echo -e '+\\057\\057\\057 MAKE BUILD_ALL_GENERATED FAILED'; travis_terminate 1; fi; fi",
    "if $make2; then echo -e '+\\057\\057\\057\\057 MAKE OK'; else echo -e '+\\057\\057\\057\\057 MAKE FAILED'; travis_terminate 1; fi;",
    "if [ -z \"$BUILDONLY\" ]; then if [ -n \"$CROSS_COMPILE\" ]; then sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install wine; export EXE_SHELL=\"wine\" WINEPREFIX=`pwd`; fi; if [ -e krb5/src ]; then sudo apt-get -yq install bison dejagnu gettext keyutils ldap-utils libldap2-dev libkeyutils-dev python-cjson python-paste python-pyrad slapd tcl-dev tcsh; fi; if HARNESS_VERBOSE=yes BORING_RUNNER_DIR=$top/boringssl/ssl/test/runner make test; then echo -e '+\\057\\057\\057\\057\\057 MAKE TEST OK'; else echo -e '+\\057\\057\\057\\057\\057 MAKE TEST FAILED'; travis_terminate 1; fi; else if $make build_tests >~/build.log 2>&1; then echo -e '+\\057\\057\\057\\057\\057\\057 MAKE BUILD_TESTS OK'; else echo -e '+\\057\\057\\057\\057\\057\\057 MAKE BUILD_TESTS FAILED'; cat ~/build.log travis_terminate 1; fi; fi",
    "if [ -n \"$DESTDIR\" ]; then mkdir \"$top/$DESTDIR\"; if $make install DESTDIR=\"$top/$DESTDIR\" >~/install.log 2>&1 ; then echo -e '+\\057\\057\\057\\057\\057\\057\\057 MAKE INSTALL OK'; else echo -e '+\\057\\057\\057\\057\\057\\057\\057 MAKE INSTALL FAILED'; cat ~/install.log; travis_terminate 1; fi; fi",
    "cd $top"
  ],
  "after_success": [
    "if [ -n \"$COVERALLS\" ]; then coveralls -b . --gcov gcov-5 --gcov-options '\\-lpbc'; fi;"
  ],
  "notifications": {
    "email": {
      "secure": "xeGNgWO7aoaDgRvcZubposqMsj36aU8c6F0oHfw+rUqltCQ14IgYCUwzocmR2O+Pa7B3Cx5VjMfBFHbQaajZsfod8vu7g+aGq/zkjwbhsr/SR4dljJjFJXLGZjIalm9KgP6KInmVDuINfCqP+MHIY5lZkNI7DMcyHDhVc5nSKvCXV7xTDNgmstvh8rB/z51WfHDqGqfBtiuK5FDNxmvYK8OFJ5W94Lu9LDlizcxwK3GAj7arOui7Z5w8bQ6p4seUE3IvJL1Zbj0pZHxvNb6Zeb2Pn8QF1qLlN8YmBktD4aiw0ce4wYRiL87uLgcOxZY7SVXtv2XYFIYWapU/FKjCqa6vK93V/H9eZWEIYNMKnN3wXm2beqVdnKek3OeGJ8v0y7MbSfuLfRtBqbTSNYnpU1Zuo4MQAvHvEPuwCAYkYQajOSRplMH5sULFKptuVqNtOMfjL8jHb8AEoL1acYIk43ydxeYrzzas4fqgCDJ52573/u0RNdF1lkQBLkuM365OB8VRqtpnoxcdEIY/qBc/8TzZ24fxyrs5qdHFcxGSgpN2EP6cJMqpvkemnCNSdhxUqfzm22N7a3O8+4LFSBGOnHto/PwdsvF/01yGYL0LoZTnoO1i6x7AMJPBh+eyDU0ZjGhj/msjmqeb9C8vRqQ+1WjHrIS1iqCD0Czib8tUPD4="
    }
  }
}