aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2017-07-16 10:02:02 -0700
committerSteven Fackler <[email protected]>2017-07-16 14:15:09 -0700
commit3a7ca9c2ff607b65e0db2ea4bb167c1304da86e8 (patch)
tree7665b2f07eec21f461b6e55456bc8f04aa8a7858
parentTell docs.rs to build with all features (diff)
downloadrust-openssl-3a7ca9c2ff607b65e0db2ea4bb167c1304da86e8.tar.xz
rust-openssl-3a7ca9c2ff607b65e0db2ea4bb167c1304da86e8.zip
Switch over Linux tests to CircleCI
-rw-r--r--.travis.yml87
-rw-r--r--circle.yml143
-rwxr-xr-xopenssl/test/build.sh60
-rwxr-xr-xopenssl/test/run.sh34
-rwxr-xr-xtest/add_target.sh32
-rwxr-xr-xtest/build_openssl.sh55
6 files changed, 234 insertions, 177 deletions
diff --git a/.travis.yml b/.travis.yml
index d9caed69..2d29c1e4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,87 +1,8 @@
language: rust
-sudo: required
rust: stable
-dist: trusty
-
-env:
- global:
- - TARGET=x86_64-unknown-linux-gnu
- - BUILD_OPENSSL_VERSION=1.0.1u
-matrix:
- include:
- # osx
- - os: osx
- env: TARGET=x86_64-apple-darwin
-
- # ARM-bit version compat
- - env: >
- TARGET=arm-unknown-linux-gnueabihf
- BUILD_OPENSSL_VERSION=1.0.2k
- CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc
- QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf
- RUST_TEST_THREADS=1
- addons:
- apt:
- packages:
- - gcc-arm-linux-gnueabihf
- - qemu-user-static
- - libc6-dev-armhf-cross
- - binfmt-support
- - env: >
- TARGET=arm-unknown-linux-gnueabihf
- BUILD_OPENSSL_VERSION=1.1.0f
- CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc
- QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf
- RUST_TEST_THREADS=1
- addons:
- apt:
- packages:
- - gcc-arm-linux-gnueabihf
- - qemu-user-static
- - libc6-dev-armhf-cross
- - binfmt-support
-
- # Minimum version supported
- - rust: 1.10.0
-
- # beta/nightly channels
- - rust: beta
- - rust: nightly
-
- # 64-bit version compat
- - env: BUILD_OPENSSL_VERSION=1.0.2k
- - env: BUILD_OPENSSL_VERSION=1.1.0f
-
- # 32-bit version compat
- - env: TARGET=i686-unknown-linux-gnu BUILD_OPENSSL_VERSION=1.0.1u
- addons:
- apt:
- packages:
- - gcc-multilib
- - env: TARGET=i686-unknown-linux-gnu BUILD_OPENSSL_VERSION=1.0.2k
- addons:
- apt:
- packages:
- - gcc-multilib
- - env: TARGET=i686-unknown-linux-gnu BUILD_OPENSSL_VERSION=1.1.0f
- addons:
- apt:
- packages:
- - gcc-multilib
-
- # LibreSSL
- - env: BUILD_LIBRESSL_VERSION=2.5.0
-
- - env: BUILD_LIBRESSL_VERSION=2.5.4
-
-before_install:
- - ./openssl/test/build.sh
- - rustup target add $TARGET || true
-script:
- - ./openssl/test/run.sh
-
+os: osx
cache:
cargo: true
- directories:
- - $HOME/libressl
- - $HOME/openssl
+script:
+- cargo run --manifest-path=systest/Cargo.toml
+- cargo test --manifest-path=openssl/Cargo.toml
diff --git a/circle.yml b/circle.yml
new file mode 100644
index 00000000..4bf92cad
--- /dev/null
+++ b/circle.yml
@@ -0,0 +1,143 @@
+defaults: &DEFAULT
+ working_directory: ~/build
+ docker:
+ - image: jimmycuadra/rust:1.18.0
+ steps:
+ - checkout
+ - run: apt-get update
+ - run: apt-get install -y curl
+ - run: RUST_VERSION=1.18.0 ./test/add_target.sh
+ - restore_cache:
+ key: registry
+ - run: cargo generate-lockfile
+ - save_cache:
+ key: registry-{{ epoch }}
+ paths:
+ - ~/.cargo/registry/index
+ - run: echo "${LIBRARY}-${VERSION}-${TARGET}" > ~/lib_key
+ - restore_cache:
+ key: lib-{{ checksum "~/lib_key" }}-{{ checksum "test/build_openssl.sh"}}
+ - run: ./test/build_openssl.sh
+ - save_cache:
+ key: lib-{{ checksum "~/lib_key" }}-{{ checksum "test/build_openssl.sh"}}
+ paths:
+ - ~/openssl
+ - restore_cache:
+ key: deps-1.18.0-{{ checksum "Cargo.lock" }}-{{ checksum "~/lib_key" }}
+ - run: |
+ export OPENSSL_DIR=$HOME/openssl
+ case "${NO_RUN}" in
+ "1") CMD=build;;
+ "") CMD=run;;
+ esac
+ cargo $CMD --manifest-path=systest/Cargo.toml --target $TARGET
+ - run: |
+ export OPENSSL_DIR=$HOME/openssl
+ export PATH=$OPENSSL_DIR/bin:$PATH
+ if [ "${NO_RUN}" = "1" ]; then
+ TEST_ARGS=--no-run
+ fi
+ cargo test \
+ --manifest-path=openssl/Cargo.toml \
+ --target $TARGET \
+ --all-features \
+ $TEST_ARGS
+ - save_cache:
+ key: deps-1.18.0-{{ checksum "Cargo.lock" }}-{{ checksum "~/lib_key" }}
+ paths:
+ - target
+ - ~/.cargo/registry/cache
+
+openssl_110: &OPENSSL_110
+ LIBRARY: openssl
+ VERSION: 1.1.0f
+
+openssl_102: &OPENSSL_102
+ LIBRARY: openssl
+ VERSION: 1.0.2l
+
+openssl_101: &OPENSSL_101
+ LIBRARY: openssl
+ VERSION: 1.0.1u
+
+libressl_new: &LIBRESSL_OLD
+ LIBRARY: libressl
+ VERSION: 2.5.0
+
+libressl_new: &LIBRESSL_NEW
+ LIBRARY: libressl
+ VERSION: 2.5.5
+
+x86_64: &X86_64
+ TARGET: x86_64-unknown-linux-gnu
+
+i686: &I686
+ TARGET: i686-unknown-linux-gnu
+
+armhf: &ARMHF
+ TARGET: arm-unknown-linux-gnueabihf
+ NO_RUN: 1
+ CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER: arm-linux-gnueabihf-gcc
+ CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_AR: arm-linux-gnueabihf-ar
+
+version: 2
+jobs:
+ x86_64-openssl-1.1.0:
+ <<: *DEFAULT
+ environment:
+ <<: [*OPENSSL_110, *X86_64]
+ x86_64-openssl-1.0.2:
+ <<: *DEFAULT
+ environment:
+ <<: [*OPENSSL_102, *X86_64]
+ x86_64-openssl-1.0.1:
+ <<: *DEFAULT
+ environment:
+ <<: [*OPENSSL_101, *X86_64]
+ i686-openssl-1.1.0:
+ <<: *DEFAULT
+ environment:
+ <<: [*OPENSSL_110, *I686]
+ i686-openssl-1.0.2:
+ <<: *DEFAULT
+ environment:
+ <<: [*OPENSSL_102, *I686]
+ i686-openssl-1.0.1:
+ <<: *DEFAULT
+ environment:
+ <<: [*OPENSSL_101, *I686]
+ armhf-openssl-1.1.0:
+ <<: *DEFAULT
+ environment:
+ <<: [*OPENSSL_110, *ARMHF]
+ armhf-openssl-1.0.2:
+ <<: *DEFAULT
+ environment:
+ <<: [*OPENSSL_102, *ARMHF]
+ armhf-openssl-1.0.1:
+ <<: *DEFAULT
+ environment:
+ <<: [*OPENSSL_101, *ARMHF]
+ x86_64-libressl-old:
+ <<: *DEFAULT
+ environment:
+ <<: [*LIBRESSL_OLD, *X86_64]
+ x86_64-libressl-new:
+ <<: *DEFAULT
+ environment:
+ <<: [*LIBRESSL_NEW, *X86_64]
+workflows:
+ version: 2
+ tests:
+ jobs:
+ - x86_64-openssl-1.1.0
+ - x86_64-openssl-1.0.2
+ - x86_64-openssl-1.0.1
+ - i686-openssl-1.1.0
+ - i686-openssl-1.0.2
+ - i686-openssl-1.0.1
+ - armhf-openssl-1.1.0
+ - armhf-openssl-1.0.2
+ - armhf-openssl-1.0.1
+ - x86_64-libressl-old
+ - x86_64-libressl-new
diff --git a/openssl/test/build.sh b/openssl/test/build.sh
deleted file mode 100755
index cd740895..00000000
--- a/openssl/test/build.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-MAX_REDIRECTS=5
-
-if [ -n "${BUILD_LIBRESSL_VERSION}" ]; then
- NAME=libressl
- URL1="http://ftp3.usa.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${BUILD_LIBRESSL_VERSION}.tar.gz"
- URL2="http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${BUILD_LIBRESSL_VERSION}.tar.gz"
- OUT="/tmp/libressl-${BUILD_OPENSSL_VERSION}.tar.gz"
-elif [ -n "${BUILD_OPENSSL_VERSION}" ]; then
- NAME=openssl
- URL1="https://openssl.org/source/openssl-${BUILD_OPENSSL_VERSION}.tar.gz"
- URL2="http://mirrors.ibiblio.org/openssl/source/openssl-${BUILD_OPENSSL_VERSION}.tar.gz"
- OUT="/tmp/openssl-${BUILD_OPENSSL_VERSION}.tar.gz"
-else
- exit 0
-fi
-
-me=$0
-myname=`basename ${me}`
-
-cmp --silent ${me} ${HOME}/${NAME}/${myname} && exit 0 || echo "cache is busted"
-
-rm -rf "${HOME}/${NAME}"
-
-if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
- exit 0
-fi
-
-if [ "$TARGET" == "i686-unknown-linux-gnu" ]; then
- OS_COMPILER=linux-elf
- OS_FLAGS=-m32
-elif [ "$TARGET" == "arm-unknown-linux-gnueabihf" ]; then
- OS_COMPILER=linux-armv4
- export AR=arm-linux-gnueabihf-ar
- export CC=arm-linux-gnueabihf-gcc
-else
- OS_COMPILER=linux-x86_64
-fi
-
-mkdir -p /tmp/build
-cp ${me} /tmp/build/${myname}
-cd /tmp/build
-
-curl -o ${OUT} -L --max-redirs ${MAX_REDIRECTS} ${URL1} \
- || curl -o ${OUT} -L --max-redirs ${MAX_REDIRECTS} ${URL2}
-
-tar --strip-components=1 -xzf ${OUT}
-
-if [ -n "${BUILD_LIBRESSL_VERSION}" ]; then
- ./configure --prefix=${HOME}/libressl
-else
- ./Configure --prefix=${HOME}/openssl ${OS_COMPILER} -fPIC ${OS_FLAGS}
-fi
-
-make -j$(nproc)
-make install
-cp ${myname} ${HOME}/${NAME}/${myname}
diff --git a/openssl/test/run.sh b/openssl/test/run.sh
deleted file mode 100755
index 32817dcc..00000000
--- a/openssl/test/run.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-set -e
-
-case "$BUILD_OPENSSL_VERSION" in
- 1.0.2*)
- FEATURES="v102"
- ;;
- 1.1.0*)
- FEATURES="v110"
- ;;
-esac
-
-echo Using features: $FEATURES
-
-if [ -n "${BUILD_LIBRESSL_VERSION}" -a -d "$HOME/libressl/lib" ]; then
- echo "Testing build libressl-${BUILD_LIBRESSL_VERSION}"
- export OPENSSL_DIR=${HOME}/libressl
- export LD_LIBRARY_PATH="${HOME}/libressl/lib:${LD_LIBRARY_PATH}"
- export PATH="${HOME}/libressl/bin:${PATH}"
-
-elif [ -n "${BUILD_OPENSSL_VERSION}" -a -d "$HOME/openssl/lib" ]; then
- echo "Testing build openssl-${BUILD_LIBRESSL_VERSION}"
- export OPENSSL_DIR="${HOME}/openssl"
- export LD_LIBRARY_PATH="${HOME}/openssl/lib:${LD_LIBRARY_PATH}"
- export PATH="${HOME}/openssl/bin:${PATH}"
-fi
-
-if [ "$TARGET" == "arm-unknown-linux-gnueabihf" ]; then
- FLAGS="--no-run"
-fi
-
-cargo run --manifest-path systest/Cargo.toml --target $TARGET -v
-exec cargo test --manifest-path openssl/Cargo.toml --target $TARGET \
- --features "$FEATURES" -v $FLAGS
diff --git a/test/add_target.sh b/test/add_target.sh
new file mode 100755
index 00000000..1f74b4cf
--- /dev/null
+++ b/test/add_target.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+set -e
+
+case "${TARGET}" in
+"x86_64-unknown-linux-gnu")
+ exit 0
+ ;;
+"i686-unknown-linux-gnu")
+ apt-get install -y --no-install-recommends gcc-multilib
+ ;;
+"arm-unknown-linux-gnueabihf")
+ echo "deb http://emdebian.org/tools/debian/ jessie main" \
+ > /etc/apt/sources.list.d/crosstools.list
+ curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | apt-key add -
+ dpkg --add-architecture armhf
+ apt-get update
+ apt-get install -y --no-install-recommends \
+ gcc-arm-linux-gnueabihf \
+ libc6-dev:armhf
+ ;;
+esac
+
+OUT=/tmp/std.tar.gz
+curl -o ${OUT} https://static.rust-lang.org/dist/rust-std-${RUST_VERSION}-${TARGET}.tar.gz
+
+WORKDIR=/tmp/std
+mkdir -p ${WORKDIR}
+cd ${WORKDIR}
+
+tar --strip-components=1 -xzf ${OUT}
+
+./install.sh
diff --git a/test/build_openssl.sh b/test/build_openssl.sh
new file mode 100755
index 00000000..124eabc9
--- /dev/null
+++ b/test/build_openssl.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+set -e
+
+if [ -d ~/openssl ]; then
+ exit 0
+fi
+
+case "${LIBRARY}" in
+"libressl")
+ URL1="http://ftp3.usa.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${VERSION}.tar.gz"
+ URL2="http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${VERSION}.tar.gz"
+ ;;
+"openssl")
+ URL1="https://openssl.org/source/openssl-${VERSION}.tar.gz"
+ URL2="http://mirrors.ibiblio.org/openssl/source/openssl-${VERSION}.tar.gz"
+ ;;
+esac
+
+case "${TARGET}" in
+"x86_64-unknown-linux-gnu")
+ OS_COMPILER=linux-x86_64
+ ;;
+"i686-unknown-linux-gnu")
+ OS_COMPILER=linux-elf
+ OS_FLAGS=-m32
+ ;;
+"arm-unknown-linux-gnueabihf")
+ OS_COMPILER=linux-armv4
+ export AR=arm-linux-gnueabihf-ar
+ export CC=arm-linux-gnueabihf-gcc
+ ;;
+esac
+
+mkdir -p /tmp/build
+cd /tmp/build
+
+OUT=/tmp/openssl.tgz
+MAX_REDIRECTS=5
+curl -o ${OUT} -L --max-redirs ${MAX_REDIRECTS} ${URL1} \
+ || curl -o ${OUT} -L --max-redirs ${MAX_REDIRECTS} ${URL2}
+
+tar --strip-components=1 -xzf ${OUT}
+
+PREFIX=${HOME}/openssl
+case "${LIBRARY}" in
+"openssl")
+ ./Configure --prefix=${PREFIX} ${OS_COMPILER} -fPIC ${OS_FLAGS} no-shared
+ ;;
+"libressl")
+ ./configure --prefix=${PREFIX} --disable-shared --with-pic
+ ;;
+esac
+
+make -j$(nproc)
+make install