-
Notifications
You must be signed in to change notification settings - Fork 42
/
.travis.yml
122 lines (112 loc) · 3.44 KB
/
.travis.yml
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
language: rust
cache: cargo
env:
global:
- PROJECT_NAME=clog
- MAKE_DEB=no
matrix:
include:
# Stable channel
- os: linux
rust: stable
env: TARGET=aarch64-unknown-linux-gnu
# need Trusty because the glibc in Precise is too old and doesn't support 64-bit arm
dist: trusty
sudo: required
# Extra packages only for this job
addons:
apt:
packages: &aarch64_unknown_linux_gnu
# Transparent emulation
- qemu-user-static
- binfmt-support
- os: linux
rust: stable
env: TARGET=armv7-unknown-linux-gnueabihf
# sudo is needed for binfmt_misc, which is needed for transparent user qemu emulation
sudo: required
addons:
apt:
packages: &armv7_unknown_linux_gnueabihf
# Cross compiler and cross compiled C libraries
- gcc-arm-linux-gnueabihf
- libc6-armhf-cross
- libc6-dev-armhf-cross
# Transparent emulation
- qemu-user-static
- binfmt-support
- os: osx
rust: stable
env: TARGET=i686-apple-darwin
- os: linux
rust: stable
env: TARGET=i686-unknown-linux-gnu
addons:
apt:
packages: &i686_unknown_linux_gnu
# Cross compiler and cross compiled C libraries
- gcc-multilib
- os: linux
rust: stable
env: TARGET=i686-unknown-linux-musl
dist: trusty
sudo: required
addons:
apt:
packages: &musl_packages
- musl
- musl-dev
- musl-tools
- os: osx
rust: stable
env: TARGET=x86_64-apple-darwin
- os: linux
rust: stable
env: TARGET=x86_64-unknown-linux-gnu
- os: linux
rust: stable
env: TARGET=x86_64-unknown-linux-musl
dist: trusty
sudo: required
addons:
apt:
packages: *musl_packages
before_install:
- export PATH="$PATH:$HOME/.cargo/bin"
install:
- bash ci/install.sh
script:
- bash ci/script.sh
before_deploy:
- bash ci/before_deploy.sh
deploy:
provider: releases
# TODO Regenerate this api_key for your project, this one won't work for you. Here's how:
# - 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: mcJ3TSKmf0doqku0CQMbUaBvLR1d5rwLlTlPPEf2DP5AZomBJqKxDzCFVZDRKeTEh4vqZj64TxVI4rjDxK7I+O4UqZXd3biEw7CTYWk/ZR9gxjbFe4/B1s6jggkF2T95skiKnw0www94jD3goyrX9rP7ylBnmu17RmSNgyRvL3U=
file_glob: true
file: ${PROJECT_NAME}-${TRAVIS_TAG}-${TARGET}.*
# don't delete the artifacts from previous phases
skip_cleanup: true
# deploy when a new tag is pushed
on:
# channel to use to produce the release artifacts
# NOTE make sure you only release *once* per target
# TODO you may want to pick a different channel
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