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 | 
