aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 7ed3db14ec8d727c02a0cb33a9a467a5c1daf161 (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
sudo: false

language: rust

rust:
  - stable
  - beta
  - nightly

os:
  - linux
  - osx

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

matrix:
  allow_failures:
    - rust: beta
    - rust: nightly
    - os: osx

  # Clear the whole matrix
  exclude:
    - os: linux
    - os: osx
    - rust: stable
    - rust: beta
    - rust: nightly

  # Add each target manually
  # pattern shown below
  include:
    # WARNING Experimental target. Tests are executed using qemu user emulation, but this approach
    # may have problems when too many threads are spawned. Also, by the next Rust stable release,
    # this target will be replaced by `armv7-unknown-linux-gnueabihf`.
    - os: linux
      rust: stable
      env: TARGET=arm-unknown-linux-gnueabihf
      # Extra packages only for this build job
      addons:
        apt:
          packages:
            # Cross compiler and cross compiled C libraries
            - gcc-arm-linux-gnueabihf
            - libc6-armhf-cross
            - libc6-dev-armhf-cross
            # Emulator
            - qemu-user
    - os: linux
      rust: stable
      env: TARGET=i686-unknown-linux-gnu
      addons:
        apt:
          packages:
            # Cross compiler and cross compiled C libraries
            - gcc-multilib
    - os: linux
      rust: stable
      env: TARGET=x86_64-unknown-linux-gnu
    - os: linux
      rust: nightly
      env: TARGET=x86_64-unknown-linux-musl
    - os: osx
      rust: stable
      env: TARGET=i686-apple-darwin
    - os: osx
      rust: stable
      env: TARGET=x86_64-apple-darwin

install:
  - sh ci/install.sh

script:
  - sh ci/script.sh

before_deploy:
  - sh 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:
    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