1restore_registry: &RESTORE_REGISTRY 2 restore_cache: 3 key: registry 4save_registry: &SAVE_REGISTRY 5 save_cache: 6 key: registry-{{ .BuildNum }} 7 paths: 8 - /usr/local/cargo/registry/index 9openssl_key: &OPENSSL_KEY 10 key: lib-{{ checksum "~/lib_key" }}-{{ checksum "test/build_openssl.sh" }} 11restore_openssl: &RESTORE_OPENSSL 12 restore_cache: 13 <<: *OPENSSL_KEY 14save_openssl: &SAVE_OPENSSL 15 save_cache: 16 <<: *OPENSSL_KEY 17 paths: 18 - /openssl 19deps_key: &DEPS_KEY 20 key: deps-1.19.0-{{ checksum "Cargo.lock" }}-{{ checksum "~/lib_key" }}-2 21restore_deps: &RESTORE_DEPS 22 restore_cache: 23 <<: *DEPS_KEY 24save_deps: &SAVE_DEPS 25 save_cache: 26 <<: *DEPS_KEY 27 paths: 28 - target 29 - /usr/local/cargo/registry/cache 30 31job: &JOB 32 working_directory: ~/build 33 docker: 34 - image: rust:1.19.0 35 steps: 36 - checkout 37 - run: apt-get update 38 - run: apt-get remove -y libssl-dev 39 - run: ./test/add_target.sh 40 - *RESTORE_REGISTRY 41 - run: cargo generate-lockfile 42 - *SAVE_REGISTRY 43 - run: echo "${LIBRARY}-${VERSION}-${TARGET}" > ~/lib_key 44 - *RESTORE_OPENSSL 45 - run: ./test/build_openssl.sh 46 - *SAVE_OPENSSL 47 - *RESTORE_DEPS 48 - run: cargo run --manifest-path=systest/Cargo.toml --target $TARGET 49 - run: | 50 ulimit -c unlimited 51 export PATH=$OPENSSL_DIR/bin:$PATH 52 if [ "${NO_RUN}" = "1" ]; then 53 TEST_ARGS=--no-run 54 fi 55 cargo test \ 56 --manifest-path=openssl/Cargo.toml \ 57 --target $TARGET \ 58 --all-features \ 59 $TEST_ARGS 60 - run: 61 command: | 62 mkdir -p /tmp/core_dumps 63 find . -name "core.*" -exec cp \{\} /tmp/core_dumps \; 64 cp target/$TARGET/debug/openssl-* /tmp/core_dumps 65 when: on_fail 66 - store_artifacts: 67 path: /tmp/core_dumps 68 - *SAVE_DEPS 69 70macos_job: &MACOS_JOB 71 macos: 72 xcode: "9.0" 73 environment: 74 RUSTUP_HOME: /usr/local/rustup 75 CARGO_HOME: /usr/local/cargo 76 steps: 77 - checkout 78 - run: sudo mkdir /opt 79 - run: sudo chown -R $USER /usr/local /opt 80 - run: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain 1.19.0 81 - run: sudo ln -s $CARGO_HOME/bin/* /usr/local/bin 82 - *RESTORE_REGISTRY 83 - run: cargo generate-lockfile 84 - *SAVE_REGISTRY 85 - run: echo "homebrew-x86_64-apple-darwin" > ~/lib_key 86 - *RESTORE_DEPS 87 - run: cargo run --manifest-path=systest/Cargo.toml 88 - run: | 89 PATH=/usr/local/opt/openssl/bin:$PATH 90 cargo test --manifest-path=openssl/Cargo.toml --all-features 91 - *SAVE_DEPS 92 93openssl_110: &OPENSSL_110 94 LIBRARY: openssl 95 VERSION: 1.1.0g 96openssl_102: &OPENSSL_102 97 LIBRARY: openssl 98 VERSION: 1.0.2m 99openssl_101: &OPENSSL_101 100 LIBRARY: openssl 101 VERSION: 1.0.1u 102libressl_250: &LIBRESSL_250 103 LIBRARY: libressl 104 VERSION: 2.5.0 105libressl_263: &LIBRESSL_263 106 LIBRARY: libressl 107 VERSION: 2.6.3 108 109x86_64: &X86_64 110 TARGET: x86_64-unknown-linux-gnu 111i686: &I686 112 TARGET: i686-unknown-linux-gnu 113armhf: &ARMHF 114 TARGET: arm-unknown-linux-gnueabihf 115 NO_RUN: 1 116 CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER: arm-linux-gnueabihf-gcc 117 CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_AR: arm-linux-gnueabihf-ar 118 CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER: qemu-arm-static 119darwin: &DARWIN 120 TARGET: x86_64-apple-darwin 121 122base: &BASE 123 RUST_BACKTRACE: 1 124 OPENSSL_DIR: /openssl 125 126version: 2 127jobs: 128 x86_64-openssl-1.1.0: 129 <<: *JOB 130 environment: 131 <<: [*OPENSSL_110, *X86_64, *BASE] 132 x86_64-openssl-1.0.2: 133 <<: *JOB 134 environment: 135 <<: [*OPENSSL_102, *X86_64, *BASE] 136 x86_64-openssl-1.0.1: 137 <<: *JOB 138 environment: 139 <<: [*OPENSSL_101, *X86_64, *BASE] 140 i686-openssl-1.1.0: 141 <<: *JOB 142 environment: 143 <<: [*OPENSSL_110, *I686, *BASE] 144 i686-openssl-1.0.2: 145 <<: *JOB 146 environment: 147 <<: [*OPENSSL_102, *I686, *BASE] 148 i686-openssl-1.0.1: 149 <<: *JOB 150 environment: 151 <<: [*OPENSSL_101, *I686, *BASE] 152 armhf-openssl-1.1.0: 153 <<: *JOB 154 environment: 155 <<: [*OPENSSL_110, *ARMHF, *BASE] 156 armhf-openssl-1.0.2: 157 <<: *JOB 158 environment: 159 <<: [*OPENSSL_102, *ARMHF, *BASE] 160 armhf-openssl-1.0.1: 161 <<: *JOB 162 environment: 163 <<: [*OPENSSL_101, *ARMHF, *BASE] 164 x86_64-libressl-2.5.0: 165 <<: *JOB 166 environment: 167 <<: [*LIBRESSL_250, *X86_64, *BASE] 168 x86_64-libressl-2.6.3: 169 <<: *JOB 170 environment: 171 <<: [*LIBRESSL_263, *X86_64, *BASE] 172 macos: 173 <<: *MACOS_JOB 174workflows: 175 version: 2 176 tests: 177 jobs: 178 - x86_64-openssl-1.1.0 179 - x86_64-openssl-1.0.2 180 - x86_64-openssl-1.0.1 181 - i686-openssl-1.1.0 182 - i686-openssl-1.0.2 183 - i686-openssl-1.0.1 184 - armhf-openssl-1.1.0 185 - armhf-openssl-1.0.2 186 - armhf-openssl-1.0.1 187 - x86_64-libressl-2.5.0 188 - x86_64-libressl-2.6.3 189 - macos 190