/
.travis.yml
88 lines (77 loc) · 2.85 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
# Adapted from rust-everwhere:
# https://github.com/japaric/rust-everywhere
#
# Changes:
# - no deb
# - no osx, 32-bit or ARM
# - darwin commented out for now
# - no ARM
language: rust
cache: cargo
services:
- docker
env:
global:
# This will be part of the release tarball
- PROJECT_NAME=rbspy
# AFAICT There are a few ways to set up the build jobs. This one is not the DRYest but I feel is the
# easiest to reason about.
# NOTE Make *sure* you don't remove a reference (&foo) if you are going to dereference it (*foo)
matrix:
include:
# stable channel
- 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
- musl
- musl-dev
- musl-tools
before_install:
- export PATH="$PATH:$HOME/.cargo/bin"
- sudo apt-get update
- sudo apt-get -y install perl
install:
- bash ci/install.sh
script:
- bash ci/script.sh
before_deploy:
- bash ci/before_deploy.sh
deploy:
provider: releases
# *REALLY* not production ready!
prerelease: true
# To generate key:
# - 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: g3yZvnK3m4hW2MNk6Nm2qVkgjL/hnNrsWwqvO7HvvD7VmQGWX2LBpNQE3plQsXhZeELdwWJuvYE5fp/rgjl3xS6/fRw/vpCvvfWB/Meq/YVoPJyq+FjXFLonkONhnJlIqvGohkRWZrAg0K+DBcu0+Db0uuQrjIrUG2TPNfETCRYKj90eJYChYQhqdxr0tv4SywpKZhR6AZqkvKkOMItM2kuCePEshtDJACj4OxWFXzCMEri1JZhqqdCqpYYsq/hqCcBlkey6tp4ul0d9qcNSaCRbWZlJ4Tli2h/K7MsfLVesSifisBVE/cdNvu7RxF1Ei01tivkT8Up69LM9JZdiBcmOrveOJd7Hd0R69R3Z3cGYvJiQq2svh6fqMIY0E/mLTfyuc+khJdf+zgr9tX3Qqa3HORyCDaDNVYws0HXEVpfNvmHrLeG3DWbtuYcFpKDbvcmN2fSuqvvxdhHrrSSwGhzD/dr4v3zq+xJUIS3qtS1lpu/kCcGmT9n7i73bFOyEOClCukPa//61/2W0KdBYJKU+jJaKljMJ3rNSbjH5DzYxBAbWgcywSebJwmcGTwourKJZsBoInCWLK6QXHuHrm6VcGJPO01JDHNuAXS5t7CY0Ju+ft6vbtOEaWykC4fbns2EuxOeLKA1U+KpjP4mQdpr/fV4bpMVAJyY9QO/FgVo=
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
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