diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
deleted file mode 100755
index 8d9608f..0000000
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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 -*-
-
-jobs:
-- job: linux
- pool:
- vmImage: ubuntu-latest
- strategy:
- matrix:
- linux_64_:
- CONFIG: linux_64_
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- timeoutInMinutes: 360
- variables: {}
-
- steps:
- # configure qemu binfmt-misc running. This allows us to run docker containers
- # embedded qemu-static
- - script: |
- docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes
- ls /proc/sys/fs/binfmt_misc/
- condition: not(startsWith(variables['CONFIG'], 'linux_64'))
- displayName: Configure binfmt_misc
-
- - script: |
- export CI=azure
- export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt)
- export remote_url=$(Build.Repository.Uri)
- export sha=$(Build.SourceVersion)
- export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME
- export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME})
- if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then
- export IS_PR_BUILD="True"
- else
- export IS_PR_BUILD="False"
- fi
- .scripts/run_docker_build.sh
- displayName: Run docker build
- env:
- BINSTAR_TOKEN: $(BINSTAR_TOKEN)
- FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN)
- STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN)
diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml
index 04f0b1b..fac2879 100644
--- a/.ci_support/linux_64_.yaml
+++ b/.ci_support/linux_64_.yaml
@@ -4,5 +4,11 @@ channel_targets:
- conda-forge main
docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.13.* *_cp313
python_min:
- '3.10'
diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml
index b4e6e61..1491d2a 100644
--- a/.github/workflows/conda-build.yml
+++ b/.github/workflows/conda-build.yml
@@ -4,12 +4,107 @@
name: Build conda package
on:
- workflow_dispatch:
+ push:
+
+ pull_request:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
+ cancel-in-progress: true
jobs:
build:
- name: Disabled build
- runs-on: ubuntu-slim
- if: false
+ name: ${{ matrix.CONFIG }}
+ runs-on: ${{ matrix.runs_on }}
+ timeout-minutes: 360
+ strategy:
+ fail-fast: false
+ max-parallel: 50
+ matrix:
+ include:
+ - CONFIG: linux_64_
+ UPLOAD_PACKAGES: True
+ os: ubuntu
+ runs_on: ['ubuntu-latest']
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
steps:
- - run: exit 0
+
+ - name: Checkout code
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+
+ - 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
+
+ - 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: ${{ contains(runner.arch, 'ARM') && 'C' || '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 }}
\ No newline at end of file
diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh
index b63b5a0..10d6a2a 100755
--- a/.scripts/run_docker_build.sh
+++ b/.scripts/run_docker_build.sh
@@ -11,6 +11,8 @@ source .scripts/logging_utils.sh
set -xeo pipefail
+DOCKER_EXECUTABLE="${DOCKER_EXECUTABLE:-docker}"
+
THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )"
PROVIDER_DIR="$(basename "$THISDIR")"
@@ -27,7 +29,7 @@ if [[ "${sha:-}" == "" ]]; then
popd
fi
-docker info
+${DOCKER_EXECUTABLE} info
# In order for the conda-build process in the container to write to the mounted
# volumes, we need to run with the same id as the host machine, which is
@@ -35,6 +37,7 @@ docker info
export HOST_USER_ID=$(id -u)
# Check if docker-machine is being used (normally on OSX) and get the uid from
# the VM
+
if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then
export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u)
fi
@@ -76,16 +79,34 @@ if [ -z "${CI}" ]; then
DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}"
fi
-( endgroup "Configure Docker" ) 2> /dev/null
+# Default volume suffix for Docker (preserve original behavior)
+VOLUME_SUFFIX=",z"
+# Podman-specific handling
+if [ "${DOCKER_EXECUTABLE}" = "podman" ]; then
+ # Fix file permissions for rootless podman builds
+ podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${ARTIFACTS}"
+ podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${RECIPE_ROOT}"
+
+ # Add SELinux label only if enforcing
+ if command -v getenforce &>/dev/null && [ "$(getenforce)" = "Enforcing" ]; then
+ VOLUME_SUFFIX=",z"
+ else
+ VOLUME_SUFFIX=""
+ fi
+fi
+
+( endgroup "Configure Docker" ) 2> /dev/null
( startgroup "Start Docker" ) 2> /dev/null
export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}"
export IS_PR_BUILD="${IS_PR_BUILD:-False}"
-docker pull "${DOCKER_IMAGE}"
-docker run ${DOCKER_RUN_ARGS} \
- -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \
- -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \
+
+${DOCKER_EXECUTABLE} pull "${DOCKER_IMAGE}"
+
+${DOCKER_EXECUTABLE} run ${DOCKER_RUN_ARGS} \
+ -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw${VOLUME_SUFFIX},delegated \
+ -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw${VOLUME_SUFFIX},delegated \
-e CONFIG \
-e HOST_USER_ID \
-e UPLOAD_PACKAGES \
diff --git a/README.md b/README.md
index 3d5ec7f..6762c93 100644
--- a/README.md
+++ b/README.md
@@ -20,11 +20,10 @@ Current build status
====================
-
| All platforms: |
+
+ | All platforms: |
-
-
-
+
|
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
deleted file mode 100644
index aa63c81..0000000
--- a/azure-pipelines.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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 -*-
-
-stages:
-- stage: Check
- jobs:
- - job: Skip
- pool:
- vmImage: 'ubuntu-latest'
- variables:
- DECODE_PERCENTS: 'false'
- RET: 'true'
- steps:
- - checkout: self
- fetchDepth: '2'
- - bash: |
- git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "`
- echo "##vso[task.setvariable variable=log]$git_log"
- displayName: Obtain commit message
- - bash: echo "##vso[task.setvariable variable=RET]false"
- condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]')))
- displayName: Skip build?
- - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET"
- name: result
- displayName: Export result
-- stage: Build
- condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true'))
- dependsOn: Check
- jobs:
- - template: ./.azure-pipelines/azure-pipelines-linux.yml
\ No newline at end of file
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index e0325fa..7df7d4b 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -12,7 +12,7 @@ source:
build:
noarch: python
- number: 0
+ number: 1
script: {{ PYTHON }} -m pip install --no-deps --ignore-installed .
entry_points:
- labpdfproc = diffpy.labpdfproc.labpdfprocapp:main