Reduce memory use during tests and relax memory limit (#2418) #3017
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: Testing on Windows | |
on: | |
push: | |
branches: | |
- 'main' | |
- 'release-*' | |
pull_request: | |
paths: | |
- '**' | |
- '!docs/**' | |
release: | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
runs-on: windows-latest | |
env: | |
CONDA_OVERRIDE_CUDA: 11.8 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Needed to get tags so that git describe works during package build | |
fetch-depth: "0" | |
- name: Get Date | |
id: get-date | |
run: | | |
echo "date=$(/bin/date -u "+%Y%V")" >> $GITHUB_OUTPUT | |
shell: bash | |
- name: Cache Miniforge and Pip packages | |
uses: actions/cache@v4 | |
env: | |
CACHE_NUMBER: 0 | |
with: | |
path: | | |
~/conda_pkgs_dir | |
~/.cache/pip | |
key: | |
${{runner.os}}-condapkg-${{env.CACHE_NUMBER}}-${{steps.get-date.outputs.date}}-${{hashFiles('environment-dev.yml','conda/meta.yaml')}} | |
- name: Setup Miniforge | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
miniforge-version: latest | |
activate-environment: mantidimaging-dev | |
auto-activate-base: false | |
use-mamba: true | |
- name: Cache Miniforge environment | |
uses: actions/cache@v4 | |
id: cache-miniforge-environment | |
env: | |
CACHE_NUMBER: 0 | |
with: | |
path: ${{env.CONDA}}/envs/mantidimaging-dev | |
key: | |
${{runner.os}}-condaenv-${{env.CACHE_NUMBER}}-${{steps.get-date.outputs.date}}-${{hashFiles('environment-dev.yml','conda/meta.yaml')}} | |
- name: Mantid Imaging developer dependencies | |
if: steps.cache-miniforge-environment.outputs.cache-hit != 'true' | |
shell: bash -l {0} | |
run: | | |
conda deactivate | |
python ./setup.py create_dev_env | |
- name: List versions | |
shell: bash -l {0} | |
run: | | |
mamba env list | |
python --version; mamba list ; pip list | |
- name: Yapf | |
shell: bash -l {0} | |
run: | | |
yapf --parallel --diff --recursive . | |
- name: Ruff | |
shell: bash -l {0} | |
run: | | |
ruff check . | |
- name: mypy | |
shell: bash -l {0} | |
run: | | |
mypy --ignore-missing-imports mantidimaging | |
- name: pyright | |
shell: bash -l {0} | |
run: | | |
pyright mantidimaging | |
- name: pytest | |
timeout-minutes: 10 | |
shell: bash -l {0} | |
run: | | |
python -m pytest --cov --cov-report=xml -n auto --maxprocesses=4 --dist loadgroup -o log_cli=true --ignore=mantidimaging/eyes_tests --durations=10 | |
- name: Get test data | |
shell: bash -l {0} | |
run: | | |
curl -L https://github.com/mantidproject/mantidimaging-data/archive/refs/tags/small.zip --output small.zip | |
unzip -q small.zip -d ~ | |
mv ~/mantidimaging-data-small ~/mantidimaging-data | |
timeout-minutes: 5 | |
- name: GUI Tests System | |
shell: bash -l {0} | |
run: | | |
python -m pytest -vs -rs -p no:xdist -p no:randomly -p no:repeat -p no:cov -o log_cli=true --run-system-tests --durations=10 | |
timeout-minutes: 15 | |
- name: Set display resolution for screenshot tests | |
run: | | |
Set-DisplayResolution -Width 1920 -Height 1080 -Force | |
shell: pwsh | |
- name: GUI Tests Screenshots Applitools | |
if: github.event_name == 'pull_request' | |
shell: bash -l {0} | |
env: | |
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }} | |
APPLITOOLS_BATCH_ID: ${{ github.sha }} | |
GITHUB_BRANCH_NAME: ${{ github.head_ref }} | |
run: | | |
python -m pytest -vs -rs -p no:xdist -p no:randomly -p no:repeat -p no:cov -o log_cli=true mantidimaging/eyes_tests --run-eyes-tests --durations=10 | |
timeout-minutes: 15 | |
# Label as 'windows-build-test' for testing purposes. | |
# To re-enable, use the if rule from the conda workflow and change label to 'unstable' after testing | |
- name: publish package | |
if: github.event_name == 'release' || (github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release'))) | |
uses: ./.github/actions/publish-package | |
with: | |
label: unstable | |
token: ${{ secrets.ANACONDA_API_TOKEN_MANTIDIMAGING }} | |
token-old: ${{ secrets.ANACONDA_API_TOKEN }} |