Skip to content

Uv export requirements #8

Uv export requirements

Uv export requirements #8

---
## 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