Merge branch 'develop' into release/v0.7.5 #4
Workflow file for this run
This file contains hidden or 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: Release Pipeline | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| - '!test-v*' # Exclude test tags | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write # Required for creating releases | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Extract version from tag | |
| id: get_version | |
| run: | | |
| TAG_VERSION=${GITHUB_REF#refs/tags/v} | |
| echo "VERSION=$TAG_VERSION" >> $GITHUB_OUTPUT | |
| echo "Releasing version: $TAG_VERSION" | |
| - name: Install package dependencies | |
| run: | | |
| pip install -e . | |
| - name: Check version consistency | |
| run: | | |
| TAG_VERSION=${{ steps.get_version.outputs.VERSION }} | |
| PACKAGE_VERSION=$(python -c "from crawl4ai.__version__ import __version__; print(__version__)") | |
| echo "Tag version: $TAG_VERSION" | |
| echo "Package version: $PACKAGE_VERSION" | |
| if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then | |
| echo "❌ Version mismatch! Tag: $TAG_VERSION, Package: $PACKAGE_VERSION" | |
| echo "Please update crawl4ai/__version__.py to match the tag version" | |
| exit 1 | |
| fi | |
| echo "✅ Version check passed: $TAG_VERSION" | |
| - name: Install build dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install build twine | |
| - name: Build package | |
| run: python -m build | |
| - name: Check package | |
| run: twine check dist/* | |
| - name: Upload to PyPI | |
| env: | |
| TWINE_USERNAME: __token__ | |
| TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} | |
| run: | | |
| echo "📦 Uploading to PyPI..." | |
| twine upload dist/* | |
| echo "✅ Package uploaded to https://pypi.org/project/crawl4ai/" | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: v${{ steps.get_version.outputs.VERSION }} | |
| name: Release v${{ steps.get_version.outputs.VERSION }} | |
| body: | | |
| ## 🎉 Crawl4AI v${{ steps.get_version.outputs.VERSION }} Released! | |
| ### 📦 Installation | |
| **PyPI:** | |
| ```bash | |
| pip install crawl4ai==${{ steps.get_version.outputs.VERSION }} | |
| ``` | |
| **Docker:** | |
| ```bash | |
| docker pull unclecode/crawl4ai:${{ steps.get_version.outputs.VERSION }} | |
| docker pull unclecode/crawl4ai:latest | |
| ``` | |
| **Note:** Docker images are being built and will be available shortly. | |
| Check the [Docker Release workflow](https://github.com/${{ github.repository }}/actions/workflows/docker-release.yml) for build status. | |
| ### 📝 What's Changed | |
| See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details. | |
| draft: false | |
| prerelease: false | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Summary | |
| run: | | |
| echo "## 🚀 Release Complete!" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "### 📦 PyPI Package" >> $GITHUB_STEP_SUMMARY | |
| echo "- Version: ${{ steps.get_version.outputs.VERSION }}" >> $GITHUB_STEP_SUMMARY | |
| echo "- URL: https://pypi.org/project/crawl4ai/" >> $GITHUB_STEP_SUMMARY | |
| echo "- Install: \`pip install crawl4ai==${{ steps.get_version.outputs.VERSION }}\`" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "### 📋 GitHub Release" >> $GITHUB_STEP_SUMMARY | |
| echo "- https://github.com/${{ github.repository }}/releases/tag/v${{ steps.get_version.outputs.VERSION }}" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "### 🐳 Docker Images" >> $GITHUB_STEP_SUMMARY | |
| echo "Docker images are being built in a separate workflow." >> $GITHUB_STEP_SUMMARY | |
| echo "Check: https://github.com/${{ github.repository }}/actions/workflows/docker-release.yml" >> $GITHUB_STEP_SUMMARY |