Merge pull request #1 from wlsnmrk/synchronicity #10
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 🖼 Visual Tests | |
on: | |
push: | |
branches: | |
- '**' | |
paths: | |
- '**.cs' | |
pull_request: | |
jobs: | |
visual_tests: | |
name: 🖼 Visual Tests | |
runs-on: ubuntu-latest | |
# 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 | |
env: | |
DOTNET_CLI_TELEMETRY_OPTOUT: true | |
DOTNET_NOLOGO: true | |
strategy: | |
# Don't cancel other runners if one fails. | |
fail-fast: false | |
matrix: | |
# Put the operating systems you want to run on here. | |
render-driver: [vulkan] | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: 🧾 Checkout | |
uses: actions/checkout@v3 | |
with: | |
lfs: true | |
submodules: 'recursive' | |
- name: 💽 Setup .NET SDK | |
uses: actions/setup-dotnet@v3 | |
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: 💾 Add Graphics Driver Emulators Source | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo add-apt-repository -n ppa:kisak/kisak-mesa | |
- name: 💾 Install Graphics Driver Emulators | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: mesa-vulkan-drivers binutils | |
version: 1.0 | |
- name: 🤖 Setup Godot | |
uses: chickensoft-games/setup-godot@v1 | |
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: GodotTestDriver.Tests | |
run: godot --headless --build-solutions --quit || exit 0 | |
- name: 🌋 Run Tests in Godot | |
working-directory: GodotTestDriver.Tests | |
run: | | |
xvfb-run godot --audio-driver Dummy --rendering-driver ${{ matrix.render-driver }} --run-tests --quit-on-finish --coverage | |
echo "Finished running tests in Godot with emulated ${{ matrix.render-driver }} graphics." | |
# The --coverage flag is used by GoDotTest to control the exit code | |
# of Godot by force-exiting through C#. | |
# | |
# Since Godot tends to exit with non-zero exit codes (even on success) | |
# this flag allows GoDotTest to ensure that this step will only fail | |
# when the tests fail. | |
echo "Finished running tests in Godot with emulated ${{ matrix.render-driver }} graphics." |