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
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,12 @@ jobs:
run:
shell: bash
strategy:

fail-fast: false

matrix:
python-version: [ "3.6", "3.7", "3.8", "3.9", "3.10" ]
os: [ubuntu-latest, macos-latest]
os: [ubuntu-latest]
platform: [x64, x32]
exclude:
- os: macos-latest
platform: x32
include:
- python-version: "3.6"
os: ubuntu-latest
Expand All @@ -46,15 +43,7 @@ jobs:
- python-version: "3.10"
os: ubuntu-latest
platform: aarch64
- python-version: "3.8"
os: macos-latest
platform: x86_64
- python-version: "3.9"
os: macos-latest
platform: x86_64
- python-version: "3.10"
os: macos-latest
platform: x86_64

env:
REPO_DIR: netcdf4-python
PKG_NAME: netcdf4-python
Expand Down Expand Up @@ -86,16 +75,13 @@ jobs:
run: |
if [ "schedule" == "${{ github.event_name }}" ] || [ "master" == "$BUILD_COMMIT" ]; then echo "TOKEN=$SCIPY_WHEELS_NIGHTLY_ACCESS" >> $GITHUB_ENV; else echo "TOKEN=$MULTIBUILD_WHEELS_STAGING_ACCESS" >> $GITHUB_ENV; fi
if [ "x32" == "${{ matrix.platform }}" ]; then echo "PLAT=i686" >> $GITHUB_ENV; elif [ "aarch64" == "${{ matrix.platform }}" ]; then echo "PLAT=aarch64" >> $GITHUB_ENV; else echo "PLAT=x86_64" >> $GITHUB_ENV; fi
if [ "macos-latest" == "${{ matrix.os }}" ]; then echo "TRAVIS_OS_NAME=osx" >> $GITHUB_ENV; else echo "TRAVIS_OS_NAME=${{ matrix.os }}" >> $GITHUB_ENV; fi
if [ "schedule" == "${{ github.event_name }}" ]; then echo "TRAVIS_EVENT_TYPE=cron" >> $GITHUB_ENV; else echo "TRAVIS_EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV; fi
if [ "schedule" == "${{ github.event_name }}" ]; then echo "BUILD_COMMIT=master" >> $GITHUB_ENV; else echo "BUILD_COMMIT=$BUILD_COMMIT" >> $GITHUB_ENV; fi
# make universal2 wheels on macos by cross-compiling
if [ "macos-latest" == "${{ matrix.os }}" ]; then echo "PLAT=universal2" >> $GITHUB_ENV; fi

- name: Setup Special Environment variables for Linux AArch64
if: ${{ matrix.platform == 'aarch64' }}
run: |
echo "DOCKER_TEST_IMAGE=$(echo multibuild/xenial_arm64v8)" >> $GITHUB_ENV
echo "DOCKER_TEST_IMAGE=$(echo multibuild/focal_arm64v8)" >> $GITHUB_ENV

- name: Pin Numpy version
run: |
Expand Down
113 changes: 113 additions & 0 deletions .github/workflows/build-wheels-macosx.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# This workflow will install Python dependencies, run tests and build
# manylinux wheels for a variety of python versions and architectures.

name: Build and upload macosx wheels

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
create:
tags:
# schedule:
# - cron: '0 0 * * 0,3' # 2/weekly

jobs:
build:

runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false

matrix:
python-version: [ "3.8", "3.9","3.10" ]
os: [macos-latest]
platform: [x86_64]
env:
REPO_DIR: netcdf4-python
PKG_NAME: netcdf4-python
MB_ML_VER: 2014
BUILD_COMMIT: v1.5.8rel
UNICODE_WIDTH: 32
MB_PYTHON_VERSION: ${{ matrix.python-version }}
TRAVIS_PYTHON_VERSION: ${{ matrix.python-version }}
TRAVIS_REPO_SLUG: ${{ github.repository }}
TRAVIS_BRANCH: ${{ github.head_ref }}
TRAVIS_PULL_REQUEST: ${{ github.event.number }}
TRAVIS_BUILD_DIR: ${{ github.workspace }}
MULTIBUILD_WHEELS_STAGING_ACCESS: ${{ secrets.MULTIBUILD_WHEELS_STAGING_ACCESS }}

steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Setup Environment variables
run: |
if [ "schedule" == "${{ github.event_name }}" ] || [ "master" == "$BUILD_COMMIT" ]; then echo "TOKEN=$SCIPY_WHEELS_NIGHTLY_ACCESS" >> $GITHUB_ENV; else echo "TOKEN=$MULTIBUILD_WHEELS_STAGING_ACCESS" >> $GITHUB_ENV; fi
if [ "schedule" == "${{ github.event_name }}" ]; then echo "TRAVIS_EVENT_TYPE=cron" >> $GITHUB_ENV; else echo "TRAVIS_EVENT_TYPE=${{ github.event_name }}" >> $GITHUB_ENV; fi
if [ "schedule" == "${{ github.event_name }}" ]; then echo "BUILD_COMMIT=master" >> $GITHUB_ENV; else echo "BUILD_COMMIT=$BUILD_COMMIT" >> $GITHUB_ENV; fi
echo "TRAVIS_OS_NAME=osx" >> $GITHUB_ENV
echo "PLAT=universal2" >> $GITHUB_ENV

- name: Pin Numpy version
run: |
if [ "$MB_PYTHON_VERSION" == '3.6' ]; then
echo "NP_DEP=$(echo numpy==1.17.3)" >> $GITHUB_ENV;
elif [ "$MB_PYTHON_VERSION" == '3.7' ]; then
echo "NP_DEP=$(echo numpy==1.17.3)" >> $GITHUB_ENV;
elif [ "$MB_PYTHON_VERSION" == '3.8' ]; then
echo "NP_DEP=$(echo oldest-supported-numpy)" >> $GITHUB_ENV;
elif [ "$MB_PYTHON_VERSION" == '3.9' ]; then
echo "NP_DEP=$(echo oldest-supported-numpy)" >> $GITHUB_ENV;
elif [ "$MB_PYTHON_VERSION" == '3.10' ]; then
echo "NP_DEP=$(echo oldest-supported-numpy)" >> $GITHUB_ENV;
else
echo "None of the defined python version, use default"
fi

- name: Print some Environment variable
run: |
echo "TRAVIS_BRANCH: ${TRAVIS_BRANCH}"
echo "TRAVIS_PULL_REQUEST: ${TRAVIS_PULL_REQUEST}"
echo "TRAVIS_REPO_SLUG: ${TRAVIS_REPO_SLUG}"
echo "TRAVIS_EVENT_TYPE: ${TRAVIS_EVENT_TYPE}"
echo "TRAVIS_OS_NAME: ${TRAVIS_OS_NAME}"
echo "PLAT: ${PLAT}"
echo "DOCKER_TEST_IMAGE: ${DOCKER_TEST_IMAGE}"

- name: Install VirtualEnv
run: |
python -m pip install --upgrade pip
pip install virtualenv
- name: Build and Install Wheels
run: |
BUILD_DEPENDS="$NP_DEP cython setuptools"
TEST_DEPENDS="$NP_DEP nose cython"
source multibuild/common_utils.sh
source multibuild/travis_steps.sh
echo "------- BEFORE INSTALL --------"
before_install
echo "------- CLEAN CODE --------"
clean_code $REPO_DIR $BUILD_COMMIT
echo "------- BUILD WHEEL --------"
build_wheel $REPO_DIR $PLAT
echo "------- INSTALL_RUN --------"
install_run $PLAT
- name: Upload wheels to release
uses: svenstaro/upload-release-action@v2
if: github.event_name == 'create'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ github.workspace }}/wheelhouse/netCDF4*whl
tag: ${{ github.ref }}
overwrite: true
file_glob: true