Skip to content

Commit 5b97eaf

Browse files
committed
Gather a list of submodule names, pathes etc.
1 parent 1e69400 commit 5b97eaf

1 file changed

Lines changed: 55 additions & 17 deletions

File tree

.github/workflows/PrepareJob.yml

Lines changed: 55 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ on:
6262
is_release_tag:
6363
description: ""
6464
value: ${{ jobs.Prepare.outputs.is_release_tag }}
65+
has_submodules:
66+
description: ""
67+
value: ${{ jobs.Prepare.outputs.has_submodules }}
6568
ref_kind:
6669
description: ""
6770
value: ${{ jobs.Prepare.outputs.ref_kind }}
@@ -89,29 +92,42 @@ on:
8992
# pr_mergedat:
9093
# description: ""
9194
# value: ${{ jobs.Prepare.outputs.pr_mergedat }}
95+
git_submodule_count:
96+
description: ""
97+
value: ${{ jobs.Prepare.outputs.git_submodule_count }}
98+
git_submodule_names:
99+
description: ""
100+
value: ${{ jobs.Prepare.outputs.git_submodule_names }}
101+
git_submodule_paths:
102+
description: ""
103+
value: ${{ jobs.Prepare.outputs.git_submodule_paths }}
92104

93105
jobs:
94106
Prepare:
95107
name: Extract Information
96108
runs-on: ubuntu-24.04
97109
outputs:
98-
on_default_branch: ${{ steps.Classify.outputs.on_default_branch }}
99-
on_main_branch: ${{ steps.Classify.outputs.on_main_branch }}
100-
on_release_branch: ${{ steps.Classify.outputs.on_release_branch }}
101-
on_dev_branch: ${{ steps.Classify.outputs.on_dev_branch }}
102-
is_regular_commit: ${{ steps.Classify.outputs.is_regular_commit }}
103-
is_merge_commit: ${{ steps.Classify.outputs.is_merge_commit }}
104-
is_release_commit: ${{ steps.Classify.outputs.is_release_commit }}
105-
is_nightly_tag: ${{ steps.Classify.outputs.is_nightly_tag }}
106-
is_release_tag: ${{ steps.Classify.outputs.is_release_tag }}
107-
ref_kind: ${{ steps.Classify.outputs.ref_kind }}
108-
default_branch: ${{ steps.Classify.outputs.default_branch }}
109-
branch: ${{ steps.Classify.outputs.branch }}
110-
tag: ${{ steps.Classify.outputs.tag }}
111-
version: ${{ steps.Classify.outputs.version || steps.FindPullRequest.outputs.pr_version }}
112-
# release_version: ${{ steps.FindPullRequest.outputs.release_version }}
113-
pr_title: ${{ steps.FindPullRequest.outputs.pr_title }}
114-
pr_number: ${{ steps.Classify.outputs.pr_number || steps.FindPullRequest.outputs.pr_number }}
110+
on_default_branch: ${{ steps.Classify.outputs.on_default_branch }}
111+
on_main_branch: ${{ steps.Classify.outputs.on_main_branch }}
112+
on_release_branch: ${{ steps.Classify.outputs.on_release_branch }}
113+
on_dev_branch: ${{ steps.Classify.outputs.on_dev_branch }}
114+
is_regular_commit: ${{ steps.Classify.outputs.is_regular_commit }}
115+
is_merge_commit: ${{ steps.Classify.outputs.is_merge_commit }}
116+
is_release_commit: ${{ steps.Classify.outputs.is_release_commit }}
117+
is_nightly_tag: ${{ steps.Classify.outputs.is_nightly_tag }}
118+
is_release_tag: ${{ steps.Classify.outputs.is_release_tag }}
119+
has_submodules: ${{ steps.Classify.outputs.has_submodules }}
120+
ref_kind: ${{ steps.Classify.outputs.ref_kind }}
121+
default_branch: ${{ steps.Classify.outputs.default_branch }}
122+
branch: ${{ steps.Classify.outputs.branch }}
123+
tag: ${{ steps.Classify.outputs.tag }}
124+
version: ${{ steps.Classify.outputs.version || steps.FindPullRequest.outputs.pr_version }}
125+
# release_version: ${{ steps.FindPullRequest.outputs.release_version }}
126+
pr_title: ${{ steps.FindPullRequest.outputs.pr_title }}
127+
pr_number: ${{ steps.Classify.outputs.pr_number || steps.FindPullRequest.outputs.pr_number }}
128+
git_submodule_count: ${{ steps.Classify.outputs.git_submodule_count }}
129+
git_submodule_names: ${{ steps.Classify.outputs.git_submodule_names }}
130+
git_submodule_paths: ${{ steps.Classify.outputs.git_submodule_paths }}
115131

