Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 38 additions & 1 deletion .azure-pipelines/azure-pipelines-osx.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 33 additions & 0 deletions .ci_support/linux_aarch64_.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
c_compiler:
- gcc
c_compiler_version:
- '14'
c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
channel_sources:
- conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
- gxx
cxx_compiler_version:
- '14'
docker_image:
- quay.io/condaforge/linux-anvil-aarch64:alma9
pin_run_as_build:
python:
min_pin: x.x
max_pin: x.x
python:
- 3.10.* *_cpython
- 3.11.* *_cpython
- 3.12.* *_cpython
- 3.13.* *_cp313
- 3.14.* *_cp314
target_platform:
- linux-aarch64
zip_keys:
- - c_compiler_version
- cxx_compiler_version
39 changes: 39 additions & 0 deletions .ci_support/osx_arm64_.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
MACOSX_DEPLOYMENT_TARGET:
- '11.0'
MACOSX_SDK_VERSION:
- '11.0'
c_compiler:
- clang
c_compiler_version:
- '19'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
- '11.0'
channel_sources:
- conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
- clangxx
cxx_compiler_version:
- '19'
llvm_openmp:
- '19'
macos_machine:
- arm64-apple-darwin20.0.0
pin_run_as_build:
python:
min_pin: x.x
max_pin: x.x
python:
- 3.10.* *_cpython
- 3.11.* *_cpython
- 3.12.* *_cpython
- 3.13.* *_cp313
- 3.14.* *_cp314
target_platform:
- osx-arm64
zip_keys:
- - c_compiler_version
- cxx_compiler_version
93 changes: 91 additions & 2 deletions .github/workflows/conda-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,19 @@ jobs:
matrix:
include:
- CONFIG: linux_64_
STORE_BUILD_ARTIFACTS: False
STORE_BUILD_ARTIFACTS: True
SHORT_CONFIG: linux_64_
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['ubuntu-latest']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- CONFIG: linux_aarch64_
STORE_BUILD_ARTIFACTS: True
SHORT_CONFIG: linux_aarch64_
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['ubuntu-24.04-arm']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-aarch64:alma9
steps:

- name: Checkout code
Expand Down Expand Up @@ -108,4 +116,85 @@ jobs:
UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_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' && matrix.STORE_BUILD_ARTIFACTS }}
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_PATH="${MINIFORGE_HOME:-${HOME}/miniforge3}/conda-bld"
elif [ $OS == "windows" ]; then
# this needs to be consistent with build step, see above
export CONDA_BLD_PATH="C:\\bld"
else
export CONDA_BLD_PATH="build_artifacts"
fi
# Archive everything in CONDA_BLD_PATH except environments
# Archive the CONDA_BLD_PATH 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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.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
18 changes: 13 additions & 5 deletions .scripts/build_steps.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

113 changes: 113 additions & 0 deletions .scripts/create_conda_build_artifacts.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading