@@ -4,63 +4,51 @@ name: modules
44
55on :
66 push :
7- branches : [main]
7+ branches : [ main ]
88 paths :
99 - " modules/**"
1010 pull_request :
11- branches : [main]
11+ branches : [ main ]
1212 paths :
1313 - " modules/**"
1414
15- permissions :
16- actions : write # needed for self-cancellation
17-
1815jobs :
19- test :
20- strategy :
21- fail-fast : false
22- matrix :
23- python-version : ["3.11"]
24- module :
25- - arangodb
26- - azurite
27- - clickhouse
28- - elasticsearch
29- - google
30- - kafka
31- - keycloak
32- - localstack
33- - minio
34- - mongodb
35- - mssql
36- - mysql
37- - neo4j
38- - nginx
39- - opensearch
40- - oracle
41- - postgres
42- - rabbitmq
43- - redis
44- - selenium
45- - k3s
16+ track-modules :
4617 runs-on : ubuntu-latest
4718 steps :
4819 - name : Checkout contents
4920 uses : actions/checkout@v4
21+ with :
22+ fetch-depth : 0 # recommended by tj-actions/changed-files
5023 - name : Get changed files
51- id : changes-for-module
24+ id : changed-files
5225 uses : tj-actions/changed-files@v42
5326 with :
54- files : |
55- modules/${{ matrix.module }}/**
56- - name : Exit early, nothing to do
57- if : ${{ steps.changes-for-module.outputs.any_changed == 'false' }}
27+ path : " ./modules"
28+ diff_relative : true
29+ dir_names : true
30+ dir_names_exclude_current_dir : true
31+ json : true
32+ - name : Compute modules from files
33+ id : compute-changes
5834 run : |
59- # cancel and wait for run to end
60- gh run cancel ${{ github.run_id }}
61- gh run watch ${{ github.run_id }}
62- env :
63- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
35+ modules=$(echo "${{ steps.changed-files.outputs.all_changed_files }}" | jq '.[] | split("/") | first' | jq -s -c '. | unique')
36+ echo "computed_modules=$modules"
37+ echo "computed_modules=$modules" >> $GITHUB_OUTPUT
38+ outputs :
39+ changed_modules : ${{ steps.compute-changes.outputs.computed_modules }}
40+ test :
41+ needs : [track-modules]
42+ if : ${{ needs.track-modules.outputs.changed_modules != '[]' }}
43+ strategy :
44+ fail-fast : false
45+ matrix :
46+ python-version : [ "3.11" ]
47+ module : ${{ fromJSON(needs.track-modules.outputs.changed_modules) }}
48+ runs-on : ubuntu-latest
49+ steps :
50+ - name : Checkout contents
51+ uses : actions/checkout@v4
6452 - name : Set up Python
6553 uses : ./.github/actions/setup-env
6654 with :
0 commit comments