Update ci matrix and .NET installation instructions. #647
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
- registry.fedoraproject.org/fedora:40 | |
- registry.fedoraproject.org/fedora:41 | |
- registry.fedoraproject.org/fedora:rawhide | |
- registry.access.redhat.com/ubi8 | |
- registry.access.redhat.com/ubi9 | |
dotnet_version: | |
- "8.0" | |
- "9.0" | |
exclude: | |
- container_image: docker.io/library/alpine:latest | |
dotnet_version: "9.0" | |
- container_image: docker.io/library/alpine:edge | |
dotnet_version: "9.0" | |
container: | |
image: ${{ matrix.container_image }} | |
options: --security-opt seccomp=unconfined | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install .NET ${{ matrix.dotnet_version }} | |
# .NET 9 introduced the 'dotnet-sdk-aot' package | |
# .NET 8 introduced the 'dbg' packages | |
# '/etc/os-release' will also match the grep fedora for Fedora derived systems, such as CentOS. | |
timeout-minutes: 10 | |
run: | | |
set -euo pipefail | |
cat /etc/os-release | |
if grep fedora /etc/os-release; then | |
dnf install -y dotnet-sdk-${{ matrix.dotnet_version }} | |
dnf install -y \ | |
dotnet-sdk-dbg-${{ matrix.dotnet_version }} \ | |
dotnet-runtime-dbg-${{ matrix.dotnet_version }} \ | |
aspnetcore-runtime-dbg-${{ matrix.dotnet_version }} | |
if ${{ matrix.dotnet_version }} == 9.* ; then | |
dnf install -y dotnet-sdk-aot-${{ 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 | |
apk add \ | |
dotnet-sdk-dbg-${{ matrix.dotnet_version }} \ | |
dotnet-runtime-dbg-${{ matrix.dotnet_version }} \ | |
aspnetcore-runtime-dbg-${{ matrix.dotnet_version }} | |
if [ ${{ matrix.dotnet_version }} >= 9.* ]; then | |
apk add dotnet-sdk-aot-${{ 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 {} \; |