0e98e1cccd
* Refactor CI to run integration tests as separate workflow * Tool restore * correct cache path * conditionally use container registry * use sln because net8 * fix typo * Correct trait filter * Correct mistake again * fix again * fml * clarify names * hopefully we're properly filtering test categories now * maybe this? * What does this do? * revert is test project changes * IsTestProject fix * Correct test setup for automate * maybe fix unit tests * docker-compose-file alighment * remove debug * Ok tests should now pass
54 lines
1.6 KiB
YAML
54 lines
1.6 KiB
YAML
name: Integration Test
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
docker-compose-file:
|
|
required: true
|
|
type: string
|
|
use-github-container-registry:
|
|
default: false
|
|
type: boolean
|
|
|
|
jobs:
|
|
integration-test:
|
|
env:
|
|
Solution: "Speckle.Sdk.sln"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Setup .NET
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
dotnet-version: 8.x.x
|
|
cache: true
|
|
cache-dependency-path: "**/packages.lock.json"
|
|
|
|
- name: 🔐 Login to Github Container Registry
|
|
if: ${{ inputs.use-github-container-registry }}
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: "ghcr.io"
|
|
username: ${{ github.actor }}
|
|
password: ${{ github.token }}
|
|
|
|
- name: ⚙️ Spin up Server
|
|
run: docker compose -f ${{ inputs.docker-compose-file }} up --wait
|
|
|
|
- name: 📦 Restore
|
|
run: dotnet restore ${{ env.Solution }} --locked-mode
|
|
|
|
- name: 🏗️ Build
|
|
run: dotnet build ${{ env.Solution }} --configuration Release --no-restore -warnaserror
|
|
|
|
- name: 🔨 Integration Tests
|
|
run: dotnet test ${{ env.Solution }} --filter "Category=Integration" --configuration Release --no-build --no-restore --verbosity=normal /p:AltCover=true /p:AltCoverAttributeFilter=ExcludeFromCodeCoverage
|
|
|
|
- name: Upload coverage reports to Codecov with GitHub Action
|
|
uses: codecov/codecov-action@v5
|
|
with:
|
|
files: tests/**/coverage.xml
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|