summaryrefslogtreecommitdiffstats
path: root/ci/before_deploy.sh
blob: 05ec68c57e3d8df143a1e4c6f921d5017a45dc51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# This script takes care of building your crate and packaging it for release

set -ex

main() {
  # We run tests only once, and won't try to create any additional artifacts
  if [ -n "$ENABLE_TESTS" ]; then
    return
  fi
  
    local src=$(pwd) \
          stage=

    case $TRAVIS_OS_NAME in
        linux)
            stage=$(mktemp -d)
            ;;
        osx)
            stage=$(mktemp -d -t tmp)
            ;;
    esac

    test -f Cargo.lock || cargo generate-lockfile

    cross rustc --bin $CRATE_NAME --target $TARGET --release -- -C lto

    strip target/$TARGET/release/$CRATE_NAME
    cp target/$TARGET/release/$CRATE_NAME $stage/

    cd $stage
    tar czf $src/$CRATE_NAME-$TRAVIS_TAG-$TARGET.tar.gz *
    cd $src

    rm -rf $stage
}

main