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 eebe4c3 commit 5eb80fb
Showing 1 changed file with 66 additions and 79 deletions.
145 changes: 66 additions & 79 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# 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

# For more information see:
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: tests

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

jobs:
linux-tests:
build:
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 @@ -27,23 +34,40 @@ 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
environment-file: ${{ matrix.ymlfile }}
micromamba-root-path: ~/micromamba

- name: Initialize micromamba environment
- name: Initialize micromamba environment (Linux)
if: runner.os == 'Linux'
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: Create and activate environment
- 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'
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: Print environment infos
- 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'
shell: bash -l {0}
run: |
micromamba info
Expand All @@ -52,26 +76,54 @@ jobs:
which pip
which python
- name: Export Environment
- 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'
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
- name: Install package and test (Linux)
if: runner.os == 'Linux'
shell: bash -l {0}
run: |
pip install -e .
pytest
- name: Upload Coverage
- 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'
shell: bash -l {0}
run: |
pip install coveralls && coveralls --service=github
Expand All @@ -80,73 +132,8 @@ jobs:
COVERALLS_FLAG_NAME: ${{ matrix.python-version }}
COVERALLS_PARALLEL: true

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 C:\micromamba\bin
set PATH=C:\micromamba\bin;%PATH%
micromamba --version
- uses: mamba-org/setup-micromamba@v1
with:
micromamba-version: 'latest'
environment-file: ${{ matrix.ymlfile }}
micromamba-root-path: C:\micromamba

- name: Initialize micromamba environment
shell: cmd
run: |
micromamba shell init -s cmd -p C:\micromamba\envs\qa4sm_reader
- name: Create and activate environment
shell: cmd
run: |
call C:\micromamba\etc\profile.d\micromamba.cmd
micromamba create -y --name qa4sm_reader --file C:\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
- name: Upload Coverage (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
pip install coveralls && coveralls --service=github
Expand All @@ -157,7 +144,7 @@ jobs:

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

0 comments on commit 5eb80fb

Please sign in to comment.