name: "Setup Miniconda" author: Gonzalo Peña-Castellanos (@goanpeca) description: "Set up Conda package and environment manager with Miniconda." runs: using: "node24" main: "dist/setup/index.js" post: "dist/delete/index.js" post-if: "success() && env.INPUT_RUN_POST == 'true'" branding: icon: "code" color: "green" outputs: environment-file: description: "The full path to the environment-file used" environment-file-content: description: "The content of the environment-file used" environment-file-was-patched: description: "Whether a patched environment-file was made due to inputs" inputs: installer-url: description: "If provided, this installer will be used instead of a miniconda installer, and cached based on its full URL Visit https://github.com/conda/constructor for more information on creating installers" required: false default: "" installation-dir: description: "If provided, the installer will be installed in the given directory." required: false default: "" miniconda-version: description: "If provided, this version of Miniconda3 will be downloaded and installed. Visit https://repo.continuum.io/miniconda/ for more information on available versions." required: false default: "" miniforge-variant: description: "If provided, this variant of Miniforge will be downloaded and installed. If `miniforge-version` is not provided, the `latest` version will be used. Currently-known values: Miniforge3 (default), Miniforge-pypy3. Visit https://github.com/conda-forge/miniforge/releases/ for more information on available variants." required: false default: "" miniforge-version: description: "If provided, this version of the given Miniforge variant will be downloaded and installed. If `miniforge-variant` is not provided, `Miniforge3` will be used. Visit https://github.com/conda-forge/miniforge/releases/ for more information on available versions" required: false default: "" conda-version: description: 'Specific version of Conda to install after miniconda is located or installed. See https://anaconda.org/anaconda/conda for available "conda" versions.' required: false default: "" conda-build-version: description: 'Version of conda build to install. If not provided conda-build is not installed. See https://anaconda.org/anaconda/conda-build for available "conda-build" versions.' required: false default: "" environment-file: description: "Environment.yml to create an environment. See https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-from-an-environment-yml-file for more information." required: false default: "" activate-environment: description: "Environment name (or path) to activate on all shells. Default is `test` which will be created in `$CONDA/envs/test`. If an empty string is used, no environment is activated by default (For `base` activation see the `auto-activate-base` option). If the environment does not exist, it will be created and activated. If `environment-file` is used and you want that to be the environment used, you need to explicitely provide the name of that environment on `activate-environment`. If using sh/bash/cmd.exe shells please read the IMPORTANT! section on the README.md! to properly activate conda environments on these shells." required: false default: "test" python-version: description: 'Exact version of a Python version to use on "activate-environment". If provided, this will be installed before the "environment-file". See https://anaconda.org/anaconda/python for available "python" versions.' required: false default: "" add-anaconda-token: description: 'Conda configuration. When the channel alias is Anaconda.org or an Anaconda Server GUI, you can set the system configuration so that users automatically see private packages. Anaconda.org was formerly known as binstar.org. This uses the Anaconda command-line client, which you can install with conda install anaconda-client, to automatically add the token to the channel URLs. The default is "true". See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#add-anaconda-org-token-to-automatically-see-private-packages-add-anaconda-token for more information.' required: false default: "" add-pip-as-python-dependency: description: 'Conda configuration. Add pip, wheel, and setuptools as dependencies of Python. This ensures that pip, wheel, and setuptools are always installed any time Python is installed. The default is "true". See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#add-pip-as-python-dependency-add-pip-as-python-dependency for more information.' required: false default: "" allow-softlinks: description: 'Conda configuration. When allow_softlinks is "true", conda uses hard-links when possible and soft-links---symlinks---when hard-links are not possible, such as when installing on a different file system than the one that the package cache is on. When allow_softlinks is "false", conda still uses hard-links when possible, but when it is not possible, conda copies files. Individual packages can override this option, specifying that certain files should never be soft-linked. The default is "true". See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#disallow-soft-linking-allow-softlinks for more information.' required: false default: "" auto-activate: description: 'Conda configuration. If you’d prefer that conda’s default environment not be activated on startup, set the to "false". Default is "true". This setting always overrides if set to "true" or "false". If you want to use the "condarc-file" setting pass an empty string. See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/ for more information.' required: false default: "true" auto-activate-base: description: (deprecated in favor of `auto-activate`) 'Conda configuration. If you’d prefer that conda’s base environment not be activated on startup, set the to "false". Default is "true". This setting always overrides if set to "true" or "false". If you want to use the "condarc-file" setting pass an empty string. See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/ for more information.' required: false default: "legacy-placeholder" auto-update-conda: description: 'Conda configuration. When "true", conda updates itself any time a user updates or installs a package in the base environment. When "false", conda updates itself only if the user manually issues a conda update command. The default is "false". This setting always overrides if set to "true" or "false". If you want to use the "condarc-file" setting pass and empty string. See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/ for more information.' required: false default: "false" condarc-file: description: 'Conda configuration. Path to a conda configuration file to use for the runner. This file will be copied to "~/.condarc". See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/ for more information.' required: false default: "" channel-alias: description: "Conda configuration. Whenever you use the -c or --channel flag to give conda a channel name that is not a URL, conda prepends the channel_alias to the name that it was given. The default channel_alias is https://conda.anaconda.org. See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#set-a-channel-alias-channel-alias for more information." required: false default: "" channel-priority: description: 'Conda configuration. Accepts values of "strict", "flexible", and "disabled". The default value is "flexible". With strict channel priority, packages in lower priority channels are not considered if a package with the same name appears in a higher priority channel. With flexible channel priority, the solver may reach into lower priority channels to fulfill dependencies, rather than raising an unsatisfiable error. With channel priority disabled, package version takes precedence, and the configured priority of channels is used only to break ties. In previous versions of conda, this parameter was configured as either "true" or "false". "true" is now an alias to "flexible". See https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-channels.html#strict-channel-priority for more information.' required: false default: "" channels: description: "Conda configuration. Comma separated list of channels to use in order of priority. See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/ for more information." required: false default: "" conda-remove-defaults: description: "Postprocess channels list to remove 'defaults' if it was added implicitly to the 'channels' setting. Will default to 'true' to align with related changes in conda 25.3.0." required: false default: "" show-channel-urls: description: 'Conda configuration. Show channel URLs when displaying what is going to be downloaded and in conda list. The default is "false". See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#show-channel-urls-show-channel-urls for more information.' required: false default: "" pkgs-dirs: description: 'Conda configuration. Comma separated list of package directories ("pkgs_dirs") to configure conda. See https://docs.conda.io/projects/conda/en/stable/user-guide/configuration/use-condarc.html#specify-pkg-directories for more information.' required: false default: "" use-only-tar-bz2: description: 'Conda configuration. Conda 4.7 introduced a new .conda package file format. .conda is a more compact and faster alternative to .tar.bz2 packages. It is thus the preferred file format to use where available. Nevertheless, it is possible to force conda to only download .tar.bz2 packages by setting the use_only_tar_bz2 boolean to "true". The default is "false". See https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#force-conda-to-download-only-tar-bz2-packages-use-only-tar-bz2 for more information.' required: false default: "" remove-profiles: description: 'Advanced. Prior to runnning "conda init" all shell profiles will be removed from the runner. Default is "true".' required: false default: "true" run-init: description: 'Advanced. Whether to run "conda init" and modify shell profiles. Set to "false" to prevent any modifications to ~/.profile, ~/.bashrc, and other shell profiles. When disabled, you must manually source conda in each step. Default is "true".' required: false default: "true" mamba-version: description: 'Use mamba (https://github.com/QuantStack/mamba) as a faster drop-in replacement for conda installs. Disabled by default. To enable, use "*" or a "x.y" version string.' required: false default: "" use-mamba: description: "Use mamba as soon as available (either as provided by `mamba-in-installer` or installation by `mamba-version`)" required: false default: "" conda-solver: description: "Which conda solver plugin to use. Only applies to the `conda` client, not `mamba`. Starting with Miniconda 23.5.2 and Miniforge 23.3.1, you can choose between `classic` and `libmamba`." required: false default: "libmamba" architecture: description: 'Architecture of Miniconda that should be installed. This is automatically detected by the runner. If you want to override it, you can use "x64", "x86", "arm64", "aarch64", "s390x".' required: false default: "" clean-patched-environment-file: description: "Whether a patched environment-file (if created) should be cleaned" required: false default: "true" run-post: description: 'Set this option to "false" to disable running the post cleanup step of the action. Default is "true"' required: false default: "true"