Blame .travis.yml

Packit 13e0ca
language: C
Packit 13e0ca
Packit 13e0ca
branches:
Packit 13e0ca
  except:
Packit 13e0ca
    - master
Packit 13e0ca
Packit 13e0ca
notifications:
Packit 13e0ca
  irc:
Packit 13e0ca
    channels:
Packit 13e0ca
      - "ircs://chat.freenode.net:6697/#libxcrypt"
Packit 13e0ca
    skip_join: true
Packit 13e0ca
Packit 13e0ca
sudo: true
Packit 13e0ca
Packit 13e0ca
matrix:
Packit 13e0ca
  fast_finish: true
Packit 13e0ca
  include:
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api --enable-hashes=all"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
        - CODECOV=1
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api --enable-hashes=all"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api --enable-hashes=all"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api --enable-hashes=all"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api --enable-hashes=all"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--disable-obsolete-api --enable-hashes=all"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--disable-obsolete-api --enable-hashes=all"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--disable-obsolete-api --enable-hashes=all"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--disable-obsolete-api --enable-hashes=all"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--disable-obsolete-api --enable-hashes=strong"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--disable-obsolete-api --enable-hashes=strong"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--disable-obsolete-api --enable-hashes=strong"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--disable-obsolete-api --enable-hashes=strong"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api --enable-hashes=glibc"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api --enable-hashes=glibc"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api --enable-hashes=glibc"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api --enable-hashes=glibc"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api=glibc --enable-hashes=strong,glibc"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api=glibc --enable-hashes=strong,glibc"
Packit 13e0ca
        - FCVER="rawhide"
Packit 13e0ca
    - compiler: gcc
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api=glibc --enable-hashes=strong,glibc"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
    - compiler: clang
Packit 13e0ca
      os: linux
Packit 13e0ca
      services: docker
Packit 13e0ca
      env:
Packit 13e0ca
        - CONF="--enable-obsolete-api=glibc --enable-hashes=strong,glibc"
Packit 13e0ca
        - FCVER="latest"
Packit 13e0ca
Packit 13e0ca
before_install:
Packit 13e0ca
  - for i in `seq 0 99`; do docker pull fedora:$FCVER && i= && break || sleep 1; done; [ -z "$i" ]
Packit 13e0ca
  - perl -pe 's/\$(\w+)/$ENV{$1}/g' .travis.env.in > travis.env
Packit 13e0ca
  - docker run -t -d -P --env-file travis.env --name buildenv -v $HOME/.ccache:/root/.ccache -v $PWD:/opt/libxcrypt fedora:$FCVER /bin/sh -c "mkdir -p /opt/libxcrypt ; bash"
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "echo \"deltarpm=0\" >> /etc/dnf/dnf.conf"
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "echo \"install_weak_deps=0\" >> /etc/dnf/dnf.conf"
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "echo \"max_parallel_downloads=20\" >> /etc/dnf/dnf.conf"
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "echo \"\" >> /etc/dnf/dnf.conf"
Packit 13e0ca
  - if [[ "$FCVER" == "rawhide" ]] ; then docker exec -t buildenv /bin/sh -c "cat /opt/libxcrypt/.travis.dnf.conf.rawhide_latest >> /etc/dnf/dnf.conf" ; fi
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c 'for i in `seq 0 99`; do dnf makecache && i= && break || sleep 1; done; [ -z "$i" ]'
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c 'for i in `seq 0 99`; do dnf -y upgrade && i= && break || sleep 1; done; [ -z "$i" ]'
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c 'for i in `seq 0 99`; do dnf -y groups install buildsys-build && i= && break || sleep 1; done; [ -z "$i" ]'
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c 'for i in `seq 0 99`; do dnf -y install libtool && i= && break || sleep 1; done; [ -z "$i" ]'
Packit 13e0ca
  - if [[ "$CC" == "clang" ]]  ; then docker exec -t buildenv /bin/sh -c 'for i in `seq 0 99`; do dnf -y install clang && i= && break || sleep 1; done; [ -z "$i" ]' ; fi
Packit 13e0ca
  - if [[ "$CODECOV" == "1" ]] ; then docker exec -t buildenv /bin/sh -c 'for i in `seq 0 99`; do dnf -y install '/usr/bin/git' '/usr/bin/lcov' '/usr/bin/pip3' && i= && break || sleep 1; done; [ -z "$i" ]' ; fi
Packit 13e0ca
  - if [[ "$CODECOV" == "1" ]] ; then docker exec -t buildenv /bin/sh -c "pip3 install codecov" ; fi
Packit 13e0ca
Packit 13e0ca
before_script:
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "rpm -E %optflags" > cflags.txt
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "rpm -E %__global_ldflags" > ldflags.txt
Packit 13e0ca
  - cat cflags.txt  | tr -d '\012\015' > cflags.txt.new  && mv -f cflags.txt.new cflags.txt
Packit 13e0ca
  - cat ldflags.txt | tr -d '\012\015' > ldflags.txt.new && mv -f ldflags.txt.new ldflags.txt
Packit 13e0ca
  - if [[ "$CC" == "clang" ]]     ; then sed -i -e 's![ \t]*-fcf-protection[ \t]*! -Wno-unused-command-line-argument!g' cflags.txt ; fi
Packit 13e0ca
  - if [[ "$FCVER" == "latest" ]] ; then sed -i -e 's![ \t]*-mcet[ \t]*! !g' cflags.txt ; fi
Packit 13e0ca
Packit 13e0ca
script:
Packit 13e0ca
  - export CFLAGS="`cat cflags.txt`" ; export CXXFLAGS="$CFLAGS" ; echo $CFLAGS
Packit 13e0ca
  - export LDFLAGS="`cat ldflags.txt`" ; echo $LDFLAGS
Packit 13e0ca
  - if [[ "$CODECOV" == "1" ]] ; then export CFLAGS="-O0 -g --coverage" ; export CXXFLAGS="$CFLAGS" ; export LDFLAGS="--coverage" ; fi
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "cat /etc/redhat-release"
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "cd /opt/libxcrypt && autoreconf -fiv"
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "cd /opt/libxcrypt && CFLAGS=\"$CFLAGS\" CXXFLAGS=\"$CXXFLAGS\" LDFLAGS=\"$LDFLAGS\" ./configure --prefix=/opt/libxcrypt --disable-silent-rules --enable-shared --enable-static $CONF"
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "make -C /opt/libxcrypt -j$((`nproc --all` * 2))"
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "make -C /opt/libxcrypt install"
Packit 13e0ca
  - docker exec -t buildenv /bin/sh -c "(make -C /opt/libxcrypt -j$((`nproc --all` * 2)) check || (cat /opt/libxcrypt/test-suite.log && exit 1))"
Packit 13e0ca
Packit 13e0ca
after_success:
Packit 13e0ca
 - if [[ "$CODECOV" == "1" ]] ; then docker exec -t buildenv /bin/sh -c "make -C /opt/libxcrypt check && cd /opt/libxcrypt && lcov --directory . --capture --output-file all_coverage.info && lcov --remove all_coverage.info '/usr/*' '*test*' > coverage.info && rm all_coverage.info && codecov -X gcov" ; fi