From 5eb80fbc3a551388c3d005e5d1ed8a930acdfc8b Mon Sep 17 00:00:00 2001 From: nfb2021 Date: Mon, 7 Oct 2024 16:36:18 +0200 Subject: [PATCH] solving micromamba env creation --- .github/workflows/test.yml | 145 +++++++++++++++++-------------------- 1 file changed, 66 insertions(+), 79 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 571891f..f452da7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -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 @@ -11,7 +14,7 @@ on: - cron: '0 0 * * *' # daily jobs: - linux-tests: + build: name: Build py${{ matrix.python-version }} @ ${{ matrix.os }} 🐍 runs-on: ${{ matrix.os }} strategy: @@ -19,6 +22,10 @@ jobs: 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: @@ -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 @@ -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 @@ -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 @@ -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: