From 557494491e13362e23065eb4f9fa39bca2c067dd Mon Sep 17 00:00:00 2001 From: nfb2021 Date: Mon, 7 Oct 2024 16:31:31 +0200 Subject: [PATCH] solving micromamba env creation --- .github/workflows/test.yml | 140 +++++++++++++++++++++---------------- 1 file changed, 78 insertions(+), 62 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d2baddc..179c012 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -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 @@ -11,7 +11,7 @@ on: - cron: '0 0 * * *' # daily jobs: - build: + linux-tests: name: Build py${{ matrix.python-version }} @ ${{ matrix.os }} 🐍 runs-on: ${{ matrix.os }} strategy: @@ -19,11 +19,6 @@ 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: @@ -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 @@ -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 @@ -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 @@ -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: