Support for custom settings for Reindexer #159
Workflow file for this run
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 to TestPyPI | |
on: | |
pull_request: | |
types: [opened, reopened] | |
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 TestPyPI (ubuntu) | |
runs-on: ubuntu-22.04 | |
needs: build | |
environment: | |
name: testpypi | |
url: https://test.pypi.org/p/pyreindexer/ | |
steps: | |
- name: Fetch build artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: build | |
path: dist/ | |
- name: Publish package distributions to TestPyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
verbose: true | |
# user: __token__ ## used as default | |
password: pypi-${{ secrets.TESTPYPI_TOKEN }} | |
repository-url: https://test.pypi.org/legacy/ | |
attestations: false | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04,ubuntu-24.04,macos-14] | |
runs-on: ${{matrix.os}} | |
env: | |
# Python 3.12 issue found on MasOS arm64 (darwin) runners, actions/setup-python@v5 incorrect venv setup | |
# Error: The version '3.12' with architecture 'arm64' was not found for macOS 14.4. In real version 3.9+ not found | |
# https://github.com/actions/setup-python/issues/654 | |
# https://github.com/actions/setup-python/issues/865 | |
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 --index-url https://test.pypi.org/simple/ --no-deps 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 |