Skip to content

Release 1.1.0

Release 1.1.0 #32

name: Build
on:
push:
branches:
- main
- /^rel\-*/
pull_request:
branches:
- main
jobs:
setup:
name: Prepare environment
runs-on: ubuntu-latest
env:
DT_HARNESS: GitHub
DT_BUILD_ID: ${{ github.run_id }}
DT_BUILD_NUMBER: ""
DT_BUILD_SUFFIX: ""
DT_RELEASE: ""
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Find build id
run: |
echo "DT_BUILD_ID=$(($(git rev-list --count origin/main) - 1))" >> $GITHUB_ENV
- name: Prepare environment variables
run: |
if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
if [[ "$GITHUB_HEAD_REF" =~ ^rel- ]]; then
echo "DT_RELEASE=True" >> $GITHUB_ENV
else
echo "DT_BUILD_SUFFIX=PR$GITHUB_EVENT_NUMBER.$DT_BUILD_ID" >> $GITHUB_ENV
fi
elif [ "$GITHUB_REF" == "refs/heads/main" ]; then
echo "DT_BUILD_NUMBER=$DT_BUILD_ID" >> $GITHUB_ENV
elif [[ "$GITHUB_REF" =~ ^refs/heads/rel- ]]; then
echo "DT_RELEASE=True" >> $GITHUB_ENV
else
echo "DT_BUILD_SUFFIX=$GITHUB_REF.$DT_BUILD_ID" >> $GITHUB_ENV
fi
- name: Print environment
run: |
echo "GITHUB_EVENT_NAME = $GITHUB_EVENT_NAME"
echo "GITHUB_EVENT_NUMBER = $GITHUB_EVENT_NUMBER"
echo "GITHUB_REF = $GITHUB_REF"
echo "GITHUB_HEAD_REF = $GITHUB_HEAD_REF"
echo "DT_HARNESS = $DT_HARNESS"
echo "DT_BUILD_ID = $DT_BUILD_ID"
echo "DT_RELEASE = $DT_RELEASE"
echo "DT_BUILD_SUFFIX = $DT_BUILD_SUFFIX"
echo "DT_BUILD_NUMBER = $DT_BUILD_NUMBER"
- name: Store environment into the output
id: store
run: |
echo "DT_BUILD_ID=$DT_BUILD_ID" >> $GITHUB_OUTPUT
echo "DT_RELEASE=$DT_RELEASE" >> $GITHUB_OUTPUT
echo "DT_BUILD_SUFFIX=$DT_BUILD_SUFFIX" >> $GITHUB_OUTPUT
echo "DT_BUILD_NUMBER=$DT_BUILD_NUMBER" >> $GITHUB_OUTPUT
outputs:
DT_HARNESS: Github
DT_BUILD_ID: ${{ steps.store.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ steps.store.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ steps.store.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ steps.store.outputs.DT_BUILD_NUMBER }}
#-------------------------------------------------------------------------------------
# Linux
#-------------------------------------------------------------------------------------
linux-38:
name: Linux / Python 3.8
runs-on: ubuntu-latest
needs: setup
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.8
uses: actions/setup-python@v3
with:
python-version: 3.8
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp38-*.whl)" >> $GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-ubuntu-3.8
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $DT_WHEEL
#-------------------------------------------------------------------------------------
# MacOS
#-------------------------------------------------------------------------------------
macos-38:
name: MacOS / Python 3.8
runs-on: macos-latest
needs: setup
if: ${{ needs.setup.outputs.DT_RELEASE == 'True?' }}
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.8
uses: actions/setup-python@v3
with:
python-version: 3.8
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp38-*.whl)" >> $GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-macos-3.8
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $DT_WHEEL
macos-39:
name: MacOS / Python 3.9
runs-on: macos-latest
needs: setup
if: ${{ needs.setup.outputs.DT_RELEASE == 'True?' }}
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: 3.9
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp39-*.whl)" >> $GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-macos-3.9
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $DT_WHEEL
macos-310:
name: MacOS / Python 3.10
runs-on: macos-latest
needs: setup
if: ${{ needs.setup.outputs.DT_RELEASE == 'True?' }}
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: 3.10
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp310-*.whl)" >> $GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-macos-3.10
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $DT_WHEEL
macos-311:
name: MacOS / Python 3.11
runs-on: macos-latest
needs: setup
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v3
with:
python-version: 3.11
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp311-*.whl)" >> $GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-macos-3.11
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $DT_WHEEL
macos-312:
name: MacOS / Python 3.12
runs-on: macos-latest
needs: setup
if: ${{ needs.setup.outputs.DT_RELEASE == 'True?' }}
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v3
with:
python-version: 3.12
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp312-*.whl)" >> $GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-macos-3.12
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $DT_WHEEL
#-------------------------------------------------------------------------------------
# Windows
#-------------------------------------------------------------------------------------
win-38:
name: Windows / Python 3.8
runs-on: windows-latest
needs: setup
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.8
uses: actions/setup-python@v3
with:
python-version: 3.8
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp38-*.whl)" >> $env:GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $env:DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-windows-3.8
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $env:DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $env:DT_WHEEL
win-39:
name: Windows / Python 3.9
runs-on: windows-latest
needs: setup
if: ${{ needs.setup.outputs.DT_RELEASE == 'True?' }}
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: 3.9
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp39-*.whl)" >> $env:GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $env:DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-windows-3.9
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $env:DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $env:DT_WHEEL
win-310:
name: Windows / Python 3.10
runs-on: windows-latest
needs: setup
if: ${{ needs.setup.outputs.DT_RELEASE == 'True?' }}
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: 3.10
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp310-*.whl)" >> $env:GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $env:DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-windows-3.10
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $env:DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $env:DT_WHEEL
win-311:
name: Windows / Python 3.11
runs-on: windows-latest
needs: setup
if: ${{ needs.setup.outputs.DT_RELEASE == 'True?' }}
env:
DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }}
DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }}
DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }}
DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }}
DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v3
with:
python-version: 3.11
- name: Build datatable wheel
run: |
python -V
python -m pip install --upgrade pip
python ci/ext.py wheel
echo "DT_WHEEL=$(ls dist/*-cp311-*.whl)" >> $env:GITHUB_ENV
- name: Print build information
run: |
echo "DT_WHEEL = $env:DT_WHEEL"
cat src/datatable/_build_info.py
- name: Save wheel artifact
uses: actions/upload-artifact@v3
with:
name: wheel-windows-3.11
path: ${{ env.DT_WHEEL }}
- name: Install and test
run: |
python -m pip install $env:DT_WHEEL
python -m pip install pytest docutils pandas pyarrow
python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/
- name: Uninstall wheel
run: python -m pip uninstall -y $env:DT_WHEEL