Skip to content

Updating test matrix #637

Updating test matrix

Updating test matrix #637

Workflow file for this run

name: Confirm tests run successfully
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Verify tests pass
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
container_image:
- docker.io/library/alpine:latest
- docker.io/library/alpine:edge
- quay.io/centos/centos:stream9
- quay.io/centos/centos:stream10-development
- registry.fedoraproject.org/fedora:39
- registry.fedoraproject.org/fedora:40
- registry.fedoraproject.org/fedora:rawhide
- registry.access.redhat.com/ubi8
- registry.access.redhat.com/ubi9
dotnet_version:
- "6.0"
- "8.0"
exclude:
- container_image: registry.fedoraproject.org/fedora:rawhide
dotnet_version: "6.0"
- container_image: quay.io/centos/centos:stream10-development
dotnet_version: "6.0"
include:
- container_image: registry.fedoraproject.org/fedora:40
dotnet_version: "9.0"
- container_image: registry.fedoraproject.org/fedora:rawhide
dotnet_version: "9.0"
- container_image: quay.io/centos/centos:stream10-development
dotnet_version: "9.0"
container:
image: ${{ matrix.container_image }}
options: --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v4

Check failure on line 53 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yml

Invalid workflow file

You have an error in your yaml syntax on line 53
- name: Install .NET ${{ matrix.dotnet_version }}
timeout-minutes: 10
run: |
set -euo pipefail
cat /etc/os-release
# .NET 9 is currently a preview, copr is needed to install it.
if [[ ${{ matrix.dotnet_version }} == 9.* ]]; then
dnf install 'dnf-command(copr)' -y
if grep centos /etc/os-release; then
dnf copr enable @dotnet-sig/dotnet-preview centos-stream-10-x86_64 -y
else
dnf copr enable @dotnet-sig/dotnet-preview -y
fi
# The package 'dotnet-sdk-aot' was introduced in .NET 9.
dnf install -y dotnet-sdk-aot-${{ matrix.dotnet_version }}
fi
# '/etc/os-release' will also match the 'grep fedora' on Fedora derived systems, such as CentOS.
if grep fedora /etc/os-release; then
dnf install -y dotnet-sdk-${{ matrix.dotnet_version }}
if [[ ! ${{ matrix.dotnet_version }} == *6* ]]; then
dnf install -y \
# The 'dbg' packages were introduced in .NET 8
dotnet-sdk-dbg-${{ matrix.dotnet_version }} \
dotnet-runtime-dbg-${{ matrix.dotnet_version }} \
aspnetcore-runtime-dbg-${{ matrix.dotnet_version }}
fi
elif grep alpine /etc/os-release; then
if grep edge /etc/os-release; then
echo "https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
fi
apk add dotnet-sdk-${{ matrix.dotnet_version }} dotnet-doc
if [[ ! ${{ matrix.dotnet_version }} == *6* ]]; then
apk add \
dotnet-sdk-dbg-${{ matrix.dotnet_version }} \
dotnet-runtime-dbg-${{ matrix.dotnet_version }} \
aspnetcore-runtime-dbg-${{ matrix.dotnet_version }}
fi
fi
- name: Install Test dependencies
timeout-minutes: 5
run: |
if grep fedora /etc/os-release ; then
dnf install -y python3 wget $(grep '^Dependencies(dnf): ' README.md | cut -d: -f2-) --skip-broken
elif grep alpine /etc/os-release; then
apk add python3 wget curl $(grep '^Dependencies(apk): ' README.md | cut -d: -f2-)
echo -e '[PostgreSQL]\nDescription=PostgreSQL Unicode\nDriver=/usr/lib/psqlodbcw.so\nUsageCount=1' > /etc/odbcinst.ini
fi
- name: Download test runner
run: |
set -euo pipefail
wget --no-verbose https://github.com/redhat-developer/dotnet-bunny/releases/latest/download/turkey.tar.gz
tar xf turkey.tar.gz
- name: Run tests
run: |
set -euo pipefail
### This is very questionable, but making our CI fail because distro
### .NET versions are out of date doesn't sound nice.
rm -rf release-version-sane
### HACK: Filter tests that can't pass in Containers
rm -rf debugging-sos-lldb* createdump-aspnet cgroup-limit
### HACK: RID parsing is broken on alpine:edge, so these tests fail
if [[ ${{ matrix.container_image }} == *'alpine:edge'* ]] ; then
rm -rf system-data-odbc
fi
### HACK: UBI 8 is missing bash-completion, postgres, and strace packages for tests
if [[ ${{ matrix.container_image }} == *ubi8* ]] ; then
rm -rf bash-completion system-data-odbc telemetry-is-off-by-default
fi
### HACK: UBI 9 is missing postsgres and strace package for tests
if [[ ${{ matrix.container_image }} == *ubi9* ]] ; then
rm -rf system-data-odbc telemetry-is-off-by-default
fi
dotnet turkey/Turkey.dll -v --timeout 600
- name: Show Logs
if: ${{ always() }}
run: |
set -euo pipefail
find -iname '*.log' -exec echo {} \; -exec cat {} \;