From ccc54dbfdd245add6e2eb38c69daf156d8ad1340 Mon Sep 17 00:00:00 2001 From: Thierry RAMORASOAVINA Date: Mon, 23 Mar 2026 14:25:12 +0100 Subject: [PATCH] Remove the old github conda workflow after the refactoring --- .github/workflows/conda.yml | 268 ------------------------------------ 1 file changed, 268 deletions(-) delete mode 100644 .github/workflows/conda.yml diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml deleted file mode 100644 index 784b1099..00000000 --- a/.github/workflows/conda.yml +++ /dev/null @@ -1,268 +0,0 @@ ---- -name: Conda Package -env: - # Note: The default Khiops version must never be an alpha release as they are - # ephemeral. To test alpha versions run the workflow manually. - DEFAULT_KHIOPS_CORE_VERSION: 11.0.0 - DEFAULT_SAMPLES_VERSION: 11.0.0 -on: - workflow_dispatch: - inputs: - khiops-core-version: - default: 11.0.0 - description: khiops-core version for testing - khiops-samples-version: - default: 11.0.0 - description: khiops-samples version - push: - tags: ['*'] - pull_request: - paths: - - pyproject.toml - - LICENSE.md - - packaging/conda/**, - - '!packaging/conda/README.md' - - .github/workflows/conda.yml -defaults: - run: - shell: bash -el {0} -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true -jobs: - build: - runs-on: ubuntu-22.04 - steps: - - name: Checkout Sources - uses: actions/checkout@v4 - with: - # Checkout the full repository to have the tags so versioneer works properly - # See issue https://github.com/actions/checkout/issues/701 - fetch-depth: 0 - - name: Install Miniforge - uses: conda-incubator/setup-miniconda@v3 - with: - miniforge-version: 24.11.0-0 - python-version: '3.12' - conda-remove-defaults: true - - name: Install Dependency Requirements for Building Conda Packages - run: conda install -y conda-build - - name: Build the Conda Package - run: | - conda build --output-folder ./khiops-conda ./packaging/conda - - name: Upload Conda Package Artifact - uses: actions/upload-artifact@v4 - with: - name: khiops-conda - path: ./khiops-conda - retention-days: 7 - # Test Conda package on brand new environments - test: - needs: build - strategy: - fail-fast: false - matrix: - python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] - env: - - {os: ubuntu-22.04, json-image: '{"image": "ubuntu:20.04"}'} - - {os: ubuntu-22.04, json-image: '{"image": null}'} - - {os: ubuntu-24.04, json-image: '{"image": null}'} - - {os: ubuntu-22.04, json-image: '{"image": "rockylinux:8"}'} - - {os: ubuntu-22.04, json-image: '{"image": "rockylinux:9"}'} - - {os: windows-2022, json-image: '{"image": null}'} - - {os: windows-2025, json-image: '{"image": null}'} - - {os: macos-14, json-image: '{"image": null}'} - - {os: macos-15, json-image: '{"image": null}'} - - {os: macos-15-intel, json-image: '{"image": null}'} - runs-on: ${{ matrix.env.os }} - container: ${{ fromJSON(matrix.env.json-image) }} - steps: - - name: Install Miniforge - uses: conda-incubator/setup-miniconda@v3 - with: - miniforge-version: 24.11.0-0 - python-version: ${{ matrix.python-version }} - conda-remove-defaults: true - - name: Download Conda Package Artifact - uses: actions/download-artifact@v4 - with: - name: khiops-conda - path: ./khiops-conda - - name: Put the khiops-core Version in the Environment - run: | - KHIOPS_CORE_VERSION="${{ inputs.khiops-core-version || env.DEFAULT_KHIOPS_CORE_VERSION }}" - echo "KHIOPS_CORE_VERSION=$KHIOPS_CORE_VERSION" >> "$GITHUB_ENV" - - name: Install the Khiops Conda package - run: | - # Add the Conda `rc` label for alpha or RC pre-releases - if [[ $(echo ${KHIOPS_CORE_VERSION} | grep -E ".*(a|rc)\.[0-9]+") ]]; then - RC_LABEL="conda-forge/label/rc::" - else - RC_LABEL="" - fi - conda install "${RC_LABEL}"khiops-core==$KHIOPS_CORE_VERSION - conda install --channel ./khiops-conda/ khiops - - name: Install JQ test dependency (Linux / MacOS) - if: runner.os != 'Windows' - run: conda install jq - - name: Test Conda / Python Package Version Coherence - run: | - PACKAGE_VERSION=$(python -c "import khiops; print(khiops.__version__)") - CONDA_VERSION=$(conda list ^khiops$ --json | jq ".[].version") - - # Fail if CONDA_VERSION is not identical to $PACKAGE_VERSION - echo $CONDA_VERSION | grep -wq $PACKAGE_VERSION - if [[ $? -ne 0 ]] - then - echo "::error::Conda package version $CONDA_VERSION does not match Python package version $PYTHON_VERSION" - false - fi - - name: Test Khiops Installation Status - run: kh-status - - name: Test Khiops Installation Status (Conda-Based Environments) - run: | - # Set `python` to the current Conda Python executable - PYTHON="$(type -P python)" - - # Remove $CONDA_PREFIX/bin from PATH - PATH=$(echo $PATH | sed "s#$CONDA_PREFIX/bin:##g") - - # Unset *CONDA* environment variables - # As a corollary, CONDA_PREFIX is unset - # Note: There is no way to remove these variables from GITHUB_ENV - # (see https://github.com/actions/runner/issues/1126) - for CONDA_VAR in $(env | grep CONDA) - do - unset $(echo $CONDA_VAR | cut -d '=' -f 1) - done - - # Note: kh-status is not reachable as it is not in PATH - $PYTHON -c \ - "import sys; import khiops.core as kh; return_code = kh.get_runner().print_status(); sys.exit(return_code)" - - name: Download Sample Datasets - run: | - kh-download-datasets \ - --version ${{ inputs.khiops-samples-version || env.DEFAULT_SAMPLES_VERSION }} - - name: Run Samples - env: - # Force > 2 CPU cores to launch mpiexec - KHIOPS_PROC_NUMBER: 4 - run: | - kh-samples core -i deploy_model -e - kh-samples core -i deploy_coclustering -e - kh-samples core -i train_predictor_error_handling -e - kh-samples sklearn -i khiops_classifier -e - kh-samples sklearn -i khiops_coclustering -e - - name: Run Samples (Conda-Based Environments) - env: - # Force > 2 CPU cores to launch mpiexec - KHIOPS_PROC_NUMBER: 4 - run: | - # Set `python` to the current Conda Python executable - PYTHON="$(type -P python)" - - # Remove $CONDA_PREFIX/bin from PATH - PATH=$(echo $PATH | sed "s#$CONDA_PREFIX/bin:##g") - - # Unset *CONDA* environment variables - # As a corollary, CONDA_PREFIX is unset - # Note: There is no way to remove these variables from GITHUB_ENV - # (see https://github.com/actions/runner/issues/1126) - for CONDA_VAR in $(env | grep CONDA) - do - unset $(echo $CONDA_VAR | cut -d '=' -f 1) - done - - # Run samples - # Note: kh-samples is not reachable as it is not in PATH - $PYTHON -m khiops.samples.samples -i deploy_model -e - $PYTHON -m khiops.samples.samples -i deploy_coclustering -e - $PYTHON -m khiops.samples.samples -i train_predictor_error_handling -e - $PYTHON -m khiops.samples.samples_sklearn -i khiops_classifier -e - $PYTHON -m khiops.samples.samples_sklearn -i khiops_coclustering -e - # Checkout the sources to obtain the tests - # Note: The `sparse-checkout` option of this action is bugged so we checkout all the sources - # See https://github.com/actions/checkout/issues/1628 - - name: Checkout Sources - uses: actions/checkout@v4 - with: - fetch-depth: 1 - # This is needed so python does not retrieve the khiops module from PWD - - name: Remove the khiops Module from the Sources - run: rm -rf khiops - - name: Install the Test Requirements - run: conda install -y --file test-requirements.txt - - name: Run the Runner Initialization Integration Test - run: | - python -m unittest -v \ - tests.test_khiops_integrations.KhiopsRunnerEnvironmentTests.test_runner_environment_initialization - - name: Run the Runner Initialization Integration Test (Conda-Based Environments) - run: | - # Set `python` to the current Conda Python executable - PYTHON="$(type -P python)" - - # Remove $CONDA_PREFIX/bin from PATH - PATH=$(echo $PATH | sed "s#$CONDA_PREFIX/bin:##g") - - # Unset *CONDA* environment variables - # As a corolary, CONDA_PREFIX is unset - # Note: There is no way to remove these variables from GITHUB_ENV - # (see https://github.com/actions/runner/issues/1126) - for CONDA_VAR in $(env | grep CONDA) - do - unset $(echo $CONDA_VAR | cut -d '=' -f 1) - done - - # Execute the runner initialization integration test - $PYTHON -m unittest -v \ - tests.test_khiops_integrations.KhiopsRunnerEnvironmentTests.test_runner_environment_initialization - - # Release is only executed on tags - # Note: For this job to work the secret variable KHIOPS_DEV_ANACONDA_CHANNEL_TOKEN - # must be set with a valid anaconda.org access token - release: - if: github.ref_type == 'tag' - needs: test - runs-on: ubuntu-22.04 - permissions: - contents: write - steps: - - name: Download package artifacts - uses: actions/download-artifact@v4 - with: - # See the upload-artifact step in the build job for the explanation of this pattern - name: khiops-conda - path: ./khiops-conda - - name: Check Conda package / Git tag version coherence - run: | - # Don't exit on first error: print relevant error message - set +e - # Extract Conda package version from the package artifact - PACKAGE_VERSION=$( \ - unzip -p ./khiops-conda/noarch/*.conda info-*.tar.zst \ - | tar --zstd -axf - info/index.json -O \ - | jq -r ".version" \ - ) - # Convert pre-release version specification in the Git tag to the - # Conda format and check that it matches the Conda package version - echo ${{ github.ref_name }} | tr -d '-' | grep -wq $PACKAGE_VERSION - if [[ $? -ne 0 ]] - then - echo "::error::Conda package version $PACKAGE_VERSION does not match Git tag ${{ github.ref_name }}" - false - fi - - name: Install Miniforge - uses: conda-incubator/setup-miniconda@v3 - with: - miniforge-version: 24.11.0-0 - python-version: '3.12' - conda-remove-defaults: true - - name: Install Requirement Packages - run: conda install -y anaconda-client conda-index - - name: Reindex the package directory - run: python -m conda_index ./khiops-conda - - name: Upload the Package to anaconda.org - run: |- - # Override versions, as the packages are pushed to a dev channel - anaconda --token "${{ secrets.KHIOPS_DEV_ANACONDA_CHANNEL_TOKEN }}" upload \ - --user khiops-dev --force ./khiops-conda/noarch/*.conda