Skip to content

Generic BLAS support on windows #1224

Generic BLAS support on windows

Generic BLAS support on windows #1224

Workflow file for this run

# This file was generated automatically from conda-smithy. To update this configuration,
# update the conda-forge.yml and/or the recipe/meta.yaml.
# -*- mode: yaml -*-
name: Build conda package
on:
push:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
build:
name: ${{ matrix.CONFIG }}
runs-on: ${{ matrix.runs_on }}
timeout-minutes: 1440
strategy:
fail-fast: false
matrix:
include:
- CONFIG: linux_64_blas_implgenericc_stdlib_version2.17channel_targetsconda-forge_maincuda_compiler_version12.9github_actions_labelscirun-openstack-gpu-2xlargeis_rcFalse
SHORT_CONFIG: linux_64_blas_implgenericc_stdlib_versio_h404bdc8f
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericc_stdlib_versio_h404bdc8f', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- CONFIG: linux_64_blas_implgenericc_stdlib_version2.17channel_targetsconda-forge_maincuda_compiler_versionNonegithub_actions_labelscirun-openstack-cpu-xlargeis_rcFalse
SHORT_CONFIG: linux_64_blas_implgenericc_stdlib_versio_hf19b8591
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-cpu-xlarge--${{ github.run_id }}-linux_64_blas_implgenericc_stdlib_versio_hf19b8591', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- CONFIG: linux_64_blas_implgenericc_stdlib_version2.28channel_targetsconda-forge_maincuda_compiler_version13.0github_actions_labelscirun-openstack-gpu-2xlargeis_rcFalse
SHORT_CONFIG: linux_64_blas_implgenericc_stdlib_versio_h139667b8
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericc_stdlib_versio_h139667b8', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- CONFIG: linux_64_blas_implmklc_stdlib_version2.17channel_targetsconda-forge_maincuda_compiler_version12.9github_actions_labelscirun-openstack-gpu-2xlargeis_rcFalse
SHORT_CONFIG: linux_64_blas_implmklc_stdlib_version2.1_hcfd1fbb5
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklc_stdlib_version2.1_hcfd1fbb5', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- CONFIG: linux_64_blas_implmklc_stdlib_version2.17channel_targetsconda-forge_maincuda_compiler_versionNonegithub_actions_labelscirun-openstack-cpu-xlargeis_rcFalse
SHORT_CONFIG: linux_64_blas_implmklc_stdlib_version2.1_h2c83be21
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-cpu-xlarge--${{ github.run_id }}-linux_64_blas_implmklc_stdlib_version2.1_h2c83be21', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- CONFIG: linux_64_blas_implmklc_stdlib_version2.28channel_targetsconda-forge_maincuda_compiler_version13.0github_actions_labelscirun-openstack-gpu-2xlargeis_rcFalse
SHORT_CONFIG: linux_64_blas_implmklc_stdlib_version2.2_ha4aa5d9c
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklc_stdlib_version2.2_ha4aa5d9c', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- CONFIG: linux_aarch64_c_compiler_version13c_stdlib_version2.17channel_targetsconda-forge_maincuda_compiler_version12.9cxx_compiler_version13github_actions_labelscirun-openstack-gpu-2xlargeis_rcFalse
SHORT_CONFIG: linux_aarch64_c_compiler_version13c_stdl_hae63c33e
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_c_compiler_version13c_stdl_hae63c33e', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- CONFIG: linux_aarch64_c_compiler_version13c_stdlib_version2.17channel_targetsconda-forge_maincuda_compiler_versionNonecxx_compiler_version13github_actions_labelscirun-openstack-cpu-xlargeis_rcFalse
SHORT_CONFIG: linux_aarch64_c_compiler_version13c_stdl_h33a70202
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-cpu-xlarge--${{ github.run_id }}-linux_aarch64_c_compiler_version13c_stdl_h33a70202', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- CONFIG: linux_aarch64_c_compiler_version13c_stdlib_version2.28channel_targetsconda-forge_maincuda_compiler_version13.0cxx_compiler_version13github_actions_labelscirun-openstack-gpu-2xlargeis_rcFalse
SHORT_CONFIG: linux_aarch64_c_compiler_version13c_stdl_h9855fad4
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_c_compiler_version13c_stdl_h9855fad4', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- CONFIG: linux_aarch64_c_compiler_version14c_stdlib_version2.34channel_targetsconda-forge_maincuda_compiler_version12.9cxx_compiler_version14github_actions_labelscirun-openstack-gpu-2xlargeis_rcFalse
SHORT_CONFIG: linux_aarch64_c_compiler_version14c_stdl_hbec9a05b
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_c_compiler_version14c_stdl_hbec9a05b', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- CONFIG: osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalse
SHORT_CONFIG: osx_64_blas_implgenericchannel_targetsco_h709642d7
UPLOAD_PACKAGES: True
os: macos
runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_64_blas_implgenericchannel_targetsco_h709642d7', 'macOS', 'arm64', 'self-hosted']
- CONFIG: osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalse
SHORT_CONFIG: osx_64_blas_implmklchannel_targetsconda-_h747b3c68
UPLOAD_PACKAGES: True
os: macos
runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_64_blas_implmklchannel_targetsconda-_h747b3c68', 'macOS', 'arm64', 'self-hosted']
- CONFIG: osx_arm64_channel_targetsconda-forge_mainis_rcFalse
SHORT_CONFIG: osx_arm64_channel_targetsconda-forge_mai_h5f57e26b
UPLOAD_PACKAGES: True
os: macos
runs_on: ['cirun-macos-m4-large--${{ github.run_id }}-osx_arm64_channel_targetsconda-forge_mai_h5f57e26b', 'macOS', 'arm64', 'self-hosted']
- CONFIG: win_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_version12.8is_rcFalse
SHORT_CONFIG: win_64_blas_implgenericchannel_targetsco_h1ad9e5a9
UPLOAD_PACKAGES: True
os: windows
runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_blas_implgenericchannel_targetsco_h1ad9e5a9', 'windows', 'x64', 'self-hosted']
- CONFIG: win_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_version13.0is_rcFalse
SHORT_CONFIG: win_64_blas_implgenericchannel_targetsco_h35759631
UPLOAD_PACKAGES: True
os: windows
runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_blas_implgenericchannel_targetsco_h35759631', 'windows', 'x64', 'self-hosted']
- CONFIG: win_64_blas_implgenericchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse
SHORT_CONFIG: win_64_blas_implgenericchannel_targetsco_h33bfcb87
UPLOAD_PACKAGES: True
os: windows
runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_blas_implgenericchannel_targetsco_h33bfcb87', 'windows', 'x64', 'self-hosted']
- CONFIG: win_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_version12.8is_rcFalse
SHORT_CONFIG: win_64_blas_implmklchannel_targetsconda-_h5584df3e
UPLOAD_PACKAGES: True
os: windows
runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_blas_implmklchannel_targetsconda-_h5584df3e', 'windows', 'x64', 'self-hosted']
- CONFIG: win_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_version13.0is_rcFalse
SHORT_CONFIG: win_64_blas_implmklchannel_targetsconda-_h9ea961f3
UPLOAD_PACKAGES: True
os: windows
runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_blas_implmklchannel_targetsconda-_h9ea961f3', 'windows', 'x64', 'self-hosted']
- CONFIG: win_64_blas_implmklchannel_targetsconda-forge_maincuda_compiler_versionNoneis_rcFalse
SHORT_CONFIG: win_64_blas_implmklchannel_targetsconda-_h02c6a2e0
UPLOAD_PACKAGES: True
os: windows
runs_on: ['cirun-azure-windows-4xlarge--${{ github.run_id }}-win_64_blas_implmklchannel_targetsconda-_h02c6a2e0', 'windows', 'x64', 'self-hosted']
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: ''
- name: Build on Linux
id: build-linux
if: matrix.os == 'ubuntu'
env:
CONFIG: ${{ matrix.CONFIG }}
UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }}
CI: github_actions
CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.CONDA_FORGE_DOCKER_RUN_ARGS }}"
BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
shell: bash
run: |
if [[ "$(uname -m)" == "x86_64" ]]; then
echo "::group::Configure binfmt_misc"
docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes
fi
export flow_run_id="github_$GITHUB_RUN_ID"
export remote_url="https://github.com/$GITHUB_REPOSITORY"
export sha="$GITHUB_SHA"
export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)"
export GIT_BRANCH="$(basename $GITHUB_REF)"
if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
export IS_PR_BUILD="True"
else
export IS_PR_BUILD="False"
fi
echo "::endgroup::"
./.scripts/run_docker_build.sh
- name: Build on macOS
id: build-macos
if: matrix.os == 'macos'
env:
CONFIG: ${{ matrix.CONFIG }}
UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
CI: github_actions
BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
shell: bash
run: |
export flow_run_id="github_$GITHUB_RUN_ID"
export remote_url="https://github.com/$GITHUB_REPOSITORY"
export sha="$GITHUB_SHA"
export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)"
export GIT_BRANCH="$(basename $GITHUB_REF)"
if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
export IS_PR_BUILD="True"
else
export IS_PR_BUILD="False"
fi
./.scripts/run_osx_build.sh
# https://github.com/aktech/cirun-azure-resize-disk
- name: Resize all partitions to maximum
if: matrix.os == 'windows'
shell: pwsh
run: |
Write-Output "=== RESIZING PARTITIONS ==="
$disks = Get-Disk | Where-Object PartitionStyle -ne 'RAW'
foreach ($disk in $disks) {
$partitions = Get-Partition -DiskNumber $disk.Number
foreach ($partition in $partitions) {
try {
$size = Get-PartitionSupportedSize -DiskNumber $disk.Number -PartitionNumber $partition.PartitionNumber
if ($partition.Size -lt $size.SizeMax) {
Write-Output "Resizing Disk $($disk.Number) Partition $($partition.PartitionNumber) from $($partition.Size) to $($size.SizeMax)"
Resize-Partition -DiskNumber $disk.Number -PartitionNumber $partition.PartitionNumber -Size $size.SizeMax -Verbose
} else {
Write-Output "Disk $($disk.Number) Partition $($partition.PartitionNumber) already at max size ($($partition.Size))"
}
} catch {
Write-Warning "Failed resizing Disk $($disk.Number) Partition $($partition.PartitionNumber): $_"
}
}
}
- name: Build on windows
id: build-windows
if: matrix.os == 'windows'
shell: cmd
run: |
set "flow_run_id=github_%GITHUB_RUN_ID%"
set "remote_url=https://github.com/%GITHUB_REPOSITORY%"
set "sha=%GITHUB_SHA%"
call ".scripts\run_win_build.bat"
env:
# default value; make it explicit, as it needs to match with artefact
# generation below. Not configurable for now, can be revisited later
CONDA_BLD_DIR: C:\bld
MINIFORGE_HOME: D:\Miniforge
PYTHONUNBUFFERED: 1
CONFIG: ${{ matrix.CONFIG }}
CI: github_actions
UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
- name: Determine build outcome
# this is to merge the status of the linux/osx/win builds into
# something we can easily reuse during artefact generation
id: determine-status
if: ${{ always() }}
shell: bash
env:
OS: ${{ matrix.os }}
run: |
if [[ "$OS" == "ubuntu" ]]; then
STATUS=${{ steps.build-linux.outcome }}
elif [[ "$OS" == "macos" ]]; then
STATUS=${{ steps.build-macos.outcome }}
elif [[ "$OS" == "windows" ]]; then
STATUS=${{ steps.build-windows.outcome }}
fi
if [ -z "$STATUS" ]; then
# steps that never ran will have empty status
STATUS="cancelled"
fi
echo "status=$STATUS" >> $GITHUB_OUTPUT
- name: Prepare conda build artifacts
continue-on-error: true
id: prepare-artifacts
shell: bash
# we do not want to trigger artefact creation if the build was cancelled
if: ${{ always() && steps.determine-status.outputs.status != 'cancelled' }}
env:
CI: github_actions
CONFIG: ${{ matrix.CONFIG }}
SHORT_CONFIG: ${{ matrix.SHORT_CONFIG }}
JOB_STATUS: ${{ steps.determine-status.outputs.status }}
OS: ${{ matrix.os }}
run: |
export CI_RUN_ID=$GITHUB_RUN_ID
export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)"
export ARTIFACT_STAGING_DIR="$GITHUB_WORKSPACE"
if [ $OS == "macos" ]; then
export CONDA_BLD_DIR="${MINIFORGE_HOME:-${HOME}/miniforge3}/conda-bld"
elif [ $OS == "windows" ]; then
# this needs to be consistent with build step, see above
export CONDA_BLD_DIR="C:\\bld"
else
export CONDA_BLD_DIR="build_artifacts"
fi
# Archive everything in CONDA_BLD_DIR except environments
# Archive the CONDA_BLD_DIR environments only when the job fails
# Use different prefix for successful and failed build artifacts
# so random failures don't prevent rebuilds from creating artifacts.
if [ $JOB_STATUS == "failure" ]; then
export BLD_ARTIFACT_PREFIX="conda_artifacts"
export ENV_ARTIFACT_PREFIX="conda_envs"
else
export BLD_ARTIFACT_PREFIX="conda_pkgs"
fi
if [ $OS == "windows" ]; then
pwsh -Command ". '.scripts/create_conda_build_artifacts.bat'"
else
./.scripts/create_conda_build_artifacts.sh
fi
- name: Store conda build artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: ${{ always() && steps.prepare-artifacts.outcome == 'success' }}
with:
name: ${{ steps.prepare-artifacts.outputs.BLD_ARTIFACT_NAME }}
path: ${{ steps.prepare-artifacts.outputs.BLD_ARTIFACT_PATH }}
retention-days: 14
continue-on-error: true
- name: Store conda build environment artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
# only relevant if build failed, see above
if: ${{ always() && steps.determine-status.outputs.status == 'failure' && steps.prepare-artifacts.outcome == 'success' }}
with:
name: ${{ steps.prepare-artifacts.outputs.ENV_ARTIFACT_NAME }}
path: ${{ steps.prepare-artifacts.outputs.ENV_ARTIFACT_PATH }}
retention-days: 14
continue-on-error: true