116132
steps:
117133
- name: ⏬ Checkout repository
@@ -152,12 +168,16 @@ jobs:
152168
is_release_commit="false"
153169
is_nightly_tag="false"
154170
is_release_tag="false"
171+
has_submodules="false"
155172
ref_kind="unknown"
156173
default_branch=""
157174
branch=""
158175
tag=""
159176
pr_number=""
160177
version=""
178+
git_submodule_count="0"
179+
git_submodule_names=""
180+
git_submodule_paths=""
161181
162182
printf "Classify Git reference '%s' " "${ref}"
163183
if [[ "${ref:0:11}" == "refs/heads/" ]]; then
@@ -272,6 +292,15 @@ jobs:
272292
exit 1
273293
fi
274294
295+
# Submodules
296+
if [[ -f .gitsubmodules ]]; then
297+
has_submodules="true"
298+
git_modules_file=.gitmodules # $(git rev-parse --show-toplevel)/.gitmodules
299+
git_submodule_count="$(grep -Po '(?<=\[submodule \")(.*)(?=\"\])' "${git_modules_file}" | wc -l)"
300+
git_submodule_names="$(grep -Po '(?<=\[submodule \")(.*)(?=\"\])' "${git_modules_file}" | paste -sd ':' -)"
301+
git_submodule_paths="$(git config --file "${git_modules_file}" --null --name-only --get-regexp '\.path$' | xargs -0 -n1 git config --file "${git_modules_file}" --get | paste -sd ':' -)"
302+
fi
303+
275304
printf "\nWriting output variables ...\n"
276305
tee --append "${GITHUB_OUTPUT}" <<EOF
277306
on_default_branch=${on_default_branch}
@@ -283,12 +312,16 @@ jobs:
283312
is_release_commit=${is_release_commit}
284313
is_nightly_tag=${is_nightly_tag}
285314
is_release_tag=${is_release_tag}
315+
has_submodules=${has_submodules}
286316
ref_kind=${ref_kind}
287317
default_branch=${default_branch}
288318
branch=${branch}
289319
tag=${tag}
290320
pr_number=${pr_number}
291321
version=${version}
322+
git_submodule_count=${git_submodule_count}
323+
git_submodule_names=${git_submodule_names}
324+
git_submodule_paths=${git_submodule_paths}
292325
EOF
293326
294327
# TODO: why not is_release_commit?
@@ -373,6 +406,7 @@ jobs:
373406
printf "is_release_commit: %s\n" "${{ steps.Classify.outputs.is_release_commit }}"
374407
printf "is_nightly_tag: %s\n" "${{ steps.Classify.outputs.is_nightly_tag }}"
375408
printf "is_release_tag: %s\n" "${{ steps.Classify.outputs.is_release_tag }}"
409+
printf "has_submodules: %s\n" "${{ steps.Classify.outputs.has_submodules }}"
376410
printf "ref_kind: %s\n" "${{ steps.Classify.outputs.ref_kind }}"
377411
printf "default_branch: %s\n" "${{ steps.Classify.outputs.default_branch }}"
378412
printf "branch: %s\n" "${{ steps.Classify.outputs.branch }}"
@@ -384,3 +418,7 @@ jobs:
384418
printf "pr number: %s\n" "${{ steps.Classify.outputs.pr_number || steps.FindPullRequest.outputs.pr_number }}"
385419
printf " from merge: %s\n" "${{ steps.Classify.outputs.pr_number }}"
386420
printf " from pr: %s\n" "${{ steps.FindPullRequest.outputs.pr_number }}"
421+
printf "git_submodule_*:\n"
422+
printf " *_count_: %s\n" "${{ steps.FindPullRequest.outputs.git_submodule_count }}"
423+
printf " *_names: %s\n" "${{ steps.FindPullRequest.outputs.git_submodule_names }}"
424+
printf " *_paths: %s\n" "${{ steps.FindPullRequest.outputs.git_submodule_paths }}"

0 commit comments

Comments
 (0)