forked from Ortus-Solutions/ContentBox
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
110 lines (96 loc) · 3.43 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
language: java
# Slack Notifications
notifications:
slack:
secure: FIHlTn/YO7Wgumm1uIqmoEsqjQA7fV0AE94Rjc5yKzM3AquQa8HicgDVVk0d2GrKRnl0xt3j4ZJV//VJyIjlCd/QVKuj48R2ChjEY2im3+99HFPafCUI5/S2uyowKU6mJTFonH9v6p41eqxdbiAxJdDGOT0V2Gpt3UBSNuHz8ED9/aIHqv+P7M+VD6Xd2XYwctPniWlaSWx57sWcnG/VkFG45qFQAyha64uxOOe4M3ZmG/n5FfauZ8cBVLiRKEIr+CyNhh1ujfzi7+4uzMlSNL5t/BbZamAQuZzqGzGQ9RVvIlyPgUGNJtDEE/hWS09aagXF5T6EMj00szizErh4J1/x4qZwml5+TcBN31E0QmAhCtZe85sr3tYgic+hEz9XX1yymQzf/C7n4to2yNvq0r4g51xDk8IuP95WEh7zaqLlvFZvBFgxpHZBMYlRvhytjOYDeIFRMcGwHZcXosaG2ejqDwcGq/LC4oeG4sSwmg9sdRrtcmcanrNqrBka86WYO6LntI3JdZ86/1ACEUHzhCCwvrKELc9Ji1xxGAgS7QKH+s2/hnJuiMyv73gOVLKYC+wPMLt+fvOmPLSEl+PJiAIlToBq1KUBg03RSQLfPOLD7OrJ8VvDZsEPwejqlGDyc4wRglS9OTi7SnN5LYHSDNDdGdREegWqq9qDHEYEVLI=
branches:
only:
- development
- master
sudo: required
dist: focal
# Required for patches
git:
depth: 500
env:
matrix:
- ENGINE=lucee@5
- ENGINE=adobe@2016
- ENGINE=adobe@2018
services:
- mysql
#addons:
# apt:
# packages:
# - mysql-server-5.7
# - mysql-client-core-5.7
# - mysql-client-5.7
before_install:
# CommandBox Keys
- curl -fsSl https://downloads.ortussolutions.com/debs/gpg | sudo apt-key add -
- sudo echo "deb https://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a
/etc/apt/sources.list.d/commandbox.list
install:
# Install Commandbox
- sudo apt-get update && sudo apt-get --assume-yes install haveged commandbox jq
# Install root dependencies
- box version && box install
# install contentbox dependencies
- cd modules/contentbox && box install
- cd $TRAVIS_BUILD_DIR
# Store the Ortus API Key for forgebox publishing in `master`
- box config set endpoints.forgebox.APIToken=$FORGEBOX_API_TOKEN > /dev/null
before_script:
# create test database
- mysql -u root -e 'create database contentbox;'
# import database
- mysql -u root < tests/resources/sql/mysql/contentbox.sql
# Startup testing engine
- box server start serverConfigFile="server-${ENGINE}.json" --debug
script:
# Run tests
- box package set testbox.runner="http://127.0.0.1:8589/tests/runner.cfm"
- box testbox run --verbose
# Execute build via ANT
- ant -DisTravis=true -Dbuild.number=$TRAVIS_BUILD_NUMBER -Dbuild.branch=$TRAVIS_BRANCH -f build/build.xml
# Get ContentBox Version for rest of build process
- PROJECT_VERSION="$(cat build/build-contentbox/version.json | jq -r '.version')"
# Spit out debugging info
- cat build/build-contentbox/module/box.json
after_failure:
- cd $TRAVIS_BUILD_DIR
- cat $TRAVIS_BUILD_DIR/tests/results/results.txt
- box server log serverConfigFile="server-${ENGINE}.json"
- cat `box system-log`
deploy:
# Upload binaries
- provider: s3
on:
branch:
- development
- master
condition: "$ENGINE = lucee@5"
skip_cleanup: true
access_key_id: $AWS_ACCESS_KEY
secret_access_key: $AWS_ACCESS_SECRET
bucket: "downloads.ortussolutions.com"
local-dir: artifacts
upload-dir: ortussolutions
acl: public_read
# Upload api docs
- provider: s3
on:
branch:
- development
- master
condition: "$ENGINE = lucee@5"
skip_cleanup: true
access_key_id: $AWS_ACCESS_KEY
secret_access_key: $AWS_ACCESS_SECRET
bucket: "apidocs.ortussolutions.com"
local-dir: build/build-contentbox/apidocs
upload-dir: contentbox/$PROJECT_VERSION
acl: public_read
# Now publish assets to ForgeBox
after_deploy:
- build/forgebox-publish.sh;