• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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