aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Aparicio <japaricious@gmail.com>2017-04-11 23:12:06 -0500
committerJorge Aparicio <japaricious@gmail.com>2017-04-11 23:19:14 -0500
commit6af1873922edefaae93159cda6bba08884f0bb60 (patch)
tree806c65ce71375fbbb371180382bca969720c7fa8
parent5ae7d5f6e0171eaf7796ed89e5778b78f691d654 (diff)
add CI
-rw-r--r--.travis.yml46
-rw-r--r--ci/install.sh27
-rw-r--r--ci/script.sh13
3 files changed, 86 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..e9eb90c
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,46 @@
+# Based on the "trust" template v0.1.1
+# https://github.com/japaric/trust/tree/v0.1.1
+
+dist: trusty
+language: rust
+services: docker
+sudo: required
+
+matrix:
+ include:
+ - env: TARGET=x86_64-unknown-linux-gnu
+ rust: nightly
+ - env: TARGET=thumbv6m-none-eabi
+ rust: nightly
+ - env: TARGET=thumbv7m-none-eabi
+ rust: nightly
+ - env: TARGET=thumbv7em-none-eabi
+ rust: nightly
+ - env: TARGET=thumbv7em-none-eabihf
+ rust: nightly
+
+before_install: set -e
+
+install:
+ - sh ci/install.sh
+ - source ~/.cargo/env || true
+
+script:
+ - bash ci/script.sh
+
+after_script: set +e
+
+cache: cargo
+before_cache:
+ # Travis can't cache files that are not readable by "others"
+ - chmod -R a+r $HOME/.cargo
+
+branches:
+ only:
+ # release tags
+ - /^v\d+\.\d+\.\d+.*$/
+ - master
+
+notifications:
+ email:
+ on_success: never
diff --git a/ci/install.sh b/ci/install.sh
new file mode 100644
index 0000000..748ad9a
--- /dev/null
+++ b/ci/install.sh
@@ -0,0 +1,27 @@
+set -ex
+
+main() {
+ local target=
+ if [ $TRAVIS_OS_NAME = linux ]; then
+ target=x86_64-unknown-linux-musl
+ sort=sort
+ else
+ target=x86_64-apple-darwin
+ sort=gsort # for `sort --sort-version`, from brew's coreutils.
+ fi
+
+ # This fetches latest stable release
+ local tag=$(git ls-remote --tags --refs --exit-code https://github.com/japaric/cross \
+ | cut -d/ -f3 \
+ | grep -E '^v[0.1.0-9.]+$' \
+ | $sort --version-sort \
+ | tail -n1)
+ curl -LSfs https://japaric.github.io/trust/install.sh | \
+ sh -s -- \
+ --force \
+ --git japaric/cross \
+ --tag $tag \
+ --target $target
+}
+
+main
diff --git a/ci/script.sh b/ci/script.sh
new file mode 100644
index 0000000..9f83f3f
--- /dev/null
+++ b/ci/script.sh
@@ -0,0 +1,13 @@
+set -ex
+
+main() {
+ if [ $TARGET = x86_64-unknown-linux-gnu ]; then
+ cargo test
+ return
+ fi
+
+ cross build --target $TARGET
+ cross build --target $TARGET --release
+}
+
+main