65 lines
2.0 KiB
YAML
65 lines
2.0 KiB
YAML
name: Tests
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
tests:
|
|
name: Evaluate Tests on ${{ matrix.os }}
|
|
# Only run the workflow if it's not a PR or if it's a PR from a fork.
|
|
# This prevents duplicate workflows from running on PR's that originate
|
|
# from the repository itself.
|
|
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
# Don't cancel other OS runners if one fails.
|
|
fail-fast: false
|
|
matrix:
|
|
# Put the operating systems you want to run on here.
|
|
os: [ubuntu-latest]
|
|
env:
|
|
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
|
DOTNET_NOLOGO: true
|
|
defaults:
|
|
run:
|
|
# Use bash shells on all platforms.
|
|
shell: bash
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
with:
|
|
lfs: true
|
|
submodules: 'recursive'
|
|
|
|
- name: Setup .NET SDK
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
# Use the .NET SDK from global.json in the root of the repository.
|
|
global-json-file: global.json
|
|
|
|
- name: Restore Dependencies
|
|
run: dotnet restore
|
|
|
|
- name: Setup Godot
|
|
uses: chickensoft-games/setup-godot@v2
|
|
with:
|
|
# Version must include major, minor, and patch, and be >= 4.0.0
|
|
# Pre-release label is optional.
|
|
#
|
|
# In this case, we are using the version from global.json.
|
|
#
|
|
# This allows checks on renovatebot PR's to succeed whenever
|
|
# renovatebot updates the Godot SDK version.
|
|
version: global.json
|
|
|
|
- name: Generate .NET Bindings
|
|
working-directory: GodotHelper.Tests
|
|
run: godot --headless --build-solutions --quit || exit 0
|
|
|
|
- name: Build Projects
|
|
run: dotnet build
|
|
|
|
- name: Run Tests
|
|
working-directory: GodotHelper.Tests
|
|
run: godot --headless --run-tests --quit-on-finish
|