Skip to content

Commit 4b02b6d

Browse files
committed
fix: reuse discover packages
1 parent 21f46e6 commit 4b02b6d

7 files changed

Lines changed: 94 additions & 103 deletions

File tree

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Discover Packages
2+
3+
on:
4+
workflow_call:
5+
outputs:
6+
packages:
7+
description: "JSON array of discovered package names"
8+
value: ${{ jobs.discover-packages.outputs.packages }}
9+
10+
jobs:
11+
discover-packages:
12+
runs-on: ubuntu-latest
13+
outputs:
14+
packages: ${{ steps.discover.outputs.packages }}
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
19+
- name: Discover packages
20+
id: discover
21+
run: |
22+
# Find all packages with pyproject.toml
23+
packages_array="[]"
24+
25+
for package_dir in packages/*/pyproject.toml; do
26+
if [ -f "$package_dir" ]; then
27+
package_name=$(echo "$package_dir" | sed 's|packages/\(.*\)/pyproject.toml|\1|')
28+
echo "Found package: $package_name"
29+
packages_array=$(echo "$packages_array" | jq -c ". += [\"$package_name\"]")
30+
fi
31+
done
32+
33+
echo "Packages: $packages_array"
34+
echo "packages=$packages_array" >> $GITHUB_OUTPUT
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Discover Testcases
2+
3+
on:
4+
workflow_call:
5+
outputs:
6+
testcases:
7+
description: "JSON array of discovered testcases with package and testcase info"
8+
value: ${{ jobs.discover-testcases.outputs.testcases }}
9+
10+
jobs:
11+
discover-testcases:
12+
runs-on: ubuntu-latest
13+
outputs:
14+
testcases: ${{ steps.discover.outputs.testcases }}
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
19+
- name: Discover testcases
20+
id: discover
21+
run: |
22+
# Find all packages with testcases directories
23+
testcases_array="[]"
24+
25+
for package_dir in packages/*/testcases; do
26+
if [ -d "$package_dir" ]; then
27+
package_name=$(echo "$package_dir" | sed 's|packages/\(.*\)/testcases|\1|')
28+
echo "Discovering testcases in $package_name"
29+
30+
# Find all testcase folders in this package
31+
for testcase_dir in "$package_dir"/*-*; do
32+
if [ -d "$testcase_dir" ]; then
33+
testcase_name=$(basename "$testcase_dir")
34+
echo " Found: $testcase_name"
35+
36+
# Add to JSON array with package and testcase info
37+
testcases_array=$(echo "$testcases_array" | jq -c ". += [{\"package\": \"$package_name\", \"testcase\": \"$testcase_name\"}]")
38+
fi
39+
done
40+
fi
41+
done
42+
43+
echo "Testcases matrix: $testcases_array"
44+
echo "testcases=$testcases_array" >> $GITHUB_OUTPUT

.github/workflows/integration_tests.yml

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -13,39 +13,7 @@ permissions:
1313

1414
jobs:
1515
discover-testcases:
16-
runs-on: ubuntu-latest
17-
outputs:
18-
testcases: ${{ steps.discover.outputs.testcases }}
19-
steps:
20-
- name: Checkout code
21-
uses: actions/checkout@v4
22-
23-
- name: Discover testcases
24-
id: discover
25-
run: |
26-
# Find all packages with testcases directories
27-
testcases_array="[]"
28-
29-
for package_dir in packages/*/testcases; do
30-
if [ -d "$package_dir" ]; then
31-
package_name=$(echo "$package_dir" | sed 's|packages/\(.*\)/testcases|\1|')
32-
echo "Discovering testcases in $package_name"
33-
34-
# Find all testcase folders in this package
35-
for testcase_dir in "$package_dir"/*-*; do
36-
if [ -d "$testcase_dir" ]; then
37-
testcase_name=$(basename "$testcase_dir")
38-
echo " Found: $testcase_name"
39-
40-
# Add to JSON array with package and testcase info
41-
testcases_array=$(echo "$testcases_array" | jq -c ". += [{\"package\": \"$package_name\", \"testcase\": \"$testcase_name\"}]")
42-
fi
43-
done
44-
fi
45-
done
46-
47-
echo "Testcases matrix: $testcases_array"
48-
echo "testcases=$testcases_array" >> $GITHUB_OUTPUT
16+
uses: ./.github/workflows/discover-testcases.yml
4917

5018
integration-tests:
5119
needs: [discover-testcases]

.github/workflows/lint-custom-version.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,21 @@ on:
66
types: [opened, synchronize, labeled, unlabeled]
77

88
jobs:
9+
discover-packages:
10+
if: contains(github.event.pull_request.labels.*.name, 'test-core-dev-version')
11+
uses: ./.github/workflows/discover-packages.yml
12+
913
lint-with-custom-version:
10-
name: Lint with Custom UiPath Version
14+
name: Lint ${{ matrix.package }} - Custom Version
15+
needs: [discover-packages]
1116
runs-on: ubuntu-latest
1217
if: contains(github.event.pull_request.labels.*.name, 'test-core-dev-version')
18+
defaults:
19+
run:
20+
working-directory: packages/${{ matrix.package }}
21+
strategy:
22+
matrix:
23+
package: ${{ fromJson(needs.discover-packages.outputs.packages) }}
1324
permissions:
1425
contents: read
1526
pull-requests: read

.github/workflows/lint.yml

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,7 @@ on:
55

66
jobs:
77
discover-packages:
8-
runs-on: ubuntu-latest
9-
outputs:
10-
packages: ${{ steps.discover.outputs.packages }}
11-
steps:
12-
- name: Checkout code
13-
uses: actions/checkout@v4
14-
15-
- name: Discover packages
16-
id: discover
17-
run: |
18-
# Find all packages with pyproject.toml
19-
packages_array="[]"
20-
21-
for package_dir in packages/*/pyproject.toml; do
22-
if [ -f "$package_dir" ]; then
23-
package_name=$(echo "$package_dir" | sed 's|packages/\(.*\)/pyproject.toml|\1|')
24-
echo "Found package: $package_name"
25-
packages_array=$(echo "$packages_array" | jq -c ". += [\"$package_name\"]")
26-
fi
27-
done
28-
29-
echo "Packages: $packages_array"
30-
echo "packages=$packages_array" >> $GITHUB_OUTPUT
8+
uses: ./.github/workflows/discover-packages.yml
319

