Merge pull request #663 from sfackler/circle
Switch over Linux tests to CircleCI
This commit is contained in:
commit
b1d5ec99dd
87
.travis.yml
87
.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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# rust-openssl
|
||||
|
||||
[](https://travis-ci.org/sfackler/rust-openssl)
|
||||
[](https://circleci.com/gh/sfackler/rust-openssl) [](https://travis-ci.org/sfackler/rust-openssl) [](https://ci.appveyor.com/project/sfackler/rust-openssl/branch/master)
|
||||
|
||||
|
||||
[Documentation](https://docs.rs/openssl).
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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}
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
Loading…
Reference in New Issue