forked from the-benchmarker/web-frameworks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
126 lines (116 loc) · 2.88 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
# Avoid bots branches
branches:
only:
- /^(?!.*\/).*$/
# Exit build if not necessary
before_install:
# run only if current implementation is modified
- bash .ci/has_to_run.sh || travis_terminate 0
# Load docker cache
- if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; fi
# Use docker to containerize frameworks
services: docker
# Declare cache folders
cache:
directories:
- $HOME/docker
# Cache docker images (only tagged ones)
before_cache:
- >
mkdir -p $HOME/docker && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}'
| xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz'
# This tool is written in crystal
language: crystal
# One build per framework
# ! This list list has to be updated manually !
env:
matrix:
- FRAMEWORK=aspnetcore
- FRAMEWORK=akkahttp
- FRAMEWORK=http4s
- FRAMEWORK=evhtp
- FRAMEWORK=slim
- FRAMEWORK=symfony
- FRAMEWORK=laravel
- FRAMEWORK=lumen
- FRAMEWORK=zend-expressive
- FRAMEWORK=zend-framework
- FRAMEWORK=tornado
- FRAMEWORK=sanic
- FRAMEWORK=japronto
- FRAMEWORK=flask
- FRAMEWORK=vibora
- FRAMEWORK=django
- FRAMEWORK=bottle
- FRAMEWORK=aiohttp
- FRAMEWORK=quart
- FRAMEWORK=cyclone
- FRAMEWORK=falcon
- FRAMEWORK=starlette
- FRAMEWORK=responder
- FRAMEWORK=hug
- FRAMEWORK=bocadillo
- FRAMEWORK=fastapi
- FRAMEWORK=molten
- FRAMEWORK=jester
- FRAMEWORK=act
- FRAMEWORK=rails
- FRAMEWORK=rack-routing
- FRAMEWORK=sinatra
- FRAMEWORK=hanami
- FRAMEWORK=roda
- FRAMEWORK=agoo
- FRAMEWORK=flame
- FRAMEWORK=raze
- FRAMEWORK=kemal
- FRAMEWORK=spider-gazelle
- FRAMEWORK=lucky
- FRAMEWORK=amber
- FRAMEWORK=router.cr
- FRAMEWORK=onyx
- FRAMEWORK=orion
- FRAMEWORK=athena
- FRAMEWORK=kitura
- FRAMEWORK=perfect
- FRAMEWORK=vapor
- FRAMEWORK=gin
- FRAMEWORK=fasthttprouter
- FRAMEWORK=echo
- FRAMEWORK=beego
- FRAMEWORK=gf
- FRAMEWORK=gorilla-mux
- FRAMEWORK=chi
- FRAMEWORK=kami
- FRAMEWORK=violetear
- FRAMEWORK=nickel
- FRAMEWORK=actix-web
- FRAMEWORK=gotham
- FRAMEWORK=rocket
- FRAMEWORK=iron
- FRAMEWORK=restify
- FRAMEWORK=express
- FRAMEWORK=restana
- FRAMEWORK=hapi
- FRAMEWORK=fastify
- FRAMEWORK=foxify
- FRAMEWORK=koa
- FRAMEWORK=polka
- FRAMEWORK=rayo
- FRAMEWORK=turbo_polka
- FRAMEWORK=kore
- FRAMEWORK=agoo-c
- FRAMEWORK=muneem
- FRAMEWORK=ktor
# Lint yaml files in a specific jobs
jobs:
include:
- stage: lint
script: bash .ci/lint.sh
env: FRAMEWORK=rails
script:
- shards build
- bin/neph -v
- bin/neph ${FRAMEWORK} --mode=CI --seq
- crystal spec
notifications:
email: false