Skip to content

Commit 13cbbcd

Browse files
committed
ci(github/kitchen): use GitHub Actions for Linux testing [skip ci]
* Automated using myii/ssf-formula#298
1 parent e9310b8 commit 13cbbcd

5 files changed

Lines changed: 404 additions & 165 deletions

File tree

.github/workflows/kitchen.yml

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# -*- coding: utf-8 -*-
2+
# vim: ft=yaml
3+
---
4+
name: 'Kitchen (Linux)'
5+
'on': ['push', 'pull_request']
6+
7+
jobs:
8+
kitchen:
9+
runs-on: 'ubuntu-20.04'
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
instance:
14+
# - default-debian-10-tiamat-py3
15+
# - default-debian-9-tiamat-py3
16+
# - default-ubuntu-2004-tiamat-py3
17+
# - default-ubuntu-1804-tiamat-py3
18+
# - default-ubuntu-1604-tiamat-py3
19+
# - default-centos-8-tiamat-py3
20+
# - default-centos-7-tiamat-py3
21+
# - default-amazonlinux-2-tiamat-py3
22+
# - default-oraclelinux-8-tiamat-py3
23+
# - default-oraclelinux-7-tiamat-py3
24+
- default-debian-10-master-py3
25+
- default-debian-9-master-py3
26+
- default-ubuntu-2004-master-py3
27+
- default-ubuntu-1804-master-py3
28+
# - default-ubuntu-1604-master-py3
29+
# - default-centos-8-master-py3
30+
# - default-centos-7-master-py3
31+
# - default-fedora-33-master-py3
32+
# - default-fedora-32-master-py3
33+
# - default-opensuse-leap-152-master-py3
34+
# - default-opensuse-tmbl-latest-master-py3
35+
# - default-amazonlinux-2-master-py3
36+
# - default-oraclelinux-8-master-py3
37+
# - default-oraclelinux-7-master-py3
38+
# - default-gentoo-stage3-latest-master-py3
39+
# - default-gentoo-stage3-systemd-master-py3
40+
# - default-debian-10-3002-2-py3
41+
# - default-debian-9-3002-2-py3
42+
# - default-ubuntu-2004-3002-2-py3
43+
# - default-ubuntu-1804-3002-2-py3
44+
# - default-ubuntu-1604-3002-2-py3
45+
# - default-centos-8-3002-2-py3
46+
# - default-centos-7-3002-2-py3
47+
# - default-fedora-33-3002-2-py3
48+
# - default-fedora-32-3002-2-py3
49+
# - default-opensuse-leap-152-3002-2-py3
50+
# - default-opensuse-tmbl-latest-3002-2-py3
51+
# - default-amazonlinux-2-3002-2-py3
52+
# - default-oraclelinux-8-3002-2-py3
53+
# - default-oraclelinux-7-3002-2-py3
54+
# - default-arch-base-latest-3002-2-py3
55+
# - default-gentoo-stage3-latest-3002-2-py3
56+
# - default-gentoo-stage3-systemd-3002-2-py3
57+
# - default-debian-10-3001-4-py3
58+
# - default-debian-9-3001-4-py3
59+
# - default-ubuntu-2004-3001-4-py3
60+
# - default-ubuntu-1804-3001-4-py3
61+
# - default-ubuntu-1604-3001-4-py3
62+
# - default-centos-8-3001-4-py3
63+
# - default-centos-7-3001-4-py3
64+
# - default-fedora-33-3001-4-py3
65+
# - default-fedora-32-3001-4-py3
66+
# - default-opensuse-leap-152-3001-4-py3
67+
# - default-opensuse-tmbl-latest-3001-4-py3
68+
# - default-amazonlinux-2-3001-4-py3
69+
# - default-oraclelinux-8-3001-4-py3
70+
# - default-oraclelinux-7-3001-4-py3
71+
# - default-arch-base-latest-3001-4-py3
72+
# - default-gentoo-stage3-latest-3001-4-py3
73+
# - default-gentoo-stage3-systemd-3001-4-py3
74+
# - default-debian-10-3000-6-py3
75+
# - default-debian-9-3000-6-py3
76+
# - default-ubuntu-1804-3000-6-py3
77+
# - default-ubuntu-1604-3000-6-py3
78+
# - default-centos-8-3000-6-py3
79+
# - default-centos-7-3000-6-py3
80+
# - default-opensuse-leap-152-3000-6-py3
81+
# - default-amazonlinux-2-3000-6-py3
82+
# - default-oraclelinux-8-3000-6-py3
83+
# - default-oraclelinux-7-3000-6-py3
84+
# - default-gentoo-stage3-latest-3000-6-py3
85+
# - default-gentoo-stage3-systemd-3000-6-py3
86+
# - default-ubuntu-1804-3000-6-py2
87+
# - default-ubuntu-1604-3000-6-py2
88+
# - default-arch-base-latest-3000-6-py2
89+
steps:
90+
- uses: 'actions/checkout@v2'
91+
- uses: 'actions/cache@v1'
92+
with:
93+
path: 'vendor/bundle'
94+
key: |
95+
${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
96+
restore-keys: "${{ runner.os }}-gems-"
97+
- name: 'Install Bundler'
98+
run: |
99+
sudo gem install bundler \
100+
-v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)" \
101+
--quiet --no-document
102+
- name: 'Run Bundler'
103+
run: |
104+
bundle config path vendor/bundle
105+
bundle install --jobs 4 --retry 3
106+
- name: 'Run Test Kitchen'
107+
run: 'bundle exec kitchen verify ${{ matrix.instance }}'
108+
env:
109+
CHEF_LICENSE: 'accept-no-persist'

