-
Notifications
You must be signed in to change notification settings - Fork 5
/
.travis.yml
122 lines (109 loc) · 3.56 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: java
jdk:
- openjdk11
env:
# Fill out these global variables for build process
global:
- MODULE_ID=cbmongodb
matrix:
- ENGINE=lucee@5
- ENGINE=adobe@2016
- ENGINE=adobe@2018
branches:
only:
- development
- master
dist: focal
sudo: required
before_script:
- sleep 10
before_install:
# Mongodb
- sudo apt-get update && sudo apt install -y gnupg
- sudo apt-get install -y mongodb
- sudo service mongodb start
# CommandBox Keys
- curl -fsSl https://downloads.ortussolutions.com/debs/gpg | sudo apt-key add -
- sudo echo "deb http://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a
/etc/apt/sources.list.d/commandbox.list
install:
- sudo apt update
- java --version
# Install Commandbox
- sudo apt -y install rsync jq commandbox
# - supd apt install -y npm
# Install CommandBox Supporting Librarires
- box install commandbox-cfconfig,commandbox-dotenv,commandbox-docbox
# If using auto-publish, you will need to provide your API token with this line:
- box config set endpoints.forgebox.APIToken=$FORGEBOX_API_TOKEN > /dev/null
script:
# Set Current Version and Travis Tag
- TARGET_VERSION=`cat $TRAVIS_BUILD_DIR/box.json | jq '.version' -r`
- TRAVIS_TAG=${TARGET_VERSION}
- echo "Starting build for ${MODULE_ID} v${TARGET_VERSION}"
# Replace version so builder can issue it
- box package set [email protected]@[email protected]@
- box install
# Startup the harness
- cd test-harness
# run our dependency install to ensure the workbench is in place
- box install
# run our matrix server
- box server start serverConfigFile="server-${ENGINE}.json"
# Startup the app
- curl http://localhost:60299
# Debugging of tests
#- curl http://localhost:60299/tests/runner.cfm?reporter=json -o testresults.json && cat testresults.json
# move back to build dir to build it
- cd $TRAVIS_BUILD_DIR
# Build Project
- box task run taskfile=build/Build target=run :version=${TARGET_VERSION} :projectName=${MODULE_ID} :buildID=${TRAVIS_BUILD_NUMBER} :branch=${TRAVIS_BRANCH}
# Cat results for debugging
#- cat build/results.json
after_failure:
# Cat out test results if they fail
#- cat build/results.json
- cd $TRAVIS_BUILD_DIR/test-harness
# Display the contents of our root directory
# Spit out our Commandbox log in case we need to debug
- box server log server-${ENGINE}.json
- cat `box system-log`
deploy:
# Module Deployment
- provider: s3
on:
branch:
- master
- development
condition: "$ENGINE = lucee@5"
skip_cleanup: true
#AWS Credentials need to be set in Travis
access_key_id: $AWS_ACCESS_KEY
secret_access_key: $AWS_ACCESS_SECRET
# Destination
bucket: "oss.silowebworks.com"
local-dir: $TRAVIS_BUILD_DIR/.artifacts/$MODULE_ID
upload-dir: coldbox-modules/$MODULE_ID
acl: public_read
# API Docs Deployment
- provider: s3
on:
branch:
- master
- development
condition: "$ENGINE = lucee@5"
skip_cleanup: true
#AWS Credentials need to be set in Travis
access_key_id: $AWS_ACCESS_KEY
secret_access_key: $AWS_ACCESS_SECRET
bucket: "oss.silowebworks.com"
local-dir: $TRAVIS_BUILD_DIR/.tmp/apidocs
upload-dir: coldbox-modules/$MODULE_ID/apidocs/$TARGET_VERSION
acl: public_read
# Once API Docs and Binaries are deployed to S3 Publish to ForgeBox
after_deploy:
# Move to build out artifact
- cd ${TRAVIS_BUILD_DIR}/.tmp/${MODULE_ID}
- cat box.json
# Only publish once using the lucee matrix
- if [ ${ENGINE} = 'lucee@5' ]; then box forgebox publish; fi