3210
skip-lint:
3311
name: Skip Lint (Custom Version Testing)

.github/workflows/test-custom-version.yml

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,8 @@ on:
1414

1515
jobs:
1616
discover-packages:
17-
runs-on: ubuntu-latest
1817
if: contains(github.event.pull_request.labels.*.name, 'test-core-dev-version')
19-
outputs:
20-
packages: ${{ steps.discover.outputs.packages }}
21-
steps:
22-
- name: Checkout code
23-
uses: actions/checkout@v4
24-
25-
- name: Discover packages
26-
id: discover
27-
run: |
28-
# Find all packages with pyproject.toml
29-
packages_array="[]"
30-
31-
for package_dir in packages/*/pyproject.toml; do
32-
if [ -f "$package_dir" ]; then
33-
package_name=$(echo "$package_dir" | sed 's|packages/\(.*\)/pyproject.toml|\1|')
34-
echo "Found package: $package_name"
35-
packages_array=$(echo "$packages_array" | jq -c ". += [\"$package_name\"]")
36-
fi
37-
done
38-
39-
echo "Packages: $packages_array"
40-
echo "packages=$packages_array" >> $GITHUB_OUTPUT
18+
uses: ./.github/workflows/discover-packages.yml
4119

4220
test-core-dev-version:
4321
name: Test ${{ matrix.package }} - Core Dev Version

.github/workflows/test.yml

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,7 @@ on:
55

66
jobs:
77
discover-packages:
8-
runs-on: ubuntu-latest
9-
outputs:
10-
packages: ${{ steps.discover.outputs.packages }}
11-
steps:
12-
- name: Checkout code
13-
uses: actions/checkout@v4
14-
15-
- name: Discover packages
16-
id: discover
17-
run: |
18-
# Find all packages with pyproject.toml
19-
packages_array="[]"
20-
21-
for package_dir in packages/*/pyproject.toml; do
22-
if [ -f "$package_dir" ]; then
23-
package_name=$(echo "$package_dir" | sed 's|packages/\(.*\)/pyproject.toml|\1|')
24-
echo "Found package: $package_name"
25-
packages_array=$(echo "$packages_array" | jq -c ". += [\"$package_name\"]")
26-
fi
27-
done
28-
29-
echo "Packages: $packages_array"
30-
echo "packages=$packages_array" >> $GITHUB_OUTPUT
8+
uses: ./.github/workflows/discover-packages.yml
319

3210
test:
3311
name: Test ${{ matrix.package }}

0 commit comments

Comments
 (0)