Debug micromamba
in windows
#1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows tests impl | |
on: | |
workflow_call: | |
inputs: | |
os: | |
required: true | |
type: string | |
build_type: | |
required: true | |
type: string | |
defaults: | |
run: | |
# micromamba activation | |
shell: cmd /C call {0} | |
jobs: | |
test_ver_command: | |
name: Test ver command | |
runs-on: ${{ inputs.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Run ver command | |
run: | | |
echo %COMSPEC% | |
%COMSPEC% /c ver | |
build_shared_win: | |
name: Build binaries | |
runs-on: ${{ inputs.os }} | |
steps: | |
- name: Checkout mamba repository | |
uses: actions/checkout@v4 | |
- name: Create build environment | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: ./dev/environment-dev.yml | |
environment-name: build_env | |
cache-environment: true | |
init-shell: cmd.exe | |
run: | | |
echo %COMSPEC% | |
- uses: hendrikmuhs/ccache-action@main | |
with: | |
variant: sccache | |
key: ${{ github.job }}-${{ inputs.os }} | |
restore-keys: | | |
ccache-libmamba-${{ inputs.os }} | |
- name: Build mamba | |
run: | | |
echo %COMSPEC% | |
cmake -B build/ -G Ninja ^ | |
--preset mamba-win-shared-${{ inputs.build_type }} ^ | |
-D CMAKE_MSVC_RUNTIME_LIBRARY="MultiThreadedDLL" ^ | |
-D CMAKE_CXX_COMPILER_LAUNCHER=sccache ^ | |
-D CMAKE_C_COMPILER_LAUNCHER=sccache ^ | |
-D BUILD_LIBMAMBAPY=OFF ^ | |
-D ENABLE_MAMBA_ROOT_PREFIX_FALLBACK=OFF | |
if %errorlevel% neq 0 exit /b %errorlevel% | |
cmake --build build/ --parallel | |
if %errorlevel% neq 0 exit /b %errorlevel% | |
- name: Show build cache statistics | |
run: sccache --show-stats | |
- name: Lock environment | |
run: micromamba env export --explicit > build/environment.lock | |
- name: Remove extra files before saving workspace | |
shell: bash -eo pipefail {0} | |
run: find build/ -type f -name '*.obj' -exec rm {} + | |
- name: Save workspace | |
uses: ./.github/actions/workspace | |
with: | |
action: save | |
path: build/ | |
key_suffix: ${{ inputs.os }}-${{ inputs.build_type }} | |
libmamba_tests_win: | |
name: libmamba tests | |
needs: ["build_shared_win"] | |
runs-on: ${{ inputs.os }} | |
steps: | |
- name: Checkout mamba repository | |
uses: actions/checkout@v4 | |
- name: Restore workspace | |
uses: ./.github/actions/workspace | |
with: | |
action: restore | |
path: build/ | |
key_suffix: ${{ inputs.os }}-${{ inputs.build_type }} | |
- name: Create build environment | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: ./build/environment.lock | |
environment-name: build_env | |
init-shell: bash cmd.exe | |
- name: Run solv-cpp tests | |
shell: bash -elo pipefail {0} | |
run: | | |
./build/libmamba/ext/solv-cpp/tests/test_solv_cpp | |
- name: Run libmamba tests | |
shell: bash -elo pipefail {0} | |
run: | | |
unset CONDARC # Interferes with tests | |
cd ./build/libmamba && ./tests/test_libmamba | |
libmambapy_tests_win: | |
name: libmambapy tests | |
needs: ["build_shared_win"] | |
runs-on: ${{ inputs.os }} | |
steps: | |
- name: Checkout mamba repository | |
uses: actions/checkout@v4 | |
- name: Restore workspace | |
uses: ./.github/actions/workspace | |
with: | |
action: restore | |
path: build/ | |
key_suffix: ${{ inputs.os }}-${{ inputs.build_type }} | |
- name: Create build environment | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: ./build/environment.lock | |
environment-name: build_env | |
init-shell: bash cmd.exe | |
- name: Install libmambapy | |
run: | | |
cmake --install build/ --prefix %CONDA_PREFIX% | |
# TODO add some ccache and parallelism to builds | |
python -m pip install --no-deps --no-build-isolation ./libmambapy | |
- name: Run libmamba Python bindings tests | |
run: | | |
python -m pytest libmambapy/tests/ ${{ runner.debug == 'true' && '-v' || '--exitfirst' }} | |
mamba_integration_tests_win: | |
name: mamba integration tests | |
needs: ["build_shared_win"] | |
runs-on: ${{ inputs.os }} | |
steps: | |
- name: Checkout mamba repository | |
uses: actions/checkout@v4 | |
- name: Restore workspace | |
uses: ./.github/actions/workspace | |
with: | |
action: restore | |
path: build/ | |
key_suffix: ${{ inputs.os }}-${{ inputs.build_type }} | |
- name: Create build environment | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: ./build/environment.lock | |
environment-name: build_env | |
init-shell: bash cmd.exe powershell | |
- name: Install mamba | |
shell: bash -elo pipefail {0} | |
run: | | |
cmake --install build/ --prefix local/ | |
- name: mamba python based tests with pwsh | |
shell: pwsh | |
run: | | |
$env:PYTHONIOENCODING='UTF-8' | |
$env:MAMBA_ROOT_PREFIX = Join-Path -Path $pwd -ChildPath 'mambaroot' | |
$env:TEST_MAMBA_EXE = Join-Path -Path $pwd -ChildPath 'local\bin\mamba.exe' | |
$env:MAMBA_TEST_SHELL_TYPE='powershell' | |
Remove-Item -Path "env:CONDARC" | |
python -m pytest micromamba/tests/ ` | |
${{ runner.debug == 'true' && '-v --capture=tee-sys' || '--exitfirst' }} |