|
6 | 6 | branches: [ main ]
|
7 | 7 |
|
8 | 8 | jobs:
|
9 |
| - validate-dependencies: |
| 9 | + check-dependency-changes: |
10 | 10 | runs-on: ubuntu-latest
|
11 | 11 | steps:
|
12 |
| - - name: checkout code |
| 12 | + - name: Checkout repository |
13 | 13 | uses: actions/checkout@v4
|
14 | 14 | with:
|
15 |
| - fetch-depth: 0 |
| 15 | + fetch-depth: 0 # Ensure full history is fetched |
16 | 16 |
|
17 |
| - - name: fetch all history |
18 |
| - run: git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* |
| 17 | + - name: Fetch main branch |
| 18 | + run: git fetch origin main |
19 | 19 |
|
20 |
| - - name: check for changes in pyproject.toml and poetry.lock |
21 |
| - id: check-deps |
| 20 | + - name: Check if uv.lock or pyproject.toml has changed |
| 21 | + id: check-changes |
22 | 22 | run: |
|
23 |
| - echo "Checking pyproject.toml and poetry.lock for changes..." |
24 |
| - BASE_BRANCH=${{ github.event.pull_request.base.ref }} |
25 |
| - HEAD_BRANCH=${{ github.event.pull_request.head.ref }} |
26 |
| - CHANGES=$(git diff --name-only origin/$BASE_BRANCH -- origin/$HEAD_BRANCH | grep -E "^(pyproject.toml|poetry.lock)$" || true) |
27 |
| - echo "Changed files: $CHANGES" |
28 |
| - if [ ! -z "$CHANGES" ]; then |
29 |
| - echo "Checking if requirements.txt has also been updated..." |
30 |
| - if ! git diff --name-only origin/$BASE_BRANCH -- origin/$HEAD_BRANCH | grep -q "requirements.txt"; then |
31 |
| - echo "ERROR: pyproject.toml or poetry.lock has changed, but requirements.txt has not been updated." |
32 |
| - echo "Please update requirements.txt by running 'make create-requirements'." |
33 |
| - exit 1 |
34 |
| - fi |
| 23 | + echo "Checking for changes in uv.lock or pyproject.toml..." |
| 24 | + CHANGES=$(git diff --name-only origin/main --) |
| 25 | +
|
| 26 | + if echo "$CHANGES" | grep -qE "^(uv.lock|pyproject.toml)$"; then |
| 27 | + echo "uv.lock or pyproject.toml has changed." |
| 28 | + echo "files_changed=true" >> $GITHUB_ENV |
| 29 | + else |
| 30 | + echo "No changes detected in uv.lock or pyproject.toml." |
| 31 | + echo "files_changed=false" >> $GITHUB_ENV |
35 | 32 | fi
|
36 | 33 |
|
37 |
| - - name: validate requirements.txt update |
38 |
| - if: steps.check-deps.outputs.poetry_updated == 'true' |
| 34 | + - name: Validate requirements.txt changes |
| 35 | + if: env.files_changed == 'true' |
39 | 36 | run: |
|
40 |
| - BASE_BRANCH=${{ github.event.pull_request.base.ref }} |
41 |
| - HEAD_BRANCH=${{ github.event.pull_request.head.ref }} |
42 |
| - REQUIREMENTS_CHANGE=$(git diff --name-only origin/$BASE_BRANCH -- origin/$HEAD_BRANCH | grep -q "requirements.txt") |
43 |
| - echo "requirements.txt changed: $REQUIREMENTS_CHANGE" |
44 |
| - if [ ! -z "$REQUIREMENTS_CHANGE" ]; then |
45 |
| - echo "requirements.txt updated correctly." |
| 37 | + echo "Validating requirements.txt update..." |
| 38 | + CHANGED_FILES=$(git diff --name-only origin/main --) |
| 39 | +
|
| 40 | + # Check if requirements.txt has been updated |
| 41 | + if echo "$CHANGED_FILES" | grep -q "^requirements.txt$"; then |
| 42 | + echo "requirements.txt has been updated." |
46 | 43 | else
|
47 |
| - echo "ERROR: pyproject.toml or poetry.lock has changed, but requirements.txt has not been updated." |
| 44 | + echo "ERROR: pyproject.toml or uv.lock has changed, but requirements.txt has not been updated." |
48 | 45 | echo "Please update requirements.txt by running 'make create-requirements'."
|
49 | 46 | exit 1
|
50 | 47 | fi
|
0 commit comments