name: CI | Update runpod package version on: repository_dispatch: types: [python-package-release] push: branches: ["main"] workflow_dispatch: jobs: check_dep: runs-on: ubuntu-latest name: Check python requirements file and update steps: - name: Checkout uses: actions/checkout@v2 - name: Check for new package version and update run: | echo "Fetching the current runpod version from requirements.txt..." # Get current version, allowing both == and ~= in the search pattern current_version=$(grep -oP 'runpod[~=]{1,2}\K[^"]+' ./builder/requirements.txt) echo "Current version: $current_version" # Extract major and minor from current version current_major_minor=$(echo $current_version | cut -d. -f1,2) echo "Current major.minor: $current_major_minor" echo "Fetching the latest runpod version from PyPI..." # Get new version from PyPI new_version=$(curl -s https://pypi.org/pypi/runpod/json | jq -r .info.version) echo "NEW_VERSION_ENV=$new_version" >> $GITHUB_ENV echo "New version: $new_version" # Extract major and minor from new version new_major_minor=$(echo $new_version | cut -d. -f1,2) echo "New major.minor: $new_major_minor" if [ -z "$new_version" ]; then echo "ERROR: Failed to fetch the new version from PyPI." exit 1 fi # Check if the major or minor version is different if [ "$current_major_minor" = "$new_major_minor" ]; then echo "No update needed. The new version ($new_major_minor) is within the allowed range (~= $current_major_minor)." exit 0 fi echo "New major/minor detected ($new_major_minor). Updating requirements.txt..." # Update requirements.txt, preserving the existing constraint type (~= or ==) sed -i "s/runpod[~=][^ ]*/runpod~=$new_version/" ./builder/requirements.txt echo "requirements.txt has been updated." - name: Create Pull Request uses: peter-evans/create-pull-request@v3 with: token: ${{ secrets.GITHUB_TOKEN }} commit-message: Update runpod package version title: Update runpod package version body: The package version has been updated to ${{ env.NEW_VERSION_ENV }} branch: runpod-package-update