Skip to content

Bump the actions group with 3 updates #194

Bump the actions group with 3 updates

Bump the actions group with 3 updates #194

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:
branches:
- master
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: 360
strategy:
fail-fast: false
matrix:
include:
- CONFIG: linux_64_python3.13.____cp313
SHORT_CONFIG: linux_64_python3.13.____cp313
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['ubuntu-latest']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- CONFIG: linux_aarch64_python3.13.____cp313
SHORT_CONFIG: linux_aarch64_python3.13.____cp313
UPLOAD_PACKAGES: True
os: ubuntu
runs_on: ['ubuntu-latest']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- CONFIG: osx_64_python3.13.____cp313
SHORT_CONFIG: osx_64_python3.13.____cp313
UPLOAD_PACKAGES: True
os: macos
runs_on: ['macos-15-intel']
- CONFIG: osx_arm64_python3.13.____cp313
SHORT_CONFIG: osx_arm64_python3.13.____cp313
UPLOAD_PACKAGES: True
os: macos
runs_on: ['macos-15-intel']
- CONFIG: win_64_python3.13.____cp313
SHORT_CONFIG: win_64_python3.13.____cp313
UPLOAD_PACKAGES: True
os: windows
runs_on: ['windows-latest']
steps:
- name: Checkout code
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v4.1.4
with:
fetch-depth: 0
- 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
UPLOAD_ON_BRANCH: master
CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.CONDA_FORGE_DOCKER_RUN_ARGS }}"
BINSTAR_TOKEN: ${{ secrets.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
UPLOAD_ON_BRANCH: master
BINSTAR_TOKEN: ${{ secrets.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
- 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 }}
UPLOAD_ON_BRANCH: master
BINSTAR_TOKEN: ${{ secrets.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@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