Skip to content

chore(deps-dev): bump mermaid from 11.15.0 to 11.16.1 in /docs (#427) #106

chore(deps-dev): bump mermaid from 11.15.0 to 11.16.1 in /docs (#427)

chore(deps-dev): bump mermaid from 11.15.0 to 11.16.1 in /docs (#427) #106

name: EF Core CI build
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
config: Release
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
db_pwd: P@55w0rd
jobs:
build:
runs-on: ubuntu-latest
# Oracle takes several minutes to become healthy on the net9.0 leg
timeout-minutes: 45
strategy:
matrix:
framework:
- net9.0
- net10.0
name: EF Core ${{ matrix.framework }}
services:
postgresql:
image: postgres:15.3-alpine
ports:
- 5432:5432
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: marten_testing
sqlserver:
image: mcr.microsoft.com/mssql/server:2022-latest
ports:
# the EF Core test suite connects to localhost,1435 (matching docker-compose)
- 1435:1433
env:
ACCEPT_EULA: Y
SA_PASSWORD: ${{ env.db_pwd }}
mysql:
image: mysql:8.0
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: ${{ env.db_pwd }}
MYSQL_DATABASE: weasel_testing
MYSQL_USER: weasel
MYSQL_PASSWORD: ${{ env.db_pwd }}
options: >-
--health-cmd="mysqladmin ping -h localhost"
--health-interval=10s
--health-timeout=5s
--health-retries=5
steps:
- uses: actions/checkout@v6
# Oracle needs the init SQL in docker/oracle mounted to grant the weasel user
# its schema privileges, which a GitHub service container cannot do - so it
# comes up through docker compose, the same way ci-build-oracle.yml does it.
# Only net9.0 needs it: the Oracle EF provider has no net10.0 support, so the
# Oracle test folder is excluded from that build entirely.
- name: Start Oracle via docker-compose
if: matrix.framework == 'net9.0'
run: docker compose up -d oracle
- name: Install .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
9.0.x
10.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build src/Weasel.EntityFrameworkCore.Tests/Weasel.EntityFrameworkCore.Tests.csproj --no-restore --framework ${{ matrix.framework }}
# Waiting here rather than straight after `up -d` lets Oracle warm up during
# the SDK install, restore and build.
- name: Wait for Oracle to be healthy
if: matrix.framework == 'net9.0'
run: |
echo "Waiting for Oracle to be ready..."
timeout 300 bash -c 'until docker compose exec -T oracle healthcheck.sh; do sleep 10; done'
echo "Oracle is ready"
# No test filter: the Oracle and MySql suites are compiled out of the net10.0
# build (neither provider supports it yet), so each framework runs everything
# it actually built.
- name: Test
run: dotnet test src/Weasel.EntityFrameworkCore.Tests/Weasel.EntityFrameworkCore.Tests.csproj --no-build --verbosity normal --framework ${{ matrix.framework }}
- name: Stop Oracle
if: always() && matrix.framework == 'net9.0'
run: docker compose down