Uv export requirements #8
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
| --- | |
| ## Pipeline to export requirements*.txt files | |
| name: Uv export requirements | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| commit_message: | |
| description: "Commit message for updated requirements" | |
| required: false | |
| default: "chore: export requirements" | |
| commit_title: | |
| description: "Pull request title" | |
| required: false | |
| default: "Export requirements*.txt" | |
| commit_body: | |
| description: "Pull request body" | |
| required: false | |
| default: "Export production & development requirements" | |
| # pull_request: | |
| # branches: | |
| # - main | |
| # types: | |
| # - opened | |
| # - reopened | |
| # - synchronize | |
| # paths: | |
| # - "pyproject.toml" | |
| # - "uv.lock" | |
| jobs: | |
| export-and-commit: | |
| runs-on: ubuntu-latest | |
| steps: | |
| ## Checkout code in pipeline | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| ## Install uv in pipeline | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| ## Export production & dev requirements | |
| - name: Export requirements.txt | |
| run: | | |
| uv export --no-hashes -o requirements.txt | |
| uv export --no-hashes --only-dev -o requirements.dev.txt | |
| ## Call re-usable workflow to commit changes | |
| # - name: Commit changes back to branch | |
| # uses: ./.github/workflows/commit-changes.yml | |
| # with: | |
| # commit_message: "${{ github.event.inputs.commit_message || 'chore: update requirements' }}" | |
| ## Commit and push changes | |
| - name: Commit and push changes | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| if ! git diff --quiet; then | |
| echo "Changes detected. Committing..." | |
| git add requirements.txt requirements.dev.txt | |
| COMMIT_MESSAGE="${{ github.event.inputs.commit_message || 'chore: export requirements' }}" | |
| git commit -m "$COMMIT_MESSAGE" | |
| git push origin HEAD:${{ github.ref_name }} | |
| else | |
| echo "No changes detected. Skipping commit." | |
| fi | |
| ## Open new PR to main | |
| - name: Create PR for dependency updates | |
| uses: peter-evans/create-pull-request@v5 | |
| with: | |
| branch: chore/bump-depends | |
| commit-message: "${{ github.event.inputs.commit_message || 'chore: export requirements' }}" | |
| title: "${{ github.event.inputs.commit_title || 'Update requirements*.txt files' }}" | |
| body: "${{ github.event.inputs.commit_body || 'Export production & dev requirements' }}" | |
| base: main |