Do not link to *.sh installers directly in hopes of not triggering the malicious content warnings #1145
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: 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: windows-latest | |
ARCH: x86_64 | |
TARGET_PLATFORM: win-64 | |
MINIFORGE_NAME: "Mambaforge" | |
OS_NAME: "Windows" | |
- os: windows-latest | |
ARCH: x86_64 | |
TARGET_PLATFORM: win-64 | |
MINIFORGE_NAME: "Miniforge-pypy3" | |
OS_NAME: "Windows" | |
- os: windows-latest | |
ARCH: x86_64 | |
TARGET_PLATFORM: win-64 | |
MINIFORGE_NAME: "Mambaforge-pypy3" | |
OS_NAME: "Windows" | |
- os: macos-latest | |
ARCH: arm64 | |
TARGET_PLATFORM: osx-arm64 | |
MINIFORGE_NAME: "Miniforge3" | |
OS_NAME: "MacOSX" | |
- os: macos-latest | |
ARCH: arm64 | |
TARGET_PLATFORM: osx-arm64 | |
MINIFORGE_NAME: "Mambaforge" | |
OS_NAME: "MacOSX" | |
- os: macos-latest | |
ARCH: x86_64 | |
TARGET_PLATFORM: osx-64 | |
MINIFORGE_NAME: "Miniforge-pypy3" | |
OS_NAME: "MacOSX" | |
- os: macos-latest | |
ARCH: x86_64 | |
TARGET_PLATFORM: osx-64 | |
MINIFORGE_NAME: "Mambaforge-pypy3" | |
OS_NAME: "MacOSX" | |
- os: macos-latest | |
ARCH: x86_64 | |
TARGET_PLATFORM: osx-64 | |
MINIFORGE_NAME: "Miniforge3" | |
OS_NAME: "MacOSX" | |
- os: macos-latest | |
ARCH: x86_64 | |
TARGET_PLATFORM: osx-64 | |
MINIFORGE_NAME: "Mambaforge" | |
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: aarch64 | |
TARGET_PLATFORM: linux-aarch64 | |
DOCKER_ARCH: arm64/v8 | |
DOCKERIMAGE: condaforge/linux-anvil-aarch64 | |
MINIFORGE_NAME: "Mambaforge" | |
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: x86_64 | |
TARGET_PLATFORM: linux-64 | |
DOCKER_ARCH: amd64 | |
DOCKERIMAGE: condaforge/linux-anvil-cos7-x86_64 | |
MINIFORGE_NAME: "Mambaforge" | |
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" | |
- os: ubuntu-latest | |
ARCH: ppc64le | |
TARGET_PLATFORM: linux-ppc64le | |
DOCKER_ARCH: ppc64le | |
DOCKERIMAGE: condaforge/linux-anvil-ppc64le | |
MINIFORGE_NAME: "Mambaforge" | |
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: aarch64 | |
TARGET_PLATFORM: linux-aarch64 | |
DOCKER_ARCH: arm64/v8 | |
DOCKERIMAGE: condaforge/linux-anvil-aarch64 | |
MINIFORGE_NAME: "Miniforge-pypy3" | |
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: aarch64 | |
TARGET_PLATFORM: linux-aarch64 | |
DOCKER_ARCH: arm64/v8 | |
DOCKERIMAGE: condaforge/linux-anvil-aarch64 | |
MINIFORGE_NAME: "Mambaforge-pypy3" | |
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: "Miniforge-pypy3" | |
OS_NAME: "Linux" | |
- os: ubuntu-latest | |
ARCH: x86_64 | |
TARGET_PLATFORM: linux-64 | |
DOCKER_ARCH: amd64 | |
DOCKERIMAGE: condaforge/linux-anvil-cos7-x86_64 | |
MINIFORGE_NAME: "Mambaforge-pypy3" | |
OS_NAME: "Linux" | |
- os: ubuntu-latest | |
ARCH: ppc64le | |
TARGET_PLATFORM: linux-ppc64le | |
DOCKER_ARCH: ppc64le | |
DOCKERIMAGE: condaforge/linux-anvil-ppc64le | |
MINIFORGE_NAME: "Miniforge-pypy3" | |
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: ppc64le | |
TARGET_PLATFORM: linux-ppc64le | |
DOCKER_ARCH: ppc64le | |
DOCKERIMAGE: condaforge/linux-anvil-ppc64le | |
MINIFORGE_NAME: "Mambaforge-pypy3" | |
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: "centos:7" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3.0.4 | |
with: | |
miniforge-version: "latest" | |
use-mamba: true | |
if: ${{ ! contains(matrix.OS_NAME, 'Linux') }} | |
- name: Patch license for Mambaforge deprecation | |
if: matrix.MINIFORGE_NAME == 'Mambaforge' || matrix.MINIFORGE_NAME == 'Mambaforge-pypy3' | |
run: | | |
echo "!!!!!! Mambaforge is now deprecated !!!!!" > Miniforge3/MAMBAFORGE_LICENSE.txt | |
echo "Future Miniforge releases will NOT build Mambaforge installers." >> Miniforge3/MAMBAFORGE_LICENSE.txt | |
echo "We advise you switch to Miniforge at your earliest convenience." >> Miniforge3/MAMBAFORGE_LICENSE.txt | |
echo "More details at https://conda-forge.org/news/2024/07/29/sunsetting-mambaforge/." >> Miniforge3/MAMBAFORGE_LICENSE.txt | |
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> Miniforge3/MAMBAFORGE_LICENSE.txt | |
cat LICENSE >> Miniforge3/MAMBAFORGE_LICENSE.txt | |
echo "MINIFORGE_LICENSE_OVERRIDE=MAMBAFORGE_LICENSE.txt" >> $GITHUB_ENV | |
- 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/') |