Skip to content

CMOR Nightly Build

CMOR Nightly Build #29

name: CMOR Nightly Build
run-name: CMOR Nightly Build
on: [push]
jobs:
nightly:
name: Deploy nightly
strategy:
matrix:
os: [macos-14]
python_version: [3.11]
runs-on: ${{ matrix.os }}
env:
PACKAGE_NAME: cmor
PACKAGE_VERSION: 3.8.0
PYTHON_VERSION: ${{ matrix.python_version }}
OS: osx-arm64
OS_NAME: osx_arm64
MINICONDA_INSTALLER_URL: https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
PROJECT_DIR: workdir/macos
CONDA_CHANNEL: conda-forge
C_COMPILER: clang_osx-64
FORTRAN_COMPILER: gfortran_osx-64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup project directory
run: mkdir -p $PROJECT_DIR
- name: Setup Miniconda
run: |
curl -L $MINICONDA_INSTALLER_URL -o miniconda.sh
bash miniconda.sh -b -p $PROJECT_DIR/miniconda
source $PROJECT_DIR/miniconda/etc/profile.d/conda.sh
conda activate base
conda config --set anaconda_upload no
- name: Conda Rerender
run: |
source $PROJECT_DIR/miniconda/etc/profile.d/conda.sh
conda activate base
conda config --set anaconda_upload no
git clone -b osx_arm64 https://github.com/mauzey1/cmor-feedstock $PROJECT_DIR/cmor-feedstock
export SRC_META_YAML=`pwd`/$PROJECT_DIR/cmor-feedstock/recipe/meta.yaml.SRC
export DST_META_YAML=`pwd`/$PROJECT_DIR/cmor-feedstock/recipe/meta.yaml
mv $DST_META_YAML $SRC_META_YAML
export GIT_REV=$(git rev-parse --short HEAD)
echo "GIT_REV=$GIT_REV"
export GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo "GIT_BRANCH=$GIT_BRANCH"
python rebuild_meta_yaml.py \
--package_name $PACKAGE_NAME \
--version $PACKAGE_VERSION \
--organization PCMDI \
--repo_name $PACKAGE_NAME \
--branch $GIT_BRANCH \
--git_rev $GIT_REV \
--build 0 \
--src_meta_yaml $SRC_META_YAML \
--dst_meta_yaml $DST_META_YAML
conda create -y -n smithy_env -c conda-forge conda-smithy
conda activate smithy_env
cd $PROJECT_DIR/cmor-feedstock
conda smithy rerender
ls -lh .ci_support/
- name: Conda Build
run: |
source $PROJECT_DIR/miniconda/etc/profile.d/conda.sh
conda activate base
conda config --set anaconda_upload no
conda activate smithy_env
export BUILD_DIR=`pwd`/cmor_conda_pkgs
mkdir -p $BUILD_DIR
export ARTIFACT_DIR=`pwd`/artifacts/$OS
mkdir -p $ARTIFACT_DIR
for i in ${PROJECT_DIR}'/cmor-feedstock/.ci_support/'${OS_NAME}'_*python'${PYTHON_VERSION}'*.yaml'; do
conda build -c conda-forge --output-folder $BUILD_DIR -m $i $PROJECT_DIR/cmor-feedstock/recipe/
ls -lh $BUILD_DIR
cp $BUILD_DIR/$OS/$PACKAGE_NAME-$PACKAGE_VERSION*.tar.bz2 $ARTIFACT_DIR
done
- name: Run Tests
run: |
source $PROJECT_DIR/miniconda/etc/profile.d/conda.sh
conda activate base
conda config --set anaconda_upload no
export CMOR_CHANNEL=file://`pwd`/cmor_conda_pkgs/
conda search -c $CMOR_CHANNEL --override-channels
conda create -y -n test_py$PYTHON_VERSION -c $CMOR_CHANNEL -c $CONDA_CHANNEL python=$PYTHON_VERSION $PACKAGE_NAME=$PACKAGE_VERSION $C_COMPILER $FORTRAN_COMPILER
conda activate test_py$PYTHON_VERSION
./configure --prefix=$CONDA_PREFIX --with-python --with-uuid=$CONDA_PREFIX --with-json-c=$CONDA_PREFIX --with-udunits2=$CONDA_PREFIX --with-netcdf=$CONDA_PREFIX --enable-verbose-test
make test -o cmor -o python