aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 113e1b9156fef8c9d9d311508b55ce920715c892 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
sudo: false

language: generic

env:
  global:
    # This will be part of the release tarball
    - PROJECT_NAME=ilc

matrix:
  include:
    # Stable channel
    - os: linux
      env: TARGET=arm-unknown-linux-gnueabihf CHANNEL=stable
      # Extra packages only for this job
      addons:
        apt:
          packages: &arm_unknown_linux_gnueabihf
            # Cross compiler and cross compiled C libraries
            - gcc-arm-linux-gnueabihf
            - libc6-armhf-cross
            - libc6-dev-armhf-cross
            # Emulator
            - qemu-user
    - os: osx
      env: TARGET=i686-apple-darwin CHANNEL=stable
    - os: linux
      env: TARGET=i686-unknown-linux-gnu CHANNEL=stable
      addons:
        apt:
          packages: &i686_unknown_linux_gnu
            # Cross compiler and cross compiled C libraries
            - gcc-multilib
    - os: osx
      env: TARGET=x86_64-apple-darwin CHANNEL=stable
    - os: linux
      env: TARGET=x86_64-unknown-linux-gnu CHANNEL=stable
    - os: linux
      env: TARGET=x86_64-unknown-linux-musl CHANNEL=stable
    # Beta channel
    - os: linux
      env: TARGET=arm-unknown-linux-gnueabihf CHANNEL=beta
      addons:
        apt:
          # Use the same packages the stable version uses
          packages: *arm_unknown_linux_gnueabihf
    - os: osx
      env: TARGET=i686-apple-darwin CHANNEL=beta
    - os: linux
      env: TARGET=i686-unknown-linux-gnu CHANNEL=beta
      addons:
        apt:
          packages: *i686_unknown_linux_gnu
    - os: osx
      env: TARGET=x86_64-apple-darwin CHANNEL=beta
    - os: linux
      env: TARGET=x86_64-unknown-linux-gnu CHANNEL=beta
    - os: linux
      env: TARGET=x86_64-unknown-linux-musl CHANNEL=beta
    # Nightly channel
    - os: linux
      env: TARGET=arm-unknown-linux-gnueabihf CHANNEL=nightly
      addons:
        apt:
          # Use the same packages the stable version uses
          packages: *arm_unknown_linux_gnueabihf
    - os: osx
      env: TARGET=i686-apple-darwin CHANNEL=nightly
    - os: linux
      env: TARGET=i686-unknown-linux-gnu CHANNEL=nightly
      addons:
        apt:
          packages: *i686_unknown_linux_gnu
    - os: osx
      env: TARGET=x86_64-apple-darwin CHANNEL=nightly
    - os: linux
      env: TARGET=x86_64-unknown-linux-gnu CHANNEL=nightly
    - os: linux
      env: TARGET=x86_64-unknown-linux-musl CHANNEL=nightly
  allow_failures:
    # NOTE This target appears to be broken on Rust 1.7.0
    # TODO You may want to remove this entry by the time Rust 1.8.0 is out
    - os: linux
      env: TARGET=arm-unknown-linux-gnueabihf CHANNEL=stable

install:
  - export PATH="$PATH:~/multirust/bin"
  - bash ci/install.sh

script:
  - bash ci/script.sh

before_deploy:
  - bash ci/before_deploy.sh

deploy:
  provider: releases
  # - Go to 'https://github.com/settings/tokens/new' and generate a Token with only the
  # `public_repo` scope enabled
  # - Call `travis encrypt $github_token` where $github_token is the token you got in the previous
  # step and `travis` is the official Travis CI gem (see https://rubygems.org/gems/travis/)
  # - Enter the "encrypted value" below
  api_key:
    secure: BnQxKEtnxUL6K8T8WHsmC09KgTZho22z5MBlVEcX+glHMLkzehCs+LaiXQ0lsvs8Z7ngxEs+FG4qfCXtMeFJh3n4tzTYAe9xvNFhieRZKUKkkycNTTraRL1Pzpj7i+dT3/OG+vSMhgwa+I6gZwuPVHkcY1EU8fdzI95R7SLJJREM/yAE5/seYZNxA0TX4BiZIZksg+bzwSr1WJEsX0N9rv3ANqkemjMvHkeYQb6dogo8iIIBG03L/OKvuHELsdVdiyiIdq2YU62x3wPQc2w/StDkrk+dq5eMW9H7Gh0MqDGF4ZKkWlQzrxPxJnJBbWRPcKczRgGMXeIXKfBU52Pn4L92dRC7RpJmKOVZwDgyeqNLXvHYiMpL0NH3DU3V2LFpVNHJtK3f6hsVPBS0w00kpg7iQhN5EejHe7GlD6SF41J2W53XsN1+5qmNew+El+Ugnk7Jp4GFDPpYAR5u9FW7GAChGTyFjBkAOYGlnl9ZrtMC53+pPuDtGwywszf7+MXpB2HmSWy/eC1tnEE9tZt9rAVO0BTM1gCPkvDNA0czvA76gwNphEG7QCADI89WiGiVDruOGrMpF7Yi6NavmfQUwflMI2vZ+rqeBhVocK9pYLd/lg3yXyue//EejW+BE42R+IbB3OfFGgpK1+oHnbWr8UobwD3sa3iKJo232wPKozU=
  file: ${PROJECT_NAME}-${TARGET}.tar.gz
  # don't delete the artifacts from previous phases
  skip_cleanup: true
  # deploy when a new tag is pushed
  on:
    condition: $TRAVIS_RUST_VERSION = stable
    tags: true

branches:
  only:
    # Pushes and PR to the master branch
    - master
    # IMPORTANT Ruby regex to match tags. Required, or travis won't trigger deploys when a new tag
    # is pushed. This regex matches semantic versions like v1.2.3-rc4+2016.02.22
    - /^v\d+\.\d+\.\d+.*$/

notifications:
  email:
    on_success: never