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
62 lines
2.1 KiB
YAML
62 lines
2.1 KiB
YAML
name: Integration Test
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
speckle-sharp-sdk-ref:
|
|
required: true
|
|
type: string
|
|
|
|
jobs:
|
|
integration-test:
|
|
env:
|
|
CLIENT_DIR: "./client"
|
|
CLIENT_REPO: "specklesystems/speckle-sharp-sdk"
|
|
SERVER_DIR: "./server"
|
|
SERVER_REPO: "specklesystems/speckle-server-internal"
|
|
SOLUTION: "Speckle.Sdk.sln"
|
|
SPECKLE_SERVER_IMAGE: "speckle-server:local"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout ${{ env.CLIENT_REPO }}
|
|
uses: actions/checkout@v6
|
|
with:
|
|
path: ${{ env.CLIENT_DIR }}
|
|
repository: ${{ env.CLIENT_REPO }}
|
|
ref: ${{ inputs.speckle-sharp-sdk-ref }}
|
|
|
|
- name: Checkout ${{ env.SERVER_REPO }}
|
|
uses: actions/checkout@v6
|
|
with:
|
|
repository: ${{ env.SERVER_REPO }}
|
|
path: ${{ env.SERVER_DIR }}
|
|
|
|
- name: Setup .NET SDK
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
dotnet-version: 8.x.x
|
|
# cache: true
|
|
# cache-dependency-path: "**/packages.lock.json"
|
|
|
|
- name: 🏗️ Build Server
|
|
run: docker build --file "./packages/server/Dockerfile" --tag ${{ env.SPECKLE_SERVER_IMAGE }} .
|
|
working-directory: ${{ env.SERVER_DIR }}
|
|
|
|
- name: ⚙️ Spin up Server
|
|
run: docker compose --file "../${{ env.CLIENT_DIR }}/docker-compose-internal.yml" up --wait
|
|
working-directory: ${{ env.SERVER_DIR }}
|
|
env:
|
|
SPECKLE_SERVER_IMAGE: ${{ env.SPECKLE_SERVER_IMAGE }}
|
|
|
|
- name: 📦 Restore .NET Solution
|
|
run: dotnet restore ${{ env.SOLUTION }} --locked-mode
|
|
working-directory: ${{ env.CLIENT_DIR }}
|
|
|
|
- name: 🏗️ Build .NET Solution
|
|
run: dotnet build ${{ env.SOLUTION }} --configuration Release --no-restore -warnaserror
|
|
working-directory: ${{ env.CLIENT_DIR }}
|
|
|
|
- name: 🔨 Run .NET Integration Tests
|
|
run: dotnet test ${{ env.SOLUTION }} --filter "(Category=Integration)&(Server!=Public)" --configuration Release --no-build --no-restore --verbosity=normal
|
|
working-directory: ${{ env.CLIENT_DIR }}
|