2019-07-16 00:41:50 -04:00
|
|
|
# Based on the "trust" template v0.1.2
|
|
|
|
# https://github.com/japaric/trust/tree/v0.1.2
|
|
|
|
|
|
|
|
dist: trusty
|
|
|
|
language: rust
|
|
|
|
services: docker
|
|
|
|
sudo: required
|
|
|
|
|
|
|
|
# TODO Rust builds on stable by default, this can be
|
|
|
|
# overridden on a case by case basis down below.
|
|
|
|
|
|
|
|
env:
|
|
|
|
global:
|
|
|
|
# TODO Update this to match the name of your project.
|
|
|
|
- CRATE_NAME=wireguard-proxy
|
2019-12-16 14:23:12 -05:00
|
|
|
- OPENSSL_STATIC=1
|
|
|
|
- CARGO_FEATURES=openssl_vendored
|
2019-07-16 00:41:50 -04:00
|
|
|
|
|
|
|
matrix:
|
|
|
|
# TODO These are all the build jobs. Adjust as necessary. Comment out what you
|
|
|
|
# don't need
|
|
|
|
include:
|
|
|
|
# Android
|
|
|
|
- env: TARGET=aarch64-linux-android DISABLE_TESTS=1
|
|
|
|
- env: TARGET=arm-linux-androideabi DISABLE_TESTS=1
|
|
|
|
- env: TARGET=armv7-linux-androideabi DISABLE_TESTS=1
|
|
|
|
- env: TARGET=i686-linux-android DISABLE_TESTS=1
|
|
|
|
- env: TARGET=x86_64-linux-android DISABLE_TESTS=1
|
|
|
|
|
|
|
|
# iOS
|
|
|
|
- env: TARGET=aarch64-apple-ios DISABLE_TESTS=1
|
|
|
|
os: osx
|
2019-12-16 14:23:12 -05:00
|
|
|
- env: TARGET=armv7-apple-ios DISABLE_TESTS=1 CARGO_FEATURES=default
|
2019-07-16 00:41:50 -04:00
|
|
|
os: osx
|
2019-12-16 14:23:12 -05:00
|
|
|
- env: TARGET=armv7s-apple-ios DISABLE_TESTS=1 CARGO_FEATURES=default
|
2019-07-16 00:41:50 -04:00
|
|
|
os: osx
|
2019-12-16 14:23:12 -05:00
|
|
|
- env: TARGET=i386-apple-ios DISABLE_TESTS=1 CARGO_FEATURES=default
|
2019-07-16 00:41:50 -04:00
|
|
|
os: osx
|
2019-12-16 14:23:12 -05:00
|
|
|
- env: TARGET=x86_64-apple-ios DISABLE_TESTS=1 CARGO_FEATURES=default
|
2019-07-16 00:41:50 -04:00
|
|
|
os: osx
|
|
|
|
|
|
|
|
# Linux
|
|
|
|
- env: TARGET=aarch64-unknown-linux-gnu
|
|
|
|
- env: TARGET=arm-unknown-linux-gnueabi
|
|
|
|
- env: TARGET=armv7-unknown-linux-gnueabihf
|
|
|
|
- env: TARGET=i686-unknown-linux-gnu
|
|
|
|
- env: TARGET=i686-unknown-linux-musl
|
|
|
|
- env: TARGET=mips-unknown-linux-gnu
|
|
|
|
- env: TARGET=mips64-unknown-linux-gnuabi64
|
|
|
|
- env: TARGET=mips64el-unknown-linux-gnuabi64
|
|
|
|
- env: TARGET=mipsel-unknown-linux-gnu
|
|
|
|
- env: TARGET=powerpc-unknown-linux-gnu
|
|
|
|
- env: TARGET=powerpc64-unknown-linux-gnu
|
|
|
|
- env: TARGET=powerpc64le-unknown-linux-gnu
|
|
|
|
- env: TARGET=s390x-unknown-linux-gnu DISABLE_TESTS=1
|
|
|
|
- env: TARGET=x86_64-unknown-linux-gnu
|
|
|
|
- env: TARGET=x86_64-unknown-linux-musl
|
|
|
|
|
|
|
|
# OSX
|
|
|
|
- env: TARGET=i686-apple-darwin
|
|
|
|
os: osx
|
|
|
|
- env: TARGET=x86_64-apple-darwin
|
|
|
|
os: osx
|
|
|
|
|
|
|
|
# *BSD
|
2019-12-16 14:23:12 -05:00
|
|
|
# travis-ci freebsd is broken now for some reason
|
2019-12-15 19:28:32 -05:00
|
|
|
# - env: TARGET=i686-unknown-freebsd DISABLE_TESTS=1
|
|
|
|
# - env: TARGET=x86_64-unknown-freebsd DISABLE_TESTS=1
|
2019-12-16 14:23:12 -05:00
|
|
|
# netbsd fails with vendored openssl, but built in one is fine
|
|
|
|
- env: TARGET=x86_64-unknown-netbsd DISABLE_TESTS=1 CARGO_FEATURES=tls
|
2019-07-16 00:41:50 -04:00
|
|
|
|
|
|
|
# Windows
|
2019-12-16 14:23:12 -05:00
|
|
|
- env: TARGET=x86_64-pc-windows-gnu CARGO_FEATURES=default
|
2019-07-16 00:41:50 -04:00
|
|
|
|
|
|
|
# Bare metal
|
|
|
|
# These targets don't support std and as such are likely not suitable for
|
|
|
|
# most crates.
|
|
|
|
# - env: TARGET=thumbv6m-none-eabi
|
|
|
|
# - env: TARGET=thumbv7em-none-eabi
|
|
|
|
# - env: TARGET=thumbv7em-none-eabihf
|
|
|
|
# - env: TARGET=thumbv7m-none-eabi
|
|
|
|
|
|
|
|
# Testing other channels
|
|
|
|
- env: TARGET=x86_64-unknown-linux-gnu
|
|
|
|
rust: nightly
|
|
|
|
- env: TARGET=x86_64-apple-darwin
|
|
|
|
os: osx
|
|
|
|
rust: nightly
|
|
|
|
|
|
|
|
before_install:
|
|
|
|
- set -e
|
|
|
|
- rustup self update
|
|
|
|
|
|
|
|
install:
|
|
|
|
- sh ci/install.sh
|
|
|
|
- source ~/.cargo/env || true
|
|
|
|
|
|
|
|
script:
|
|
|
|
- bash ci/script.sh
|
|
|
|
|
|
|
|
after_script: set +e
|
|
|
|
|
|
|
|
before_deploy:
|
|
|
|
- sh ci/before_deploy.sh
|
|
|
|
|
|
|
|
deploy:
|
|
|
|
# TODO update `api_key.secure`
|
|
|
|
# - Create a `public_repo` GitHub token. Go to: https://github.com/settings/tokens/new
|
|
|
|
# - Encrypt it: `travis encrypt 0123456789012345678901234567890123456789
|
|
|
|
# - Paste the output down here
|
|
|
|
api_key:
|
|
|
|
secure: $GITHUB_OAUTH
|
|
|
|
file_glob: true
|
2019-12-16 22:33:26 -05:00
|
|
|
file: $CRATE_NAME-$TRAVIS_TAG-$TARGET*
|
2019-07-16 00:41:50 -04:00
|
|
|
on:
|
|
|
|
# TODO Here you can pick which targets will generate binary releases
|
|
|
|
# In this example, there are some targets that are tested using the stable
|
|
|
|
# and nightly channels. This condition makes sure there is only one release
|
|
|
|
# for such targets and that's generated using the stable channel
|
|
|
|
condition: $TRAVIS_RUST_VERSION = stable
|
|
|
|
tags: true
|
|
|
|
provider: releases
|
|
|
|
skip_cleanup: true
|
|
|
|
|
|
|
|
cache: cargo
|
|
|
|
before_cache:
|
|
|
|
# Travis can't cache files that are not readable by "others"
|
|
|
|
- chmod -R a+r $HOME/.cargo
|
|
|
|
|
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
# release tags
|
|
|
|
- /^v\d+\.\d+\.\d+.*$/
|
|
|
|
- master
|
|
|
|
- travis
|
|
|
|
- ci
|
2019-12-16 02:21:16 -05:00
|
|
|
- openssl
|
2019-07-16 00:41:50 -04:00
|
|
|
|