[ref] refactor tests (#15) #26
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Upload Release package | |
on: | |
push: | |
branches: | |
- master | |
jobs: | |
build: | |
name: Build project (ubuntu) | |
runs-on: ubuntu-22.04 | |
env: | |
DEPLOY_BUILD_PYTHON_VERSION: '3.12' | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout PyReindexer repo | |
uses: actions/checkout@v4 | |
- name: Checkout Reindexer repo | |
uses: actions/checkout@v4 | |
with: | |
repository: Restream/reindexer | |
path: reindexer | |
- name: Install dependencies | |
run: | | |
sudo apt-get update -y | |
cd reindexer | |
sudo bash dependencies.sh | |
- name: Build Reindexer | |
run: | | |
cd reindexer | |
mkdir -p build && cd build | |
cmake .. | |
make -j4 | |
sudo make install | |
- name: Set up Python ${{ env.DEPLOY_BUILD_PYTHON_VERSION }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.DEPLOY_BUILD_PYTHON_VERSION }} | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip build | |
- name: Build PyReindexer | |
run: python -m build --sdist | |
- name: Store build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build | |
path: dist/* | |
deploy: | |
name: Upload to PyPI (ubuntu) | |
runs-on: ubuntu-22.04 | |
needs: build | |
environment: | |
name: pypi | |
url: https://pypi.org/p/pyreindexer/ | |
steps: | |
- name: Fetch build artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: build | |
path: dist/ | |
- name: Publish package distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
verbose: true | |
# user: __token__ ## used as default | |
password: pypi-${{ secrets.PYPI_TOKEN }} | |
test: | |
strategy: | |
matrix: | |
os: [ubuntu-22.04,ubuntu-24.04,macos-14] | |
fail-fast: false | |
runs-on: ${{matrix.os}} | |
env: | |
# Python 3.12 issue found on MasOS arm64 (darwin) runners, actions/setup-python@v5 incorrect venv setup | |
BUILD_PYTHON_VERSION: ${{ startsWith(matrix.os, 'macos') && '3.8' || '3.12' }} | |
needs: deploy | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout PyReindexer | |
uses: actions/checkout@v4 | |
- name: Install Reindexer (MacOS) | |
if: startsWith(matrix.os, 'macos') | |
run: | | |
brew tap restream/reindexer | |
brew install reindexer | |
- name: Install Reindexer-Dev\Server (Ubuntu) | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
curl https://repo.reindexer.io/RX-KEY.GPG | sudo apt-key add | |
if [[ ${{matrix.os}} == ubuntu-22.04 ]]; then | |
echo 'deb https://repo.reindexer.io/ubuntu-jammy /' | sudo tee -a /etc/apt/sources.list | |
elif [[ ${{matrix.os}} == ubuntu-24.04 ]]; then | |
echo 'deb https://repo.reindexer.io/ubuntu-noble /' | sudo tee -a /etc/apt/sources.list | |
else | |
echo "${{matrix.os}} not supported" | |
exit 1 | |
fi | |
sudo apt-get update -y | |
sudo apt-get install -y libunwind-dev | |
sudo apt-get install -y reindexer-dev | |
sudo apt-get install -y reindexer-server | |
- name: Set up Python ${{ env.BUILD_PYTHON_VERSION }} | |
uses: actions/setup-python@v5 | |
env: | |
PIP_DISABLE_PIP_VERSION_CHECK: 1 | |
with: | |
python-version: ${{ env.BUILD_PYTHON_VERSION }} | |
- name: Install PyReindexer | |
run: | | |
python -m pip install --upgrade --disable-pip-version-check pip importlib_metadata setuptools wheel | |
python -m pip install -vvv pyreindexer | |
- name: Prepare Test Environment | |
run: python -m pip install -r requirements.txt | |
- name: Test | |
run: | | |
cd $(python -c "import sysconfig; print(sysconfig.get_path('purelib'))")/pyreindexer | |
$GITHUB_WORKSPACE/.github/workflows/test.sh |