57843cc454
* experiment * rename * we'll give this a go * fix path * correct path * the correct path this time * build docker image first * correct docker build * try this * ensure editor config is observed * typo
63 lines
2.1 KiB
YAML
63 lines
2.1 KiB
YAML
name: Integration Test
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
docker-compose-file:
|
|
required: true
|
|
type: string
|
|
use-internal-image:
|
|
default: false
|
|
type: boolean
|
|
secrets:
|
|
CODECOV_TOKEN:
|
|
required: true
|
|
jobs:
|
|
integration-test:
|
|
env:
|
|
Solution: "Speckle.Sdk.sln"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- 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-internal-image }}
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: "ghcr.io"
|
|
username: ${{ github.actor }}
|
|
password: ${{ github.token }}
|
|
|
|
- name: ⚙️ Spin up Server
|
|
run: docker compose --file ${{ 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 against Public Server
|
|
if: ${{ !inputs.use-internal-image }}
|
|
run: dotnet test ${{ env.Solution }} --filter "(Category=Integration)&(Server!=Internal)" --configuration Release --no-build --no-restore --verbosity=normal /p:AltCover=true /p:AltCoverAttributeFilter=ExcludeFromCodeCoverage
|
|
|
|
- name: 🔨 Integration Tests against Internal Server
|
|
if: ${{ inputs.use-internal-image }}
|
|
run: dotnet test ${{ env.Solution }} --filter "(Category=Integration)&(Server!=Public)" --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
|
|
continue-on-error: true
|
|
with:
|
|
fail_ci_if_error: true
|
|
files: tests/**/coverage.xml
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|