-
Notifications
You must be signed in to change notification settings - Fork 358
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4f259af
commit 7a89c56
Showing
3 changed files
with
175 additions
and
164 deletions.
There are no files selected for viewing
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
name: Unix tests impl | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
os: | ||
required: true | ||
type: string | ||
build_type: | ||
required: true | ||
type: string | ||
|
||
defaults: | ||
run: | ||
# micromamba activation | ||
shell: bash -l -eo pipefail {0} | ||
|
||
jobs: | ||
build_shared_unix: | ||
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 | ||
- uses: hendrikmuhs/ccache-action@main | ||
with: | ||
variant: sccache | ||
key: ${{ github.job }}-${{ inputs.os }} | ||
restore-keys: | | ||
libmamba-${{ inputs.os }} | ||
- name: Build libmamba | ||
run: | | ||
cmake -B build/ -G Ninja \ | ||
--preset mamba-unix-shared-${{ inputs.build_type }} \ | ||
-D CMAKE_CXX_COMPILER_LAUNCHER=sccache \ | ||
-D CMAKE_C_COMPILER_LAUNCHER=sccache | ||
cmake --build build/ --parallel --parallel | ||
- 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 | ||
run: find build/ -type d -name CMakeFiles -exec rm -rf {} + | ||
- name: Save workspace | ||
uses: ./.github/actions/workspace | ||
with: | ||
action: save | ||
path: build/ | ||
key_suffix: ${{ inputs.os }}-${{ inputs.build_type }} | ||
|
||
libmamba_tests_unix: | ||
name: libmamba tests | ||
needs: ["build_shared_unix"] | ||
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 | ||
- name: Run libmamba tests | ||
run: | | ||
unset CONDARC # Interferes with tests | ||
cd build/libmamba/tests/ && ./test_libmamba | ||
libmambay_tests_unix: | ||
name: libmamba Python bindings tests | ||
needs: ["build_shared_unix"] | ||
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 | ||
- name: Install libmambapy | ||
run: | | ||
ln build/libmambapy/bindings* libmambapy/libmambapy/ | ||
cmake --install build/ --prefix "${CONDA_PREFIX}" | ||
python -m pip install ./libmambapy/ | ||
- name: Run libmamba Python bindings tests | ||
run: | | ||
python -m pytest libmambapy/tests/ | ||
umamba_integration_tests_unix: | ||
name: Micromamba integration tests | ||
needs: ["build_shared_unix"] | ||
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 | ||
- name: install zsh, xonsh, fish and tcsh in linux | ||
if: startsWith(inputs.os, 'ubuntu') | ||
run: | | ||
sudo apt-get install zsh xonsh fish tcsh -y | ||
- name: install xonsh and fish in mac | ||
if: startsWith(inputs.os, 'macos') | ||
run: | | ||
brew install fish xonsh | ||
- name: micromamba python based tests | ||
run: | | ||
export TEST_MAMBA_EXE=$(pwd)/build/micromamba/micromamba | ||
unset CONDARC # Interferes with tests | ||
pytest -v --capture=tee-sys micromamba/tests/ | ||
- name: micromamba local channel test | ||
run: | | ||
unset CONDARC # Interferes with tests | ||
export TEST_MAMBA_EXE=$(pwd)/build/micromamba/micromamba | ||
if [ "$RUNNER_OS" == "Linux" ]; then | ||
mkdir -p $MAMBA_ROOT_PREFIX/conda-bld/linux-64 | ||
wget -P $MAMBA_ROOT_PREFIX/conda-bld/linux-64 https://anaconda.org/conda-forge/xtensor/0.21.8/download/linux-64/xtensor-0.21.8-hc9558a2_0.tar.bz2 | ||
wget -P $MAMBA_ROOT_PREFIX/conda-bld/linux-64 https://anaconda.org/conda-forge/xtl/0.6.21/download/linux-64/xtl-0.6.21-h0efe328_0.tar.bz2 | ||
else | ||
mkdir -p $MAMBA_ROOT_PREFIX/conda-bld/osx-64 | ||
wget -P $MAMBA_ROOT_PREFIX/conda-bld/osx-64 https://anaconda.org/conda-forge/xtensor/0.21.8/download/osx-64/xtensor-0.21.8-h879752b_0.tar.bz2 | ||
wget -P $MAMBA_ROOT_PREFIX/conda-bld/osx-64 https://anaconda.org/conda-forge/xtl/0.6.21/download/osx-64/xtl-0.6.21-h6516342_0.tar.bz2 | ||
fi | ||
conda index $MAMBA_ROOT_PREFIX/conda-bld | ||
"${TEST_MAMBA_EXE}" create -n l_o_cal_test xtensor -c local -c conda-forge -y | ||
"${TEST_MAMBA_EXE}" list -n l_o_cal_test | ||
"${TEST_MAMBA_EXE}" list -n l_o_cal_test | tail -n +3 > list.txt | ||
if [ "$(grep -c "conda-bld" list.txt)" -ne 2 ]; then | ||
exit 1 | ||
fi |