.gitlab-ci.yml

Lines changed: 0 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,20 @@
1111
# `stage`
1212
stage_lint: &stage_lint 'lint'
1313
stage_release: &stage_release 'release'
14-
stage_test: &stage_test 'test'
1514
# `image`
1615
image_commitlint: &image_commitlint 'myii/ssf-commitlint:11'
17-
image_dindruby: &image_dindruby 'myii/ssf-dind-ruby:2.7.1-r3'
1816
image_precommit: &image_precommit
1917
name: 'myii/ssf-pre-commit:2.9.2'
2018
entrypoint: ['/bin/bash', '-c']
2119
image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest'
2220
image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14'
23-
# `services`
24-
services_docker_dind: &services_docker_dind
25-
- 'docker:dind'
26-
# `variables`
27-
# https://forum.gitlab.com/t/gitlab-com-ci-caching-rubygems/5627/3
28-
# https://bundler.io/v1.16/bundle_config.html
29-
variables_bundler: &variables_bundler
30-
BUNDLE_CACHE_PATH: '${CI_PROJECT_DIR}/.cache/bundler'
31-
BUNDLE_WITHOUT: 'production'
32-
# `cache`
33-
cache_bundler: &cache_bundler
34-
key: '${CI_JOB_STAGE}'
35-
paths:
36-
- '${BUNDLE_CACHE_PATH}'
3721

3822
###############################################################################
3923
# Define stages and global variables
4024
###############################################################################
4125
stages:
4226
- *stage_lint
43-
- *stage_test
4427
- *stage_release
45-
variables:
46-
DOCKER_DRIVER: 'overlay2'
4728

4829
###############################################################################
4930
# `lint` stage: `commitlint` & `pre-commit`
@@ -99,60 +80,6 @@ rubocop:
9980
script:
10081
- 'rubocop -d -P -S --enable-pending-cops'
10182

