feat: Components & Groups w. new Muscle structure in Arms & Legs #68
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: Tests (self hosted) | |
on: | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
use-custom-anybodycon: | |
type: boolean | |
description: 'Use a custom version of AnyBody from AMS build system.' | |
default: false | |
custom-anybodycon-name: | |
description: 'Name of the custom AnyBody version to use. (E.g. path on the I:\ drive)' | |
required: false | |
default: 'AnyBody.8.1-CI-master.AnyBody.8.1.x/AnyBodyCon.exe' | |
custom-pytest-arg: | |
description: 'Specify which test to run. E.g. `Tests/test_example.any`. Default is entire test suite.' | |
required: false | |
default: '' | |
concurrency: | |
group: test-self-hosted-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
# Run all private AMMR forks on self-hosted runners | |
if: ${{ (github.event_name == 'workflow_dispatch') || (github.repository_owner == 'anybody' && !(github.repository == 'anybody/ammr' || github.repository == 'anybody/ammr4-beta')) }} | |
strategy: | |
fail-fast: false | |
matrix: | |
test_group: [1, 2, 3, 4, 5] | |
env: | |
# Triggers a warning at 20 deg | |
ShortestPathMaxAngle: 0.3491 | |
runs-on: [self-hosted, Windows, AnyBody] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: prefix-dev/setup-pixi@v0.8.1 | |
with: | |
environments: test | |
pixi-bin-path: ${{ runner.temp }}\Scripts\pixi.exe | |
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'ammr4-beta' }} | |
activate-environment: test | |
- name: Patch with custom version | |
if: inputs.use-custom-anybodycon | |
uses: ./.github/actions/custom-anybodycon | |
with: | |
custom-anybodycon: ${{ inputs.custom-anybodycon-name }} | |
connection-string: ${{ secrets.AZURE_CONN_STR }} | |
target-path: .pixi/envs/test/bin/AnyBodyConCustom.exe | |
- name: Set custom AnyBodyCon environment variable | |
if: inputs.use-custom-anybodycon | |
run: | | |
echo "ANYBODYCON=.pixi/envs/test/bin/AnyBodyConCustom.exe" >> $GITHUB_ENV | |
- name: Run AMMR tests | |
run: | | |
cd Tests | |
pytest -n 5 --dist worksteal ` | |
--splits 5 --group ${{ matrix.test_group }} --splitting-algorithm=least_duration ` | |
--durations=10 ` | |
--anybodycon="$Env:ANYBODYCON" ` | |
--runslow ` | |
${{ github.event.inputs.custom-pytest-arg != '' && ' ' || '$(Get-content .\known-failing-tests.txt | foreach {"--deselect={0}" -f $_.split("#")[0].trim() })' }} ` | |
${{ github.event.inputs.custom-pytest-arg || '' }} | |
- name: Run known failing AMMR tests | |
if: github.event.inputs.custom-pytest-arg == '' && matrix.test_group == 1 | |
run: | | |
~\micromamba.exe shell hook -s powershell | Out-String | iex | |
micromamba activate _ammr_test | |
cd Tests | |
# Check if the file .\known-failing-tests.txt is emtpty | |
if ((Get-Content .\known-failing-tests.txt | Measure-Object).Count -gt 0) { | |
pytest -n auto ` | |
--durations=20 ` | |
--anybodycon="$Env:ANYBODYCON" ` | |
--xfail-all ` | |
--runslow ` | |
--suppress-no-test-exit-code ` | |
$(Get-content .\known-failing-tests.txt | foreach {"{0}" -f $_.split('#')[0].trim()}) | |
} |