|
| 1 | +language: rust |
| 2 | + |
| 3 | +os: |
| 4 | +- linux |
| 5 | +- osx |
| 6 | +#- windows |
| 7 | + |
| 8 | +rust: |
| 9 | +- stable |
| 10 | + |
| 11 | +script: | |
| 12 | + set -e |
| 13 | +
|
| 14 | + release=0 |
| 15 | + target= |
| 16 | + version= |
| 17 | +
|
| 18 | + if git name-rev --name-only HEAD | grep '^tags/v' &>/dev; then |
| 19 | + release=1 |
| 20 | + version="$(git describe --tags | sed 's/^v//')" |
| 21 | + fi |
| 22 | +
|
| 23 | + if [ "$release" = 1 ]; then |
| 24 | + if [ "$TRAVIS_OS_NAME" = 'linux' ]; then |
| 25 | + rustup target add x86_64-unknown-linux-musl |
| 26 | + target='--target x86_64-unknown-linux-musl' |
| 27 | + fi |
| 28 | +
|
| 29 | + sed "s/^version = \"0.0.1\"$/version = \"$version\"/" Cargo.toml > Cargo.toml.new |
| 30 | + mv Cargo.toml.new Cargo.toml |
| 31 | + cat Cargo.toml |
| 32 | + git add -A |
| 33 | + git commit -m "version $version" |
| 34 | + fi |
| 35 | +
|
| 36 | + rustup component add rustfmt-preview |
| 37 | + cargo fmt && git diff --quiet |
| 38 | + cargo build $target --release |
| 39 | + cargo test $target --release |
| 40 | +
|
| 41 | + mkdir target/upload |
| 42 | +
|
| 43 | + if [ "$release" = 1 ]; then |
| 44 | + if [ "$TRAVIS_OS_NAME" = 'linux' ]; then |
| 45 | + cp target/x86_64-unknown-linux-musl/release/csi target/upload/csi-linux-amd64 |
| 46 | + elif [ "$TRAVIS_OS_NAME" = 'osx' ]; then |
| 47 | + cp target/release/csi target/upload/csi-darwin-amd64 |
| 48 | + elif [ "$TRAVIS_OS_NAME" = 'windows' ]; then |
| 49 | + cp target/release/csi.exe target/upload/csi-windows.exe |
| 50 | + fi |
| 51 | +
|
| 52 | + if [ "$CRATES_API_KEY" != '' ] && [ "$TRAVIS_OS_NAME" = 'linux' ]; then |
| 53 | + cargo login "$CRATES_API_KEY" |
| 54 | + cargo publish |
| 55 | + fi |
| 56 | + fi |
| 57 | +
|
| 58 | +
|
| 59 | +env: |
| 60 | + global: |
| 61 | + secure: "CFx+HSe7rwA5oakoIP+xbUeqabLT3WsblrbEXSNKRl7VuD43Ets0LL43okswcQinpROxt727reEO0k7acUvJ9U6OaIeCt+jw6dwSx4/p+ueXC1wOB5Vrh4fDLyrQXInaBddx/Mj6iI7b6Nk0ZD+KFv+selj5Q7fwSryBFHD8FlUKonml+ECfBbRxD77NTf4FxxdflSfO2fUlRp9UlhE1goOPY9MIX2uA7h5JnnIjwni9YkJvafysQf2/BhvL+CJempqcw/GqGdJRPW8nMXhDBOM/ewIanKt2huzQJ661FBvJJznccDJtqE2c3FH+en+17RXpzAWK975sMximwQIpAQSY9A/DNiSPjs83D3aZcG8RAhdUtBjEItU5u9fHIhWprTPsNDA7c3AxJlcOS0oLBom8+Jv+/RwcQMW/dSK7uz91WAr2VPSxjHYI0IQx+NxWx9CtCy9yuFvjyhH5AJ+95IKdpCOtPr0b0CjSD0X2oBEwFIXt+8ANMunB5nyY1Tv8GvXIwUxTl7gyu2Qnq+agczuFzA08X5V9H5ovKoWtFMWJA1DG9DYam7RBTGVvJF7YEsjT2IWTvXODM1DXegQVjZI+C7axQOHdNwzkDGS5ZdbvtZSrHfjdv7G8P4oLyWy0+oJtl0i5w1Lz3dLHHxsnpo1YNPoO6rTWVjsP5kD8YP0=" |
| 62 | + |
| 63 | +deploy: |
| 64 | + provider: releases |
| 65 | + api_key: |
| 66 | + secure: bwzMowWoWUm34k6qp5z/GKcNh26bSwwfaL/pCBtN6SBFQO0Jo5ZI0BUa5bZAzM93tR70/QyThirxSxtKEa0dLZ9er9Hk854QFLKqG0OC8Hv5A0WS0BSEkecA4N/OpNOo7wjDkYIAKXC870ojIDVwZC7644lNBvBacAUHTvGaFu3+qO9o9qAEfVb6Z28r41cINUYm12qqVFcQrAO8SZgBOxMEhlx9p6aNeZ0vwJVUdcTNOn91pPvAjt1I+9Rcdfn/Sbg+DPNpf8IHCe0zKnXSIefJrdwWgUBgn/Bcj7d0yPFtxVgiOBhHT4kh6aK84L1pPIYi0/ULZmWM8SMaZLNM9BVA5N4y4gBYArxqNcR1/6kHgHe0rMAko8lRX8JP6jEov3p0MN1CO7zSOa2U/njZYqi93VMuAvvKiAR9lKfezVwvU2ER3EBjijCBPoaXmVmGrY8219pSMA62D+oJUBoc94d4AfjuunOcYrTfpwiWXftoXq5TPwOTsk2QQvyOczVLzqrGeOmYqa6nk+oQ5Hf0ukgC0lxL0pxhGv6q6tNKHSfkVWBRkM4pn2TZ04JqBvuovbL7Ctomd5uc46tGAqvnhqjUSbQ0BTK9BFpQPSBY6yQilvMz8ag6ARpmVpSyy4bOQZKiVXPIpQnc0RFiWqmi8d/EOXN0h9KS3NI1jP9/mP0= |
| 67 | + file: target/upload/* |
| 68 | + on: |
| 69 | + tags: true |
0 commit comments