Skip to content

Commit

Permalink
solving micromamba env creation
Browse files Browse the repository at this point in the history
  • Loading branch information
nfb2021 committed Oct 7, 2024
1 parent 723be6c commit 5574944
Showing 1 changed file with 78 additions and 62 deletions.
140 changes: 78 additions & 62 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow will install Python dependencies and run tests on
# Windows and Linux systems with a variety of Python versions
# windows and linux systems with a variety of Python versions

name: tests

Expand All @@ -11,19 +11,14 @@ on:
- cron: '0 0 * * *' # daily

jobs:
build:
linux-tests:
name: Build py${{ matrix.python-version }} @ ${{ matrix.os }} 🐍
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10']
os: ['ubuntu-latest']
ymlfile: ['environment.yml']
include:
- os: 'windows-latest'
python-version: '3.10'
ymlfile: 'environment.yml'

steps:
- uses: actions/checkout@v2
with:
Expand All @@ -32,39 +27,23 @@ jobs:
- uses: mamba-org/setup-micromamba@v1
with:
micromamba-version: 'latest'
environment-file: ${{ matrix.ymlfile }} # Ensure the env file is correctly defined
micromamba-root-path: ~/micromamba # Optional, where to install micromamba

- name: Initialize micromamba environment (Linux)
if: runner.os == 'Linux'
- name: Initialize micromamba environment
shell: bash -l {0}
run: |
micromamba shell init -s bash -p ~/micromamba/envs/qa4sm_reader
micromamba create -y --name qa4sm_reader --file ${{ matrix.ymlfile }}
echo "source ~/micromamba/etc/profile.d/micromamba.sh" >> ~/.bashrc
- name: Initialize micromamba environment (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
micromamba shell init -s cmd -p %USERPROFILE%\micromamba\envs\qa4sm_reader
micromamba create -y --name qa4sm_reader --file %USERPROFILE%\micromamba\envs\qa4sm_reader\${{ matrix.ymlfile }}
- name: Activate environment (Linux)
if: runner.os == 'Linux'
- name: Create and activate environment
shell: bash -l {0}
run: |
source ~/micromamba/etc/profile.d/micromamba.sh
micromamba create -y --name qa4sm_reader --file ${{ matrix.ymlfile }}
micromamba activate qa4sm_reader
- name: Activate environment (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
call %USERPROFILE%\micromamba\etc\profile.d\micromamba.cmd
micromamba activate qa4sm_reader
- name: Print environment infos (Linux)
if: runner.os == 'Linux'
- name: Print environment infos
shell: bash -l {0}
run: |
micromamba info
Expand All @@ -73,54 +52,26 @@ jobs:
which pip
which python
- name: Print environment infos (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
micromamba info
micromamba list
pip list
where pip
where python
- name: Export Environment (Linux)
if: runner.os == 'Linux'
- name: Export Environment
shell: bash -l {0}
run: |
mkdir -p artifacts
filename=env_py${{ matrix.python-version }}_${{ matrix.os }}.yml
micromamba env export --name qa4sm_reader > artifacts/$filename
- name: Export Environment (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
mkdir artifacts
set filename=env_py${{ matrix.python-version }}_${{ matrix.os }}.yml
micromamba env export --name qa4sm_reader > artifacts\%filename%
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: Artifacts-py${{ matrix.python-version }}-${{ matrix.os }}
path: artifacts/*

- name: Install package and test (Linux)
if: runner.os == 'Linux'
- name: Install package and test
shell: bash -l {0}
run: |
pip install -e .
pytest
- name: Install package and test (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
pip install -e .
pytest
- name: Upload Coverage (Linux)
if: runner.os == 'Linux'
- name: Upload Coverage
shell: bash -l {0}
run: |
pip install coveralls && coveralls --service=github
Expand All @@ -129,8 +80,73 @@ jobs:
COVERALLS_FLAG_NAME: ${{ matrix.python-version }}
COVERALLS_PARALLEL: true

- name: Upload Coverage (Windows)
if: runner.os == 'Windows'
windows-tests:
name: Build py${{ matrix.python-version }} @ ${{ matrix.os }} 🐍
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ['3.10']
os: ['windows-latest']
ymlfile: ['environment.yml']
steps:
- uses: actions/checkout@v2
with:
submodules: true

- name: Install Micromamba
shell: cmd
run: |
curl -Ls https://micromamba.snakepit.net/api/micromamba/win-64/latest | tar -xvj -C %USERPROFILE%\micromamba\bin
set PATH=%USERPROFILE%\micromamba\bin;%PATH%
micromamba --version
- uses: mamba-org/setup-micromamba@v1
with:
micromamba-version: 'latest'
environment-file: ${{ matrix.ymlfile }}
micromamba-root-path: %USERPROFILE%\micromamba

- name: Initialize micromamba environment
shell: cmd
run: |
micromamba shell init -s cmd -p %USERPROFILE%\micromamba\envs\qa4sm_reader
- name: Create and activate environment
shell: cmd
run: |
call %USERPROFILE%\micromamba\etc\profile.d\micromamba.cmd
micromamba create -y --name qa4sm_reader --file %USERPROFILE%\micromamba\envs\qa4sm_reader\${{ matrix.ymlfile }}
micromamba activate qa4sm_reader
- name: Print environment infos
shell: cmd
run: |
micromamba info
micromamba list
pip list
where pip
where python
- name: Export Environment
shell: cmd
run: |
mkdir artifacts
set filename=env_py${{ matrix.python-version }}_${{ matrix.os }}.yml
micromamba env export --name qa4sm_reader > artifacts\%filename%
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: Artifacts-py${{ matrix.python-version }}-${{ matrix.os }}
path: artifacts\*

- name: Install package and test
shell: cmd
run: |
pip install -e .
pytest
- name: Upload Coverage
shell: cmd
run: |
pip install coveralls && coveralls --service=github
Expand All @@ -141,7 +157,7 @@ jobs:

coveralls:
name: Submit Coveralls 👚
needs: build
needs: [linux-tests, windows-tests]
runs-on: ubuntu-latest
container: python:3-slim
steps:
Expand Down

0 comments on commit 5574944

Please sign in to comment.