Skip to content

Improve metadata access for pristine DataStore sources #988

Improve metadata access for pristine DataStore sources

Improve metadata access for pristine DataStore sources #988

name: Build & Test Linux arm64
on:
workflow_dispatch:
inputs:
TAG_NAME:
description: 'Release Version Tag'
required: true
release:
types: [created]
push:
branches:
- main
paths-ignore:
- '**/*.md'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches:
- main
paths-ignore:
- '**/*.md'
jobs:
test_datastore:
name: Test DataStore (Linux arm64)
runs-on: [self-hosted, linux, arm64, ubuntu-latest]
if: ${{ !github.event.pull_request.draft }}
steps:
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev wget curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev libsqlite3-dev
- name: Setup pyenv
run: |
rm -rf $HOME/.pyenv
curl https://pyenv.run | bash
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
pyenv install 3.9:latest
pyenv install 3.10:latest
pyenv install 3.11:latest
pyenv install 3.12:latest
pyenv install 3.13:latest
pyenv install 3.14:latest
pyenv global 3.9 3.10 3.11 3.12 3.13 3.14
echo "Installed versions:"
pyenv versions
- name: Verify pyenv installations
run: |
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
echo "Installed Python versions:"
pyenv versions
echo ""
echo "Verifying all required Python versions are available:"
for version in 3.9 3.10 3.11 3.12 3.13 3.14; do
if ! pyenv versions --bare | grep -q "^$version"; then
echo "ERROR: Python $version is not installed!"
exit 1
fi
echo "✓ Python $version is installed"
done
echo "All Python versions verified successfully!"
- name: Install dependencies for all Python versions
run: |
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
for version in 3.9 3.10 3.11 3.12 3.13 3.14; do
echo "Installing dependencies for Python $version"
pyenv shell $version
python -m pip install --upgrade pip
python -m pip install setuptools tox pandas pyarrow wheel pytest pytest-cov
pyenv shell --unset
done
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Build wheel
run: |
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
pyenv shell 3.9
make wheel
- name: Show files
run: |
ls -lh dist
shell: bash
- name: Test DataStore on all Python versions with pandas 2.x and 3.x
run: |
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
for version in 3.9 3.10 3.11 3.12 3.13 3.14; do
# pandas 3.x requires Python >= 3.11
if [[ "$version" == "3.9" || "$version" == "3.10" ]]; then
PANDAS_CONSTRAINTS=("pandas<3.0")
else
PANDAS_CONSTRAINTS=("pandas<3.0" "pandas>=3.0")
fi
for PANDAS_CONSTRAINT in "${PANDAS_CONSTRAINTS[@]}"; do
echo "=============================================="
echo "Testing DataStore on Python $version with $PANDAS_CONSTRAINT"
echo "=============================================="
pyenv shell $version
python -m pip install dist/*.whl --force-reinstall
python -m pip install pytest pytest-cov "$PANDAS_CONSTRAINT"
echo "Installed pandas version:"
python -c "import pandas; print(pandas.__version__)"
echo "Running DataStore tests on Python $version with $PANDAS_CONSTRAINT ..."
cd datastore
python -m pytest tests/ -v --tb=short -x
cd ..
echo "=============================================="
echo "DataStore tests PASSED on Python $version with $PANDAS_CONSTRAINT"
echo "=============================================="
pyenv shell --unset
done
done
continue-on-error: false