-
-
Notifications
You must be signed in to change notification settings - Fork 583
48 lines (39 loc) · 1.6 KB
/
migrator_uniqueness.yml
File metadata and controls
48 lines (39 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
name: Check Migration Filename Uniqueness
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
migration-check:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Find new migration files
id: find_files
run: |
# Compare PR branch against base, only include added files
files=$(git diff --name-only --diff-filter=A origin/${{ github.base_ref }}...HEAD | grep '^recipe/migrations/' || true)
echo "new_migrators=$new_migrators" >> $GITHUB_OUTPUT
- name: Search for existing uses of that migrator in conda-forge
if: steps.find_files.outputs.new_migrators != ''
run: |
failed=0
for m in ${new_migrators}; do
migrator=$(basename "$m")
echo "Checking for existing uses of migrator $migrator in conda-forge..."
# Search in GH-org with exact path where migrators end up
num_hits=$(gh search code "org:conda-forge path:.ci_support/migrations/$migrator" --json repository --jq 'map(select(.repository.isArchived == false)) | length')
if [ "$num_hits" -gt 0 ]; then
echo "Found $num_hits existing occurrences of migrator $migrator in conda-forge"
failed=1
else
echo "No existing occurrences of $migrator found"
fi
done
if [ "$failed" -eq 1 ]; then
echo "Pre-existing uses of migration filename(s) found in conda-forge."
exit 1
fi