diff --git a/.travis.yml b/.travis.yml
index 15083598be4e0726fba9aa4840687cef44533d82..6fd8524c7700b6135599834c4beed11ee3d2a348 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,12 +1,17 @@
 language: rust
+env:
+  -
+  - TARGET=aarch64-unknown-linux-gnu
+  - TARGET=x86_64-unknown-redox
 rust:
   - nightly
 cache: cargo
 before_script:
   - rustup component add rustfmt-preview
-  - rustup target add x86_64-unknown-redox
-  - rustup target add aarch64-unknown-linux-gnu
+  - if [ -n "$TARGET" ]; then rustup target add $TARGET; fi
 script:
-  - bash ./ci.sh
+  - ./fmt.sh -- --write-mode=diff
+  - cargo build $([ -n "$TARGET" ] && echo --target="$TARGET")
+  - if [ -z "$TARGET" ]; then ./test.sh; fi
 notifications:
   email: false
diff --git a/ci.sh b/ci.sh
deleted file mode 100755
index fd7dd91a480ac2b1f8ee9d3230b3210b3367440d..0000000000000000000000000000000000000000
--- a/ci.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-set -ex
-
-./fmt.sh -- --write-mode=diff
-./test.sh
-cargo build --target=x86_64-unknown-redox
-if [ $(arch) == "x86_64" ]
-then
-    cargo build --target=aarch64-unknown-linux-gnu
-else
-    cargo build --target=x86_64-unknown-linux-gnu
-fi