Repository: Becksteinlab/GromacsWrapper (language: python)

Issue:
mamba installation fails on macOS GH runner
See, for example, https://github.com/Becksteinlab/GromacsWrapper/actions/runs/6191618372/job/16810197850#step:3:802
```
Warning: Error while loading conda entry point: conda-libmamba-solver (dlopen(/usr/local/miniconda/lib/python3.11/site-packages/libmambapy/bindings.cpython-311-darwin.so, 0x0002): Library not loaded: '@rpath/libarchive.13.dylib'
    Referenced from: '/usr/local/miniconda/lib/libmamba.2.0.0.dylib'
    Reason: tried: '/usr/local/miniconda/lib/libarchive.13.dylib' (no such file), '/usr/local/miniconda/lib/python3.11/site-packages/libmambapy/../../../libarchive.13.dylib' (no such file), '/usr/local/miniconda/lib/python3.11/site-packages/libmambapy/../../../libarchive.13.dylib' (no such file), '/usr/local/miniconda/bin/../lib/libarchive.13.dylib' (no such file), '/usr/local/miniconda/bin/../lib/libarchive.13.dylib' (no such file), '/usr/local/lib/libarchive.13.dylib' (no such file), '/usr/lib/libarchive.13.dylib' (no such file))
```


Discussion / hints:
This may be an upstream issue. 

I made macOS a non-mandatory status check for right now.

Fix patch:
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index f232e797..3bf59be9 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -15,6 +15,10 @@ concurrency:
   group: "${{ github.ref }}-${{ github.head_ref }}"
   cancel-in-progress: true
 
+defaults:
+  run:
+    shell: bash -l {0}
+
 jobs:
   test:
     runs-on: ${{ matrix.os }}
@@ -65,57 +69,53 @@ jobs:
     steps:
     - uses: actions/checkout@v3
 
-    - name: setup miniconda (Python ${{ matrix.python-version }})
-      uses: conda-incubator/setup-miniconda@v2
+    - name: micromamba environment and package installation (Python ${{ matrix.python-version }})
+      uses: mamba-org/setup-micromamba@v1
       with:
-        python-version: ${{ matrix.python-version }}
-        auto-update-conda: true
-        mamba-version: "*"
-        channels: conda-forge,bioconda,defaults
-        channel-priority: true
-        show-channel-urls: true
-          
-    - name: Conda info
-      shell: bash -l {0}
-      run: |
-         conda info
-         conda list
-         conda config --show-sources
-         conda config --show
+        environment-file: ci/conda-envs/test_env.yaml
+        condarc: |
+           channels:
+              - conda-forge
+              - bioconda
+           channel_priority: flexible	      
+        cache-downloads: true
+        cache-environment: true
+        create-args: >-
+           python=${{ matrix.python-version }}.*=*_cpython
 
-    - name: Python version ${{ matrix.python-version }}
-      shell: bash -l {0}
+    - name: Python version information ${{ matrix.python-version }}
       run: |
          python -c "import sys; print(sys.version)"                
 
-    - name: Install package dependencies
-      shell: bash -l {0}
+    - name: micromamba environment information
       run: |
-         mamba install six numpy scipy matplotlib-base pandas numkit
+         micromamba info
+         micromamba list
 
     - name: Install pytest and plugins
-      shell: bash -l {0}
       run: |
-         mamba install pytest pytest-pep8 pytest-cov codecov
+         micromamba install pytest pytest-pep8 pytest-cov codecov
 
     - name: Install GROMACS (${{ matrix.gromacs-version }})
-      shell: bash -l {0}
+      # UGLY HACK/FIX (probably to issues with bioconda packages)
+      # - For 3.9, micromamba insists on using pypy 3.9 (and --py-pin does not help).
+      # - For 2.7 macOS, numkit would get uninstalled.
+      # We can't freeze because then it's not possible to install older GROMACS versions from bioconda. 
       run: |
-         mamba install 'gromacs==${{ matrix.gromacs-version }}' pocl
+         micromamba install 'gromacs==${{ matrix.gromacs-version }}' pocl numkit python=${{ matrix.python-version }}.*=*_cpython
 
-    - name: Install package
-      shell: bash -l {0}
+    - name: Install package (with no dependencies)
       run: |
         python -m pip install --no-deps .
 
     - name: Run tests
-      shell: bash -l {0}
       run: |
         pytest -v --disable-pytest-warnings --durations=20 --low-performance --cov=gromacs --cov-report=xml --color=yes ./tests
 
     - name: Codecov
       uses: codecov/codecov-action@v3
       with:
+        token: ${{ secrets.CODECOV_TOKEN }}
         name: codecov-${{ matrix.os }}-py${{ matrix.python-version }}
         file: ./coverage.xml
         fail_ci_if_error: false
diff --git a/setup.py b/setup.py
index 175dd7b5..34861230 100644
--- a/setup.py
+++ b/setup.py
@@ -66,6 +66,6 @@
                         'numkit',       # numerical helpers
                         'matplotlib',
                         ],
-      tests_require=['pytest', 'numpy>=1.0', 'pandas>=0.17'],
+      tests_require=['pytest', 'pandas>=0.17'],
       zip_safe=True,
       )


Test patch:
diff --git a/ci/conda-envs/test_env.yaml b/ci/conda-envs/test_env.yaml
new file mode 100644
index 00000000..8f3003fe
--- /dev/null
+++ b/ci/conda-envs/test_env.yaml
@@ -0,0 +1,10 @@
+name: test
+channels:
+- conda-forge
+dependencies:
+- python
+- six
+- numpy>=1.0
+- matplotlib
+- pandas>=0.17
+- numkit
\ No newline at end of file