First attempt to run test on Windows #136
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] | |
# ToDo remove after testing | |
push: | |
branches-ignore: | |
- 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 | |
python -m pip install 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/ | |
#permissions: | |
# id-token: write | |
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: | |
# ToDo skip-existing remove after testing | |
skip-existing: true | |
verbose: true | |
# user: __token__ ## used as default | |
password: pypi-${{ secrets.TESTPYPI_TOKEN }} | |
repository-url: https://test.pypi.org/legacy/ | |
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 |