102-
###############################################################################
103-
# Define `test` template
104-
###############################################################################
105-
.test_instance:
106-
stage: *stage_test
107-
image: *image_dindruby
108-
services: *services_docker_dind
109-
variables: *variables_bundler
110-
cache: *cache_bundler
111-
before_script:
112-
# TODO: This should work from the env vars above automatically
113-
- 'bundle config set path "${BUNDLE_CACHE_PATH}"'
114-
- 'bundle config set without "${BUNDLE_WITHOUT}"'
115-
- 'bundle install'
116-
script:
117-
# Alternative value to consider: `${CI_JOB_NAME}`
118-
- 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"'
119-
120-
###############################################################################
121-
# `test` stage: each instance below uses the `test` template above
122-
###############################################################################
123-
## Define the rest of the matrix based on Kitchen testing
124-
# Make sure the instances listed below match up with
125-
# the `platforms` defined in `kitchen.yml`
126-
# default-debian-10-master-py3: {extends: '.test_instance'}
127-
# default-ubuntu-1804-master-py3: {extends: '.test_instance'}
128-
# default-centos-8-master-py3: {extends: '.test_instance'}
129-
# default-fedora-31-master-py3: {extends: '.test_instance'}
130-
# default-opensuse-leap-151-master-py3: {extends: '.test_instance'}
131-
# default-amazonlinux-2-master-py3: {extends: '.test_instance'}
132-
# default-debian-10-2019-2-py3: {extends: '.test_instance'}
133-
# default-debian-9-2019-2-py3: {extends: '.test_instance'}
134-
# default-ubuntu-1804-2019-2-py3: {extends: '.test_instance'}
135-
# default-centos-8-2019-2-py3: {extends: '.test_instance'}
136-
# default-fedora-31-2019-2-py3: {extends: '.test_instance'}
137-
# default-opensuse-leap-151-2019-2-py3: {extends: '.test_instance'}
138-
# default-centos-7-2019-2-py2: {extends: '.test_instance'}
139-
# default-amazonlinux-2-2019-2-py3: {extends: '.test_instance'}
140-
# default-arch-base-latest-2019-2-py2: {extends: '.test_instance'}
141-
# default-fedora-30-2018-3-py3: {extends: '.test_instance'}
142-
# default-debian-9-2018-3-py2: {extends: '.test_instance'}
143-
# default-ubuntu-1604-2018-3-py2: {extends: '.test_instance'}
144-
# default-centos-7-2018-3-py2: {extends: '.test_instance'}
145-
# default-opensuse-leap-151-2018-3-py2: {extends: '.test_instance'}
146-
# default-amazonlinux-1-2018-3-py2: {extends: '.test_instance'}
147-
# default-arch-base-latest-2018-3-py2: {extends: '.test_instance'}
148-
# default-debian-8-2017-7-py2: {extends: '.test_instance'}
149-
# default-ubuntu-1604-2017-7-py2: {extends: '.test_instance'}
150-
# default-centos-6-2017-7-py2: {extends: '.test_instance'}
151-
# default-fedora-30-2017-7-py2: {extends: '.test_instance'}
152-
# default-opensuse-leap-151-2017-7-py2: {extends: '.test_instance'}
153-
# default-amazonlinux-1-2017-7-py2: {extends: '.test_instance'}
154-
# default-arch-base-latest-2017-7-py2: {extends: '.test_instance'}
155-
15683
###############################################################################
15784
# `release` stage: `semantic-release`
15885
###############################################################################

.travis.yml

