name: Test Kitchen
+
on:
- push
- pull_request
+ - workflow_dispatch
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
+ cancel-in-progress: true
+
jobs:
kitchen:
name: Test Kitchen
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
+ permissions:
+ packages: read
strategy:
matrix:
suite:
- accounts
- apache
- apt
+ - backup
- bind
- blog
- blogs
- civicrm
- clamav
+ - community
+ - db-backup
+ - db-base
+ - db-master
+ - db-slave
- devices
- dhcpd
- dmca
- - donate
+ - dns
+ - docker
+ - elasticsearch
- exim
- fail2ban
- - forum
+ - foundation-board
+ - foundation-dwg
+ - foundation-mwg
+ - foundation-owg
+ - foundation-welcome
+ - foundation-wiki
- ftp
- geodns
- geoipupdate
+ - git
+ - git-server
+ - git-web
- gps-tile
- hardware
- - incron
+ - hot
+ - ideditor
+ - irc
+ - kibana
- letsencrypt
+ - logstash
+ - logstash-forwarder
+ - mail
- mailman
+ - matomo
- memcached
- munin
- munin-plugins
- networking
- nginx
- nodejs
+ - nominatim
- ntp
- openssh
- osmosis
- osqa
- otrs
+ - overpass
- passenger
- - piwik
+ - php
+ - php-apache
+ - php-fpm
- planet
+ - planet-current
- planet-dump
- planet-notes
- planet-replication
- postgresql
+ - prometheus
+ - prometheus-server
- python
- rsyncd
- serverinfo
+ - snmpd
- spamassassin
- - squid
- - stateofthemap
+ - ssl
+ - stateofthemap-container
+ - stateofthemap-wordpress
- subversion
- supybot
- switch2osm
+ - sysctl
+ - sysfs
- taginfo
- tile
- - tilecache
+ - tilelog
- tools
- trac
- - web-backend
- web-cgimap
- web-frontend
- web-rails
+ - wordpress
+ - wiki
os:
- - ubuntu-1804
+ - ubuntu-2204
+ include:
+ - os: ubuntu-2004
+ suite: mailman
+ - os: ubuntu-2004
+ suite: osqa
+ exclude:
+ - suite: mailman
+ os: ubuntu-2204
+ - suite: osqa
+ os: ubuntu-2204
fail-fast: false
steps:
- - name: Check out code
- uses: actions/checkout@v1
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v2
with:
- fetch-depth: 1
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Check out code
+ uses: actions/checkout@v4
- name: Setup ruby
- uses: actions/setup-ruby@v1
- - name: Cache gems
- uses: actions/cache@v1
+ uses: ruby/setup-ruby@v1
with:
- path: vendor/bundle
- key: bundle-${{ runner.OS }}-${{ hashFiles('Gemfile.lock') }}
- restore-keys: |
- bundle-${{ runner.OS }}-
- - name: Disable apparmor for mysqld
- run: |
- sudo apt-get install apparmor-utils
- sudo aa-disable /usr/sbin/mysqld
- - name: Install gems
- run: |
- gem install bundler --version "~> 1.17"
- bundle install --jobs 4 --retry 3 --deployment
+ ruby-version: 3.1
+ bundler-cache: true
- name: Run kitchen test ${{ matrix.suite }}-${{ matrix.os }}
run: bundle exec kitchen test ${{ matrix.suite }}-${{ matrix.os }}
+ - name: Gather journal output
+ run: bundle exec kitchen exec ${{ matrix.suite }}-${{ matrix.os }} -c journalctl --since=yesterday
+ if: ${{ failure() }}