Skip to content

Bye bye Mambaforge and PyPy #1188

Bye bye Mambaforge and PyPy

Bye bye Mambaforge and PyPy #1188

Workflow file for this run

name: Build miniforge
on: [ push, pull_request ]
jobs:
build:
name: ${{ matrix.MINIFORGE_NAME }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
ARCH: x86_64
TARGET_PLATFORM: win-64
MINIFORGE_NAME: "Miniforge3"
OS_NAME: "Windows"
- os: macos-latest
ARCH: arm64
TARGET_PLATFORM: osx-arm64
MINIFORGE_NAME: "Miniforge3"
OS_NAME: "MacOSX"
- os: macos-latest
ARCH: x86_64
TARGET_PLATFORM: osx-64
MINIFORGE_NAME: "Miniforge3"
OS_NAME: "MacOSX"
- os: ubuntu-latest
ARCH: aarch64
TARGET_PLATFORM: linux-aarch64
DOCKER_ARCH: arm64/v8
DOCKERIMAGE: condaforge/linux-anvil-aarch64
MINIFORGE_NAME: "Miniforge3"
OS_NAME: "Linux"
# Reduce the test matrix because the builds timeouts on emulated architectures
# The time consuming operation is an attempt a full solve of conda/mamba/boa
# for as a compatibility
# xref https://github.com/conda-forge/miniforge/pull/361
TEST_IMAGE_NAMES: "ubuntu:24.04"
- os: ubuntu-latest
ARCH: x86_64
TARGET_PLATFORM: linux-64
DOCKER_ARCH: amd64
DOCKERIMAGE: condaforge/linux-anvil-cos7-x86_64
MINIFORGE_NAME: "Miniforge3"
OS_NAME: "Linux"
- os: ubuntu-latest
ARCH: ppc64le
TARGET_PLATFORM: linux-ppc64le
DOCKER_ARCH: ppc64le
DOCKERIMAGE: condaforge/linux-anvil-ppc64le
MINIFORGE_NAME: "Miniforge3"
OS_NAME: "Linux"
# Reduce the test matrix because the builds timeouts on emulated architectures
# The time consuming operation is an attempt a full solve of conda/mamba/boa
# for as a compatibility
# xref https://github.com/conda-forge/miniforge/pull/361
TEST_IMAGE_NAMES: "ubuntu:24.04"
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: conda-incubator/setup-miniconda@d2e6a045a86077fb6cad6f5adf368e9076ddaa8d # v3.1.0
with:
miniforge-version: "latest"
use-mamba: true
if: ${{ ! contains(matrix.OS_NAME, 'Linux') }}
- name: Build and test miniforge
env:
ARCH: ${{ matrix.ARCH }}
MINIFORGE_NAME: ${{ matrix.MINIFORGE_NAME }}
OS_NAME: ${{ matrix.OS_NAME }}
DOCKERIMAGE: ${{ matrix.DOCKERIMAGE }}
DOCKER_ARCH: ${{ matrix.DOCKER_ARCH }}
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }}
TEST_IMAGE_NAMES: ${{ matrix.TEST_IMAGE_NAMES }}
run: |
if [[ "$GITHUB_REF" == refs/tags/* ]]; then
export MINIFORGE_VERSION=${GITHUB_REF##*/};
fi
if [[ "$OS_NAME" == "Linux" ]]; then
export EXT=sh
bash build_miniforge.sh;
fi
if [[ "$OS_NAME" == "MacOSX" ]]; then
export EXT=sh
bash build_miniforge_osx.sh;
fi
if [[ "$OS_NAME" == "Windows" ]]; then
export EXT=exe
echo "WINDIR:$WINDIR"
source "${CONDA}"/Scripts/activate;
source build_miniforge_win.sh;
fi
# Copy for latest release
cp build/$MINIFORGE_NAME-*-$OS_NAME-$ARCH.$EXT build/$MINIFORGE_NAME-$OS_NAME-$ARCH.$EXT
if [[ "$OS_NAME" == "MacOSX" ]]; then
cp build/$MINIFORGE_NAME-*-$OS_NAME-$ARCH.$EXT build/$MINIFORGE_NAME-Darwin-$ARCH.$EXT
fi
ls -alh build
shell: bash
- name: Upload miniforge to Github artifact
if: always()
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
path: build/${{ matrix.MINIFORGE_NAME }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}*
name: ${{ matrix.MINIFORGE_NAME }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
- name: Upload miniforge to release
uses: svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2.9.0
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/M*forge*
tag: ${{ github.ref }}
overwrite: true
file_glob: true
if: startsWith(github.ref, 'refs/tags/')