config.yml
3.14 KB
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
version: 2.1
executors:
ruby:
parameters:
version:
description: "Ruby version number"
default: "3.1"
type: string
docker:
- image: ruby:<< parameters.version >>
commands:
bundle_install:
description: Install Ruby dependencies with Bundler
parameters:
version:
description: "Ruby version number"
default: "3.1"
type: string
steps:
- restore_cache:
keys:
- bundle-v1-{{ arch }}-<< parameters.version >>
- run:
name: Install Ruby Dependencies
command: |
gem install bundler --conservative --no-document || gem install bundler -v '< 2' --no-document
bundle config --local path vendor/bundle
bundle check || (bundle install --jobs=4 --retry=3 && bundle clean)
- save_cache:
paths:
- ./vendor/bundle
key: bundle-v1-{{ arch }}-<< parameters.version >>-{{ checksum "Gemfile.lock" }}
update_ssh_client:
description: Install recent SSH client for compatibility with GitHub
steps:
- run:
name: Install OpenSSH 8.1p1 if necessary
command: |
if $(ssh -V 2>&1 | grep -q -v OpenSSH_8); then
apt-get update
apt-get install -y libssl-dev
mkdir ~/tempdownload
cd ~/tempdownload
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
tar zxvf openssh-8.1p1.tar.gz
cd openssh-8.1p1 && ./configure --prefix=/usr && make ssh && make install
fi
jobs:
danger:
executor: ruby
steps:
- checkout
- bundle_install
- run: bundle exec danger
rubocop:
executor: ruby
steps:
- checkout
- bundle_install
- run: bundle exec rubocop
spec:
parameters:
version:
description: "Ruby version number"
default: "3.1"
type: string
executor:
name: ruby
version: << parameters.version >>
steps:
- update_ssh_client
- checkout
- bundle_install:
version: << parameters.version >>
- run: bundle exec rake spec
workflows:
version: 2
commit-workflow:
jobs:
- danger
- rubocop
- spec:
matrix:
parameters:
version:
[
"2.0",
"2.1",
"2.2",
"2.3",
"2.4",
"2.5",
"2.6",
"2.7",
"3.0",
"3.1",
]
cron-workflow:
jobs:
- rubocop
- spec:
matrix:
parameters:
version:
[
"2.0",
"2.1",
"2.2",
"2.3",
"2.4",
"2.5",
"2.6",
"2.7",
"3.0",
"3.1",
]
triggers:
- schedule:
cron: "0 13 * * 6"
filters:
branches:
only:
- master