230 lines
5.5 KiB
YAML
230 lines
5.5 KiB
YAML
restore_registry: &RESTORE_REGISTRY
|
|
restore_cache:
|
|
key: registry-4
|
|
save_registry: &SAVE_REGISTRY
|
|
save_cache:
|
|
key: registry-4-{{ .BuildNum }}
|
|
paths:
|
|
- /usr/local/cargo/registry/index
|
|
openssl_key: &OPENSSL_KEY
|
|
key: lib-{{ checksum "~/lib_key" }}-{{ checksum "test/build_openssl.sh" }}
|
|
restore_openssl: &RESTORE_OPENSSL
|
|
restore_cache:
|
|
<<: *OPENSSL_KEY
|
|
save_openssl: &SAVE_OPENSSL
|
|
save_cache:
|
|
<<: *OPENSSL_KEY
|
|
paths:
|
|
- /openssl
|
|
deps_key: &DEPS_KEY
|
|
key: deps-1.20.0-{{ checksum "Cargo.lock" }}-{{ checksum "~/lib_key" }}-2
|
|
restore_deps: &RESTORE_DEPS
|
|
restore_cache:
|
|
<<: *DEPS_KEY
|
|
save_deps: &SAVE_DEPS
|
|
save_cache:
|
|
<<: *DEPS_KEY
|
|
paths:
|
|
- target
|
|
- /usr/local/cargo/registry/cache
|
|
|
|
job: &JOB
|
|
working_directory: ~/build
|
|
docker:
|
|
- image: rust:1.20.0
|
|
steps:
|
|
- checkout
|
|
- run: apt-get update
|
|
- run: apt-get remove -y libssl-dev
|
|
- run: ./test/add_target.sh
|
|
- *RESTORE_REGISTRY
|
|
- run: cargo generate-lockfile --verbose
|
|
- *SAVE_REGISTRY
|
|
- run: echo "${LIBRARY}-${VERSION}-${TARGET}" > ~/lib_key
|
|
- *RESTORE_OPENSSL
|
|
- run: ./test/build_openssl.sh
|
|
- *SAVE_OPENSSL
|
|
- *RESTORE_DEPS
|
|
- run: cargo run --manifest-path=systest/Cargo.toml --target $TARGET --features "$FEATURES"
|
|
- run: |
|
|
ulimit -c unlimited
|
|
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 \
|
|
--features "$FEATURES" \
|
|
$TEST_ARGS
|
|
- run:
|
|
command: |
|
|
mkdir -p /tmp/core_dumps
|
|
find . -name "core.*" -exec cp \{\} /tmp/core_dumps \;
|
|
cp target/$TARGET/debug/openssl-* /tmp/core_dumps
|
|
when: on_fail
|
|
- store_artifacts:
|
|
path: /tmp/core_dumps
|
|
- *SAVE_DEPS
|
|
|
|
macos_job: &MACOS_JOB
|
|
macos:
|
|
xcode: "9.0"
|
|
steps:
|
|
- checkout
|
|
- run: sudo mkdir /opt
|
|
- run: sudo chown -R $USER /usr/local /opt
|
|
- run: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain 1.20.0
|
|
- run: sudo ln -s $CARGO_HOME/bin/* /usr/local/bin
|
|
- run: cargo generate-lockfile --verbose
|
|
- run: echo "homebrew-x86_64-apple-darwin" > ~/lib_key
|
|
- *RESTORE_DEPS
|
|
- run: cargo run --manifest-path=systest/Cargo.toml --features "$FEATURES"
|
|
- run: |
|
|
PATH=/usr/local/opt/openssl/bin:$PATH
|
|
cargo test --manifest-path=openssl/Cargo.toml --features "$FEATURES"
|
|
- *SAVE_DEPS
|
|
macos_env: &MACOS_ENV
|
|
RUSTUP_HOME: /usr/local/rustup
|
|
CARGO_HOME: /usr/local/cargo
|
|
|
|
vendored: &VENDORED
|
|
FEATURES: vendored
|
|
LIBRARY: ""
|
|
openssl_111: &OPENSSL_111
|
|
LIBRARY: openssl
|
|
VERSION: 1.1.1
|
|
openssl_110: &OPENSSL_110
|
|
LIBRARY: openssl
|
|
VERSION: 1.1.0i
|
|
openssl_102: &OPENSSL_102
|
|
LIBRARY: openssl
|
|
VERSION: 1.0.2p
|
|
openssl_101: &OPENSSL_101
|
|
LIBRARY: openssl
|
|
VERSION: 1.0.1u
|
|
libressl_250: &LIBRESSL_250
|
|
LIBRARY: libressl
|
|
VERSION: 2.5.0
|
|
libressl_270: &LIBRESSL_280
|
|
LIBRARY: libressl
|
|
VERSION: 2.8.1
|
|
|
|
x86_64: &X86_64
|
|
TARGET: x86_64-unknown-linux-gnu
|
|
musl: &MUSL
|
|
TARGET: x86_64-unknown-linux-musl
|
|
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
|
|
CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER: qemu-arm-static
|
|
darwin: &DARWIN
|
|
TARGET: x86_64-apple-darwin
|
|
|
|
base: &BASE
|
|
RUST_BACKTRACE: 1
|
|
OPENSSL_DIR: /openssl
|
|
|
|
version: 2
|
|
jobs:
|
|
musl-vendored:
|
|
<<: *JOB
|
|
docker:
|
|
- image: rust:1.21.0
|
|
environment:
|
|
<<: [*VENDORED, *MUSL, *BASE]
|
|
x86_64-vendored:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*VENDORED, *X86_64, *BASE]
|
|
x86_64-openssl-1.1.1:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_111, *X86_64, *BASE]
|
|
x86_64-openssl-1.1.0:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_110, *X86_64, *BASE]
|
|
x86_64-openssl-1.0.2:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_102, *X86_64, *BASE]
|
|
x86_64-openssl-1.0.1:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_101, *X86_64, *BASE]
|
|
i686-vendored:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*VENDORED, *I686, *BASE]
|
|
i686-openssl-1.1.1:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_111, *I686, *BASE]
|
|
i686-openssl-1.1.0:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_110, *I686, *BASE]
|
|
i686-openssl-1.0.2:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_102, *I686, *BASE]
|
|
armhf-vendored:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*VENDORED, *ARMHF, *BASE]
|
|
armhf-openssl-1.1.1:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_111, *ARMHF, *BASE]
|
|
armhf-openssl-1.1.0:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_110, *ARMHF, *BASE]
|
|
armhf-openssl-1.0.2:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*OPENSSL_102, *ARMHF, *BASE]
|
|
x86_64-libressl-2.5.0:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*LIBRESSL_250, *X86_64, *BASE]
|
|
x86_64-libressl-2.8.0:
|
|
<<: *JOB
|
|
environment:
|
|
<<: [*LIBRESSL_280, *X86_64, *BASE]
|
|
macos:
|
|
<<: *MACOS_JOB
|
|
environment:
|
|
<<: [*MACOS_ENV]
|
|
macos-vendored:
|
|
<<: *MACOS_JOB
|
|
environment:
|
|
<<: [*VENDORED, *MACOS_ENV]
|
|
workflows:
|
|
version: 2
|
|
tests:
|
|
jobs:
|
|
- musl-vendored
|
|
- x86_64-vendored
|
|
- x86_64-openssl-1.1.1
|
|
- x86_64-openssl-1.1.0
|
|
- x86_64-openssl-1.0.2
|
|
- x86_64-openssl-1.0.1
|
|
- i686-vendored
|
|
- i686-openssl-1.1.1
|
|
- i686-openssl-1.1.0
|
|
- i686-openssl-1.0.2
|
|
- armhf-vendored
|
|
- armhf-openssl-1.1.1
|
|
- armhf-openssl-1.1.0
|
|
- armhf-openssl-1.0.2
|
|
- x86_64-libressl-2.5.0
|
|
- x86_64-libressl-2.8.0
|
|
- macos
|
|
- macos-vendored
|