Skip to content

chore: use hitl methods from core #5

chore: use hitl methods from core

chore: use hitl methods from core #5

name: Test Custom Version
on:
workflow_call:
secrets:
UIPATH_URL:
required: true
UIPATH_CLIENT_ID:
required: true
UIPATH_CLIENT_SECRET:
required: true
pull_request:
types: [opened, synchronize, labeled, unlabeled]
jobs:
test-core-dev-version:
name: Test Core Dev Version
runs-on: ${{ matrix.os }}
if: contains(github.event.pull_request.labels.*.name, 'test-core-dev-version')
strategy:
matrix:
python-version: ["3.11", "3.12", "3.13"]
os: [ubuntu-latest, windows-latest]
permissions:
contents: read
pull-requests: read
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Extract version from PR
id: extract-version
shell: bash
run: |
# Extract version from PR title only
PR_TITLE="${{ github.event.pull_request.title }}"
# Search for version pattern in title (any x.y.z.dev version)
VERSION=$(echo "$PR_TITLE" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+' | head -1)
if [ -z "$VERSION" ]; then
echo "No version found in PR title. Please include version in title like: 2.0.65.dev1004030443"
exit 1
fi
echo "Extracted version: $VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Setup uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Modify pyproject.toml for custom UiPath version
shell: bash
run: |
# Backup original pyproject.toml
cp pyproject.toml pyproject.toml.backup
# Update the uipath dependency to the custom version
sed -i 's|"uipath>=.*"|"uipath==${{ steps.extract-version.outputs.version }}"|' pyproject.toml
# Add or update [tool.uv.sources] section if it doesn't exist
if ! grep -q "\[tool\.uv\.sources\]" pyproject.toml; then
echo "" >> pyproject.toml
echo "[tool.uv.sources]" >> pyproject.toml
echo 'uipath = { index = "testpypi" }' >> pyproject.toml
else
# Update existing sources if needed
if ! grep -q 'uipath = { index = "testpypi" }' pyproject.toml; then
sed -i '/\[tool\.uv\.sources\]/a uipath = { index = "testpypi" }' pyproject.toml
fi
fi
echo "Modified pyproject.toml to use UiPath version ${{ steps.extract-version.outputs.version }} from testpypi"
echo "=== Modified pyproject.toml content ==="
grep -A5 -B5 "uipath\|testpypi" pyproject.toml || true
- name: Install dependencies with specific UiPath version
run: uv sync --all-extras
- name: Run all tests
run: uv run pytest
env:
UIPATH_URL: ${{ secrets.UIPATH_URL }}
UIPATH_CLIENT_ID: ${{ secrets.UIPATH_CLIENT_ID }}
UIPATH_CLIENT_SECRET: ${{ secrets.UIPATH_CLIENT_SECRET }}
- name: Restore original pyproject.toml
if: always()
shell: bash
run: |
mv pyproject.toml.backup pyproject.toml