diff options
| author | Nathan Jaremko | 2017-12-15 16:17:15 -0500 |
|---|---|---|
| committer | Nathan Jaremko | 2017-12-15 16:17:15 -0500 |
| commit | 2ab28a6dada467d2462ac249425fa2abf8b6c114 (patch) | |
| tree | 156a0f82b541a9c8a73c3518f730c2fd3b040741 /ci | |
| parent | c0b38deda139c64c9ad0dab6e10efcee2d3ef333 (diff) | |
| download | podcast-2ab28a6dada467d2462ac249425fa2abf8b6c114.tar.bz2 | |
Lets start adding tests
Diffstat (limited to 'ci')
| -rw-r--r-- | ci/install.sh | 58 | ||||
| -rw-r--r-- | ci/script.sh | 32 |
2 files changed, 90 insertions, 0 deletions
diff --git a/ci/install.sh b/ci/install.sh new file mode 100644 index 0000000..e3f904a --- /dev/null +++ b/ci/install.sh @@ -0,0 +1,58 @@ +# `install` phase: install stuff needed for the `script` phase + +set -ex + +. $(dirname $0)/utils.sh + +install_c_toolchain() { + case $TARGET in + aarch64-unknown-linux-gnu) + sudo apt-get install -y --no-install-recommends \ + gcc-aarch64-linux-gnu libc6-arm64-cross libc6-dev-arm64-cross + ;; + *) + # For other targets, this is handled by addons.apt.packages in .travis.yml + ;; + esac +} + +install_rustup() { + curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain=$TRAVIS_RUST_VERSION + + rustc -V + cargo -V +} + +install_standard_crates() { + if [ $(host) != "$TARGET" ]; then + rustup target add $TARGET + fi +} + +configure_cargo() { + local prefix=$(gcc_prefix) + + if [ ! -z $prefix ]; then + # information about the cross compiler + ${prefix}gcc -v + + # tell cargo which linker to use for cross compilation + mkdir -p .cargo + cat >>.cargo/config <<EOF +[target.$TARGET] +linker = "${prefix}gcc" +EOF + fi +} + +main() { + install_c_toolchain + install_rustup + install_standard_crates + configure_cargo + + # TODO if you need to install extra stuff add it here +} + +main + diff --git a/ci/script.sh b/ci/script.sh new file mode 100644 index 0000000..e97aa45 --- /dev/null +++ b/ci/script.sh @@ -0,0 +1,32 @@ +# `script` phase: you usually build, test and generate docs in this phase + +set -ex + +. $(dirname $0)/utils.sh + +# NOTE Workaround for rust-lang/rust#31907 - disable doc tests when cross compiling +# This has been fixed in the nightly channel but it would take a while to reach the other channels +disable_cross_doctests() { + if [ $(host) != "$TARGET" ] && [ "$TRAVIS_RUST_VERSION" = "stable" ]; then + if [ "$TRAVIS_OS_NAME" = "osx" ]; then + brew install gnu-sed --default-names + fi + find src -name '*.rs' -type f | xargs sed -i -e 's:\(//.\s*```\):\1 ignore,:g' + fi +} + +run_test_suite() { + cargo clean --target $TARGET --verbose + cargo build --target $TARGET --verbose + cargo test --target $TARGET --verbose + + # sanity check the file type + file target/$TARGET/debug/podcast +} + +main() { + # disable_cross_doctests + run_test_suite +} + +main |
