forked from mediacloud/backend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
152 lines (136 loc) · 6.68 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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
sudo: required
dist: trusty
services:
- docker
language: perl
perl: "5.22"
env:
global:
# Ansible configuration file
- ANSIBLE_CONFIG=ansible/ansible.cfg
#
# Docker test image configuration
# ---
#
# Docker image to pull with pre-installed Media Cloud dependencies
- MC_TRAVIS_DOCKER_IMAGE=dockermediacloud/mediacloud-travis:20171123
# Media Cloud root on Docker container
- MC_TRAVIS_DOCKER_MEDIACLOUD_ROOT=/home/mediacloud/mediacloud/
#
# Media Cloud-specific environment variables
# (Please copy them to "docker exec" below after adding a new one)
# ---
#
# Facebook Graph API credentials for testing:
#
# * MC_FACEBOOK_APP_ID
# * MC_FACEBOOK_APP_SECRET
- secure: "TklAqxPSqywPk5khp54R7iYW9jGfuWYiVC7xY3wiO8GQHRpW3b0a6zR3yEbeBMvKMt5b1IaCCJwuyasP/W0xPopqozqJFr/6045/tfTqRQ7/Bo6noJ1a640yLjjDzlGenHqkTCbhp5y4kaT2BS1IoTi423FOXQB1OVTpVD55jAw="
- secure: "A9bwQIK5W8VyQlpdnoA6LhKTcllytTS/8ueyzi9Y7F6xFdD2sFnfTy6UgpFIzgtVezYJYqy7Wcr1RiC3ybOmsE4FSYRTptrEdu4Pf/nI/LRxDE+sF2kPDGrXRD8iTL5+K2h5DMbBG2NsoflC+qRgn1W9f/Ey1gMsmCyOJJCnufw="
# Amazon S3 test bucket credentials:
#
# * MC_AMAZON_S3_TEST_ACCESS_KEY_ID
# * MC_AMAZON_S3_TEST_SECRET_ACCESS_KEY
# * MC_AMAZON_S3_TEST_BUCKET_NAME
# * MC_AMAZON_S3_TEST_DIRECTORY_NAME
- secure: "IelWSZxbrcjBXqaFkw/ugygQFuYdBCbfyq1p1Bc1eJzIWtYh42tMLfhel3DZpnJeneWXybATBGEwc0ix++CgV+RFc/jgq1ZcyM2n8D6PAE+2OwTjntrAs6AefSraW2Iu750II5LVCagOrb6Lx9ay6Mp7UpAyw9RYBR9+O2sQMeY="
- secure: "AcGT3z62sVzrl/k5FGMj5FRvNs7KXPVVePmFfLBlkB1R2k3qlYrslKDy2xaNPejRdhuwOnXHU3hIvg0DtgGSKIDgaHu8kHiDqEvWJJ8SLHhjtu8Xc9e2fUhG4uJf2uQ6OvvxN1Igst82WMwSanaVD5l5QThVxCyFu22gizQbx6A="
- secure: "TsGZHum9sSNX24jZrEdG3GBk2Q6s4Q2kEM2pXaaw1iMXqPrTMRHGHNdkGGEZBNvmhdKflKJmiTPYfQqls4gp7kCOYgM9t0uv6kw89yFsJhbSATnQ1WyYXi/x/V2ae/WmoAGNwXPk65gJJ6d4iMhN0vcpEjdpK1Un6wz7CU/HZus="
- secure: "IsKrT4JqS/VgmQUj7j7EyyohAzq0fS4mDijaUFZuNmXxL8oSattpULIDtz3O71ivlDZTHeNWIQjdh2u7tLspdDE4/Iv4c9eItrpQlcBjO9SCkVl3QxMitg2GacMwjmQxcACJlLtG8J6UceWBCiTHDRzwQieC/r7T0ZoT5tNGmxQ="
# Univision API test credentials:
#
# * MC_UNIVISION_TEST_URL
# * MC_UNIVISION_TEST_CLIENT_ID
# * MC_UNIVISION_TEST_CLIENT_SECRET
- secure: "OJQnQvZNiusSPuHDndQfPjuNW5Gp3MlzfC/d91YIdh4ftyCso8Jy1LInetml2yNhSnTVe86sCarZ4v4f3/5wfkCuJc5Y7ph0Ij6LfqXdPhVSe+HsxQoAA60EbmcH0Ho/K3Y7LZOV+dqvWcvkrfdYPUQB9Qid2tHJYv4+JndycNM="
- secure: "U4UiJwK5fsezvZOGsgW0v6hPiqXGor0Er6DAtlb7AE/qBx5j4goHYi4SsjMGX21pzFxlo+MmT6oGFj1rDf4uoF6TXW5UZn2fLsCYXrHRaQ7hJXog+tSw7CpAoR6mlXfxti6I83ln53GIgqhpzoZXscdS21r0q/vv8aFRT7dD8Ec="
- secure: "Fw42BMs0PDUn3ouHbeDwps28BolRQuLcHtvax25sbFd6novSIpns/01c31pZy8LkOYSb0fDqnrx3zTYh468CctJks4cDRPTn8xjPMGP5mnrOxdQbVHLFD5nqo/bpOzvdUmBWj8t7r96C8x6PNqxfsQqeinzHi1e2wMbDyxGdFHQ="
# Superglue test feed URL:
#
# * MC_SUPERGLUE_TEST_URL
- secure: "BzZcSjsuihkDowYPRz0F2HRiZ9LbEJkPXJpL8sRTBp1exbKAyfQ2+pXm3k2d34utp/gNiLlL+GFDmm7dr9wZ82DSqouBC8UJa3gaL/AeBrdXngaJbBeUqIWiDhsZFkf5F3V0J3r+7CxEAQVhU8hAPE7LB4VFjSYgXGZfoAMcdCw="
# Do not ask for confirmation when running ./script/mediawords_create_db.pl
- MEDIAWORDS_CREATE_DB_DO_NOT_CONFIRM=1
# Let tests know that they are running on Travis
- MC_SKIP_RABBIT_OPEN_FILES_LIMIT_CHECK=1
matrix:
# Single Travis instance is too slow to run all Perl tests, so
# run_test_suite_for_devel_cover.sh will split the tests into 4
# different chunks and run them on separate instances
- MC_TEST_CHUNK=1
- MC_TEST_CHUNK=2
- MC_TEST_CHUNK=3
- MC_TEST_CHUNK=4
before_install:
# Install ansible-lint
- sudo pip install --upgrade ansible-lint
# Install Coveralls utilities to be able to report test coverage
- cpanm --notest Devel::Cover Devel::Cover::Report::Coveralls
install:
# Lint Ansible playbooks
- ansible-lint ansible/setup.yml
- ansible-lint ansible/deploy.yml
- ansible-lint ansible/travis.yml
# Pull Docker image with pre-installed Media Cloud dependencies
- docker pull $MC_TRAVIS_DOCKER_IMAGE
# Create test container
- MC_TRAVIS_DOCKER_CONTAINER=`docker create -t $MC_TRAVIS_DOCKER_IMAGE`
# Start test container
- docker start $MC_TRAVIS_DOCKER_CONTAINER
# Copy repository to container
- docker cp . $MC_TRAVIS_DOCKER_CONTAINER:$MC_TRAVIS_DOCKER_MEDIACLOUD_ROOT
# Chown the just copied repository on container
- >
docker exec -i -t
$MC_TRAVIS_DOCKER_CONTAINER
sudo chown -R mediacloud:mediacloud $MC_TRAVIS_DOCKER_MEDIACLOUD_ROOT
# Install (upgrade) Ansible on container
- >
docker exec -i -t
$MC_TRAVIS_DOCKER_CONTAINER
sudo pip install --upgrade ansible-lint
# Start PostgreSQL service on container
- >
docker exec -i -t
$MC_TRAVIS_DOCKER_CONTAINER
sudo service postgresql start
# Run Ansible script on container
- >
docker exec -i -t
-e ANSIBLE_CONFIG
$MC_TRAVIS_DOCKER_CONTAINER
bash -c "cd $MC_TRAVIS_DOCKER_MEDIACLOUD_ROOT && ansible-playbook --inventory='localhost,' --connection=local --skip-tags='hostname,kernel-parameters' ansible/setup.yml"
# Create PostgreSQL databases on container
- >
docker exec -i -t
$MC_TRAVIS_DOCKER_CONTAINER
bash -c "cd $MC_TRAVIS_DOCKER_MEDIACLOUD_ROOT && ./tools/db/create_default_db_user_and_databases.sh"
# Initialize PostgreSQL databases with schema on container
- >
docker exec -i -t
-e MEDIAWORDS_CREATE_DB_DO_NOT_CONFIRM
$MC_TRAVIS_DOCKER_CONTAINER
bash -c "cd $MC_TRAVIS_DOCKER_MEDIACLOUD_ROOT && ./script/run_in_env.sh ./script/mediawords_create_db.pl"
script:
# Run test suite on container
- >
docker exec -i -t
-e MC_FACEBOOK_APP_ID
-e MC_FACEBOOK_APP_SECRET
-e MC_AMAZON_S3_TEST_ACCESS_KEY_ID
-e MC_AMAZON_S3_TEST_SECRET_ACCESS_KEY
-e MC_AMAZON_S3_TEST_BUCKET_NAME
-e MC_AMAZON_S3_TEST_DIRECTORY_NAME
-e MC_UNIVISION_TEST_URL
-e MC_UNIVISION_TEST_CLIENT_ID
-e MC_UNIVISION_TEST_CLIENT_SECRET
-e MC_SUPERGLUE_TEST_URL
-e MC_SKIP_RABBIT_OPEN_FILES_LIMIT_CHECK
-e MC_TEST_CHUNK
$MC_TRAVIS_DOCKER_CONTAINER
bash -c "cd $MC_TRAVIS_DOCKER_MEDIACLOUD_ROOT && ./script/run_test_suite_for_devel_cover.sh --destroy-solr"
after_success:
# Copy Coveralls database back to Travis instance
- docker cp $MC_TRAVIS_DOCKER_CONTAINER:$MC_TRAVIS_DOCKER_MEDIACLOUD_ROOT/cover_db/ .
# Send out Coveralls report
- cover -report coveralls