Skip to content

Test Features

Test Features #69

name: Test Features
on:
push:
branches:
- trunk
pull_request:
schedule:
- cron: '5 0 * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
scenarios:
name: '${{ matrix.test.feature }} ${{ matrix.test.filter }}'
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
fail-fast: false
matrix:
test:
- feature: cron
- feature: cron-control-runner
- feature: desktop-lite
- feature: elasticsearch
filter: alpine-base-persist
- feature: elasticsearch
filter: alpine-base-nopersist
- feature: elasticsearch
filter: ubuntu-base-persist
- feature: elasticsearch
filter: ubuntu-base-nopersist
- feature: elasticsearch
filter: es-7-mcr
- feature: elasticsearch
filter: es-8-mcr
- feature: mailpit
- feature: memcached
- feature: mariadb
- feature: nginx
- feature: photon
- feature: php
filter: '81'
- feature: php
filter: '82'
- feature: php
filter: '83'
- feature: phpmyadmin
- feature: playwright
- feature: ssh
- feature: xdebug
- feature: wordpress
- feature: wptl
steps:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Install @devcontainers/cli
run: npm install -g @devcontainers/cli
- name: Expose GitHub Runtime
uses: Automattic/vip-actions/expose-github-runtime@e1faabf165941008de4c0c1381df153e49d8ad2c # v0.6.0
- name: Build images
run: |
REPO="$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')"
for image in alpine-base ubuntu-base; do
devcontainer build \
--workspace-folder images/src/${image} \
--image-name="ghcr.io/${REPO}/${image}:latest" \
--cache-from type=gha
done
- name: Download Elasticsearch
run: |
wget https://artifacts-no-kpi.elastic.co/downloads/elasticsearch/elasticsearch-7.17.23-linux-x86_64.tar.gz
wget https://artifacts-no-kpi.elastic.co/downloads/elasticsearch/elasticsearch-8.15.0-linux-x86_64.tar.gz
working-directory: features/src/elasticsearch
if: matrix.test.feature == 'elasticsearch'
- name: Run tests
run: |
if [ -z "${{ matrix.test.filter }}" ]; then
devcontainer features test -p features --skip-autogenerated --skip-duplicated -f "${{ matrix.test.feature }}"
else
devcontainer features test -p features --skip-autogenerated --skip-duplicated -f "${{ matrix.test.feature }}" --filter "${{ matrix.test.filter }}"
fi