forked from conveyal/r5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
80 lines (67 loc) · 7.63 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
language: java
# Oracle JDK is EOL, use OpenJDK 8
jdk:
- openjdk8
# Maven semantic-release uses v10 now
node_js:
- 10
# Replace Travis's default Maven installation step with a no-op.
# This avoids redundantly pre-running 'mvn install -DskipTests' every time.
install: true
# Decrypt and import the artifact signing certificate before running the build
before_install: |
# Only install signing keys for later deployment when safe (when we're building a non-third-party commit)
if [[ $TRAVIS_SECURE_ENV_VARS = true ]]; then
openssl aes-256-cbc -K $encrypted_e5d28768eb0e_key -iv $encrypted_e5d28768eb0e_iv -in maven-artifact-signing-key.asc.enc -out maven-artifact-signing-key.asc -d
gpg --import --batch maven-artifact-signing-key.asc
fi
# install dependencies used in after_success here because they don't get cached if called in after_success
before_script:
- pip install --user awscli && export PATH=$PATH:~/.local/bin/
- yarn global add @conveyal/maven-semantic-release semantic-release@15 --ignore-engines
# Replace Travis's default build step.
# Run all Maven phases at once up through verify, install, and deploy.
script: |
# Only (attempt to) deploy when safe (when we're building a non-third-party commit)
if [[ $TRAVIS_SECURE_ENV_VARS = true ]]; then
mvn clean deploy --settings maven-settings.xml
else
# Otherwise, just run all the way up to verify, the last phase before installing and deploying.
# Setting the gpg.skip property avoids signing artifacts when the encryption keys are not available.
mvn clean verify --settings maven-settings.xml -B -V -Dgpg.skip
fi
# Secure envs are OSSRH_JIRA_USERNAME, OSSRH_JIRA_PASSWORD, GPG_KEY_NAME, GPG_PASSPHRASE
# Then the credentials for an IAM account that is allowed to write to the R5-builds buckets on S3
env:
global:
- secure: "Lq5/28PPPjDnXnzJ1S4A0oWRrV/YzOvsEkNOSqXtwZ6lciBGvkqnuQu8NrybO0JZSRV4OiHzibjZfzI9CoT1CP8nft0GHBqxYlWFHANrDyx03z3u2Aj60B8EiWV1L8Hi6kKWuqNwXVXF1if0xlMESXvjzpqweqfWzNG9y+9+BPtVHvf8yw+InEte31v0Fb3FBTsWIArfuioZ4e2SA6fOEuDumHR2n6yMMAApGqYaWfYjq8D8VjTJ4qoFJbbjf8Jfo4a7AejD5dWy/ncnOzjI2HyChdRoY1nPFV5le48AZmqFV/ygQ8cxEOYUuVlKOL5SN4/Xj0V5txQzHgmL1CAY9OVCv6gkWtSpaFFdYa+5VT1Ax4FBjxWPQY4wB5fuUUwToR5tonqxysNa/dNRlWKFOjoPk/1Vq0Nex/Zc1eKDvS9DNB6Lqn0901+Z90niYHZ8LWc2QCorheIJokgl9vbnyyPyuVrPIFayRxXd491ZNTO4R5gVY8r25m5lJsaY2foP35zhof7643PPJbEtS1S/kN+hnx/9yBD5j2KrKFvFDLgNqPq02E5Q6X1ysJrvWw56o3FaSk8HH/FpWLXabcGa1znmYCpOXQpop+IOB6vkdBGUoHUc+Pc0PFzlxRNYvaEuA/6+m5du2n47Jd+S9Nc4IxF0tMkgKXornGJYOJ7SQo4="
- secure: "eLDSKT8vWsMMRosSKLXhop2FFrBOTo6+keHkIcNRQjoa9C2uDxFBio2ZLR8mQPP2FWv3O6/wiysu8S7zhDSEtiT/pf4KPoQStQseqpU2cLW2uWzxHDE19MKGP6Tntd9Qd6c+aZUY/7o3cubwIS5WdFRo6WEx1cTodR+rIyZd2wbh/r6VNdCSdYGuRfCyf5RWQ0dZ1zvWURvdWl1Z5vfCGBDJ/HeH32keaQOOBucizeQ4llFRzjjvnk9gV02549ZqTuFc6zvM0nGzt8bkazaBMzkOIyEyCA8cxSV97C6uK1kjVjhBz6K3blOiDzdPBG5mFpI8dAiUV44y1IrIbG6ZTwr64+Ugk9p7Y4gr/Y6VcyhW00pl0T9s1AEmYITI5bIixkRkdDH//+2kW7E/oNf8arJv31TzQL1+gFkwIpRXqwOG06d97y6YTzDHvugGBDKG5mI2PLiA3KCd5THVs9OWcDWz5/bp+lyNnVa+pc5iwBMHx1i4q6mFnwr51bskAF2QV1OuUEJeAXMUalpu5t8JCyxr71MMf/q76pPtLAm0GD/pI1oxkoZ1b7Y4iU9SsCAt0kvcD/oFkpRYU4gn97AZzbWq4PbbFb1qjSZXdUox7I+07X2vIbfYxCn0nCJLVsRKzt3B1WHPj3NXP8xoUcPXXtkjoIpky+IlL1lrJZvnAw0="
- secure: "WM0ob9n5IjZos2+M10l02B6SnMy09Q9PeMV1k994VdyO5TXx5ME2V2IKjuSizRACBRGd8imly8XXND1bC00diqxoRjQTgCFtXpkcoTysBCWSmXsnqrzDB2aQDpfstTLFz2PpMi7OFj+Dcy3UGgDPRLebC3XM+6nP8HhhCIs9oR1llxhnIFe9JcBXfBht93zwS9RnyVeoIQlM7QokIzPtZTGZiOEPUEeJDmrynGmU02mORznzuGosoUgTXE9pBb9WuDBBKWh8aKz3SbYQ3UpK4TZAS21X1ExEkg/frVDrv2Xjv3wEQtv/t1GITyWJpNGU5YzEGMXBZS9ltaDYq82nVOFt7qLezNDV8KI66roujv015xq+GKbjGXG16dnSHcBwVvKJSlYJZLWC4VYhab48IrWw7pAfuqsjZe7dKAWbW9CGs7PgM95oOn/jIXOLhgb6H9VS5OvB5oMnbGlS2+Uj023VrftSGO5mqG7cqkQ4m+dN9puJBhIowrEzGnytF30hoiTutgYKjK5K+LTTEAacYgNVdMmKXFl25a5iGjv6cGOhNUp2vEC5n9a2N+Yog8qGFbrjKdNgtHGmXrxgGPtvGYV+TuJxSP9S318l/iyVMQzra/mAc+mqxLQ5Pj4gAdi2zpw0WGZAcYWXiNBJf1NRaHaVtDNEYOuyc59PYKV4BKU="
- secure: "xouAUfJoFUHv6ipBwC2KfwF80nE46tqz/Jl1YQOxO4H2lVyD83LJzHUP1Ydx48ViYYKUdELobc2HB4NIC19nXSZjOJj8bMK0zG2tWuSKG7sqZqu+r8P/PAWV/7SWCFJpRDbhyWbRQMDk1xePBI7vo6D/bTT88OeVYBPaXfOSYBVXFgBm0CaEzBny8ucVppIcKlXljEBrr2DJK4rJEzQbD59LUMuRT1i0mYqgwyuLo/+eDzfKWMH3c/Lo5Deq5IwYIGJ8E+kEL5WbiMl+8E4Bx0EqTwFDn2ykmrabAXnX4m/9Y+zxgyRodKeTD+KhO8j91u3XmqpT6GzsqVMyusgtcqQdwSc7YkKJK0iyhz9gwNtwdxKjPJ2TpDJH9irjGTC21HNTOKfEAP2k+WjtNVdBtZ9tBBWaw9nUy8Hcksx0gxWip6wIx4VSylJLuE8DYHZ8PXJAr09duBAqZrDgU7YC+tQ6/8rF7m7FFFMvvfBYvAu2ucigzrSlvgANpT1Nfvv8P9BOiBp+wkYim959q17nwSeJTl0OJy8FrzPzyl1Nr/Qh8IUHWjujbm56VZ1xgRS20tnV3pJEt64TH3lp16iP6J00dN4U85f4dqZSJYd/MRwLNzt7Ie3JKKiBguuq2Jk4cJawVvWPyLVMcCUZj+zX1zlTKrHvXEBcu6G9isAHtCU="
- secure: "ti0pCe4W0mbc/wYrcAbemHYQFUGaCrPDPjHvaD2rU5Xyd7a1Z/p2aIPvApg+YtnUKXr7X718fFWGmz+U0kQgDfv05ZiRQeaSX8cQ2jWUxQurTax7EhqWjh6loxbKwZlKKjritDlcyS9/kwHxNQdTPNcmcHvM+7l+J8mndwhPs9Si9ln+FLALEgilDMRZwqqhpVkejZ3LQMJmvD7SGqz4kthlieSMo5m7AvwY3Kjs1o7d3ll9dRuOdt7rZHvIzXe7aH0RfhizrmDuxLLlLAxzonomxaPRtOj/qq3arpn+iVlXYjkO5A9nAAdJi6VYBO9Em+Ru0jMRuh57PjSpy6KngqywUBXvmZ6wTUyXthL0+VSqn/G4u6edQDewMINUQUfEfHiFY5y+oDUGlYll4J2T0T1eO6hTo03KfqUUF8Fz9T8dnIld8OLiqjF/uEAXmuOPWZIPtYekoZE4QSAaulDm8168ksXefWnUODBN/94kUxewNDFrpUVhL8QHTBU8oRlwMIhsudeFiCM3HZ+XlvjVSv4QoePiCOQVxdy5Od3M0xSNCFsgoW4fEzfQavjPUQm8HKUyLKjjMbxOQXjk2BdqBv3BdkMDja15wesf6BzFsZf/iSAKwKYW6OeeFPw+sXMvxtCi4xFD3y34tHeXYbaMtMpFDRKMlman56ujR/Cd+EI="
- secure: "dw6bS2P1iaoUaJKo18EtfwpycfcjDWbo7uhUegrA5CGUXnk5o3D7j0yz9uNwvxUByOWq8qRWoz/Y6rUC6cwrV596O/H3mk8Z+YU8kYHUptBJOSch3NtpyBFdc8ry4tV7qtW4Fg4WAcZWzGyT7KiKA532vXLWweHKKv/YqxscLneSgchBOCT2DnG0+mvDoQ+TB8kODo4AjSaSpciIhpq0EqagrJppRUW0DL2m8MYOmqjnMURaPkPqv4XRIdRDQH0d1CUgNDOM4l3ZrCTRFdZHOeryiLujLLtiTF1K7d1bFC6kS7WVEdqLJzOs2NGwVS8s/4dgc4GVHOwx8SJLor3sfzduh4Jk1YT46SMBHwwP3K4vsAIaw2NOu0ewjufC/LH1ZjfBeouS5sx7R4cCcPsEJr0hmg1jgFtTOIJrvINNl936eMLAG4maICXveGOrWmKflFKL8EiaO5E3p1NRCJkL/Yt27BL+kNz5GLByIfLS+CqsSBySG3WM5QrUw2EKpjWE6gqRml7o0c1Jmn+9yDLQhWtJ0JLN7Y3pP4HDtBgCO1WgN/0YAWdCc0e968gY9NeSm1SYZkUmpkWSMYb88kpjjQRW6BlDh1O+jnYa66o1GgmpI2XoBc6edDLg998nKzsbGFCuiwkLPO+Ccqk3vAlED0ZpoDt44cUn4Pl9ZBcpFe0="
# Wipe out all the Conveyal artifacts in the local Maven repo before they get cached.
# This forces download of fresh SNAPSHOT artifacts on the next build.
before_cache: rm -rf $HOME/.m2/repository/com/conveyal
after_success:
# Perform a release to maven central using maven-semantic-release if needed
- semantic-release --prepare @conveyal/maven-semantic-release --publish @semantic-release/github,@conveyal/maven-semantic-release --verify-conditions @semantic-release/github,@conveyal/maven-semantic-release --verify-release @conveyal/maven-semantic-release --use-conveyal-workflow --dev-branch=dev
# Upload shaded JAR to S3. The un-shaded jar was deployed to our Maven repo during the main build.
# Ideally we'd use the Travis S3 deployer here instead of installing the AWS CLI software every time.
# See the analyst-server travis.yml for how to copy specific files to a subdirectory and deploy those.
# Upload the shaded jar. It's named with git describe, so begins with the last tag name, so begins with the letter v.
# On the other hand, the main un-shaded artifact will begin with the project name 'r5'.
- aws s3 cp --recursive --exclude "*" --include "v*.jar" /home/travis/build/conveyal/r5/target s3://r5-builds
sudo: true # sudo: true gets us more memory, which we need, at the expense of slower builds
git:
depth: 150 # how many commits to clone, need to catch most recent tag for describe and 50 may not be enough
# Retain the local Maven repository to speed up builds.
# The Conveyal subdirectory is deleted in the script above to prevent retaining Conveyal snapshot artifacts across builds.
cache:
directories:
- $HOME/.m2
- $HOME/.cache/yarn
- $HOME/.cache/pip
yarn: true
notifications:
slack: conveyal:vqrkN7708qU1OTL9XkbMqQFV