Lines changed: 73 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -83,35 +83,81 @@ jobs:
8383
## Define the rest of the matrix based on Kitchen testing
8484
# Make sure the instances listed below match up with
8585
# the `platforms` defined in `kitchen.yml`
86-
# - env: INSTANCE=default-debian-10-master-py3
87-
# - env: INSTANCE=default-ubuntu-1804-master-py3
86+
# - env: INSTANCE=default-debian-10-tiamat-py3
87+
# - env: INSTANCE=default-debian-9-tiamat-py3
88+
# - env: INSTANCE=default-ubuntu-2004-tiamat-py3
89+
# - env: INSTANCE=default-ubuntu-1804-tiamat-py3
90+
# - env: INSTANCE=default-ubuntu-1604-tiamat-py3
91+
# - env: INSTANCE=default-centos-8-tiamat-py3
92+
# - env: INSTANCE=default-centos-7-tiamat-py3
93+
# - env: INSTANCE=default-amazonlinux-2-tiamat-py3
94+
# - env: INSTANCE=default-oraclelinux-8-tiamat-py3
95+
# - env: INSTANCE=default-oraclelinux-7-tiamat-py3
96+
- env: INSTANCE=default-debian-10-master-py3
97+
- env: INSTANCE=default-debian-9-master-py3
98+
- env: INSTANCE=default-ubuntu-2004-master-py3
99+
- env: INSTANCE=default-ubuntu-1804-master-py3
100+
# - env: INSTANCE=default-ubuntu-1604-master-py3
88101
# - env: INSTANCE=default-centos-8-master-py3
89-
# - env: INSTANCE=default-fedora-31-master-py3
90-
# - env: INSTANCE=default-opensuse-leap-151-master-py3
102+
# - env: INSTANCE=default-centos-7-master-py3
103+
# - env: INSTANCE=default-fedora-33-master-py3
104+
# - env: INSTANCE=default-fedora-32-master-py3
105+
# - env: INSTANCE=default-opensuse-leap-152-master-py3
106+
# - env: INSTANCE=default-opensuse-tmbl-latest-master-py3
91107
# - env: INSTANCE=default-amazonlinux-2-master-py3
92-
# - env: INSTANCE=default-debian-10-2019-2-py3
93-
# - env: INSTANCE=default-debian-9-2019-2-py3
94-
# - env: INSTANCE=default-ubuntu-1804-2019-2-py3
95-
# - env: INSTANCE=default-centos-8-2019-2-py3
96-
# - env: INSTANCE=default-fedora-31-2019-2-py3
97-
# - env: INSTANCE=default-opensuse-leap-151-2019-2-py3
98-
# - env: INSTANCE=default-centos-7-2019-2-py2
99-
# - env: INSTANCE=default-amazonlinux-2-2019-2-py3
100-
# - env: INSTANCE=default-arch-base-latest-2019-2-py2
101-
# - env: INSTANCE=default-fedora-30-2018-3-py3
102-
# - env: INSTANCE=default-debian-9-2018-3-py2
103-
# - env: INSTANCE=default-ubuntu-1604-2018-3-py2
104-
# - env: INSTANCE=default-centos-7-2018-3-py2
105-
# - env: INSTANCE=default-opensuse-leap-151-2018-3-py2
106-
# - env: INSTANCE=default-amazonlinux-1-2018-3-py2
107-
# - env: INSTANCE=default-arch-base-latest-2018-3-py2
108-
# - env: INSTANCE=default-debian-8-2017-7-py2
109-
# - env: INSTANCE=default-ubuntu-1604-2017-7-py2
110-
# - env: INSTANCE=default-centos-6-2017-7-py2
111-
# - env: INSTANCE=default-fedora-30-2017-7-py2
112-
# - env: INSTANCE=default-opensuse-leap-151-2017-7-py2
113-
# - env: INSTANCE=default-amazonlinux-1-2017-7-py2
114-
# - env: INSTANCE=default-arch-base-latest-2017-7-py2
108+
# - env: INSTANCE=default-oraclelinux-8-master-py3
109+
# - env: INSTANCE=default-oraclelinux-7-master-py3
110+
# - env: INSTANCE=default-gentoo-stage3-latest-master-py3
111+
# - env: INSTANCE=default-gentoo-stage3-systemd-master-py3
112+
# - env: INSTANCE=default-debian-10-3002-2-py3
113+
# - env: INSTANCE=default-debian-9-3002-2-py3
114+
# - env: INSTANCE=default-ubuntu-2004-3002-2-py3
115+
# - env: INSTANCE=default-ubuntu-1804-3002-2-py3
116+
# - env: INSTANCE=default-ubuntu-1604-3002-2-py3
117+
# - env: INSTANCE=default-centos-8-3002-2-py3
118+
# - env: INSTANCE=default-centos-7-3002-2-py3
119+
# - env: INSTANCE=default-fedora-33-3002-2-py3
120+
# - env: INSTANCE=default-fedora-32-3002-2-py3
121+
# - env: INSTANCE=default-opensuse-leap-152-3002-2-py3
122+
# - env: INSTANCE=default-opensuse-tmbl-latest-3002-2-py3
123+
# - env: INSTANCE=default-amazonlinux-2-3002-2-py3
124+
# - env: INSTANCE=default-oraclelinux-8-3002-2-py3
125+
# - env: INSTANCE=default-oraclelinux-7-3002-2-py3
126+
# - env: INSTANCE=default-arch-base-latest-3002-2-py3
127+
# - env: INSTANCE=default-gentoo-stage3-latest-3002-2-py3
128+
# - env: INSTANCE=default-gentoo-stage3-systemd-3002-2-py3
129+
# - env: INSTANCE=default-debian-10-3001-4-py3
130+
# - env: INSTANCE=default-debian-9-3001-4-py3
131+
# - env: INSTANCE=default-ubuntu-2004-3001-4-py3
132+
# - env: INSTANCE=default-ubuntu-1804-3001-4-py3
133+
# - env: INSTANCE=default-ubuntu-1604-3001-4-py3
134+
# - env: INSTANCE=default-centos-8-3001-4-py3
135+
# - env: INSTANCE=default-centos-7-3001-4-py3
136+
# - env: INSTANCE=default-fedora-33-3001-4-py3
137+
# - env: INSTANCE=default-fedora-32-3001-4-py3
138+
# - env: INSTANCE=default-opensuse-leap-152-3001-4-py3
139+
# - env: INSTANCE=default-opensuse-tmbl-latest-3001-4-py3
140+
# - env: INSTANCE=default-amazonlinux-2-3001-4-py3
141+
# - env: INSTANCE=default-oraclelinux-8-3001-4-py3
142+
# - env: INSTANCE=default-oraclelinux-7-3001-4-py3
143+
# - env: INSTANCE=default-arch-base-latest-3001-4-py3
144+
# - env: INSTANCE=default-gentoo-stage3-latest-3001-4-py3
145+
# - env: INSTANCE=default-gentoo-stage3-systemd-3001-4-py3
146+
# - env: INSTANCE=default-debian-10-3000-6-py3
147+
# - env: INSTANCE=default-debian-9-3000-6-py3
148+
# - env: INSTANCE=default-ubuntu-1804-3000-6-py3
149+
# - env: INSTANCE=default-ubuntu-1604-3000-6-py3
150+
# - env: INSTANCE=default-centos-8-3000-6-py3
151+
# - env: INSTANCE=default-centos-7-3000-6-py3
152+
# - env: INSTANCE=default-opensuse-leap-152-3000-6-py3
153+
# - env: INSTANCE=default-amazonlinux-2-3000-6-py3
154+
# - env: INSTANCE=default-oraclelinux-8-3000-6-py3
155+
# - env: INSTANCE=default-oraclelinux-7-3000-6-py3
156+
# - env: INSTANCE=default-gentoo-stage3-latest-3000-6-py3
157+
# - env: INSTANCE=default-gentoo-stage3-systemd-3000-6-py3
158+
# - env: INSTANCE=default-ubuntu-1804-3000-6-py2
159+
# - env: INSTANCE=default-ubuntu-1604-3000-6-py2
160+
# - env: INSTANCE=default-arch-base-latest-3000-6-py2
115161

116162
## Define the release stage that runs `semantic-release`
117163
- stage: 'release'

0 commit comments

Comments
 (0)