--- a +++ b/.github/workflows/ci-pytest.yml @@ -0,0 +1,56 @@ +name: ci-pytest + +on: + push: + branches: + - master + pull_request: + branches: + - master + workflow_dispatch: + +env: + # Updates or changes to this, or the runner OS or arch will invalidate the cache + python_version: "3.12" # Python version to use for testing - update when needed + +jobs: + test: + runs-on: ubuntu-22.04 + # Default shell needs to be bash for conda + # https://github.com/conda-incubator/setup-miniconda?tab=readme-ov-file#important + defaults: + run: + shell: bash -el {0} + steps: + - name: Setup Miniconda + uses: conda-incubator/setup-miniconda@505e6394dae86d6a5c7fbb6e3fb8938e3e863830 # v3.1.1, devs recommend using hash + with: + miniforge-version: latest + python-version: ${{ env.python_version }} + auto-update-conda: true + activate-environment: "test-env" + + - name: Checkout code + uses: actions/checkout@v4 # Checkout PR code to 'antspy-pr' + with: + path: antspy-pr + + - name: Install dependencies and ANTsPy from PR + run: | + conda info + conda create -n antspy-env python=${{ env.python_version }} -y + conda activate antspy-env + conda install coverage + conda info + pip install ./antspy-pr + conda list + + - name: Run tests + run: | + conda activate antspy-env + bash antspy-pr/tests/run_tests.sh -c + + - name: Coveralls + uses: coverallsapp/github-action@v2 + with: + files: antspy-pr/tests/coverage.xml