Skip to content

feat: Split HTTP handlers into sub-projects #127

feat: Split HTTP handlers into sub-projects

feat: Split HTTP handlers into sub-projects #127

Workflow file for this run

name: CI
on:
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-24.04
services:
# Docker without TLS (plain TCP) !DEPRECATED! with next docker release
docker-no-tls:
image: docker:29.1.1-dind
env:
DOCKER_TLS_CERTDIR: ""
ports:
- 2375:2375
options: >-
--privileged
# Docker with TLS (secure TCP)
docker-tls:
image: docker:29.1.1-dind
env:
DOCKER_TLS_CERTDIR: /certs
ports:
- 2376:2376
options: >-
--privileged
volumes:
- /home/runner/certs:/certs
strategy:
matrix:
include:
- sdk: 8.x
tfm: net8.0
- sdk: 9.x
tfm: net9.0
- sdk: 10.x
tfm: net10.0
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup .NET Core
uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ matrix.sdk }}
- name: Build
run: dotnet build -c Release --framework ${{ matrix.tfm }}
- name: Pack client cert, key, ca for .NET Docker client
run: |
sudo chown -R $USER:$USER $HOME/certs
openssl pkcs12 -export \
-out "$HOME/certs/client.pfx" \
-inkey "$HOME/certs/client/key.pem" \
-in "$HOME/certs/client/cert.pem" \
-certfile "$HOME/certs/client/ca.pem" \
-passout pass:
- name: Wait for Docker (no TLS) to be healthy
run: |
for i in {1..10}; do
if docker --host=tcp://localhost:2375 version; then
echo "Docker (no TLS) is ready!"
exit 0
fi
echo "Waiting for Docker (no TLS) to be ready..."
sleep 3
done
echo "Docker (no TLS) did not become ready in time."
exit 1
- name: Wait for Docker (with TLS) to be healthy
run: |
for i in {1..10}; do
if docker --host=tcp://localhost:2376 --tlsverify \
--tlscacert="$HOME/certs/client/ca.pem" \
--tlscert="$HOME/certs/client/cert.pem" \
--tlskey="$HOME/certs/client/key.pem" version; then
echo "Docker (with TLS) is ready!"
exit 0
fi
echo "Waiting for Docker (with TLS) to be ready..."
sleep 3
done
echo "Docker (with TLS) did not become ready in time."
exit 1
- name: Test
run: dotnet test -c Release --framework ${{ matrix.tfm }} --no-build --logger console