Skip to content

Commit e7c2c09

Browse files
authored
build: replace uniq with sort -u to deduplicate directories in CI workflows
PR-URL: #13933 Reviewed-by: Athan Reines <kgryte@gmail.com> Closes: stdlib-js/metr-issue-tracker#1113
1 parent b43a065 commit e7c2c09

7 files changed

Lines changed: 10 additions & 7 deletions

File tree

‎.github/workflows/run_affected_benchmarks.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ jobs:
131131
files=$(git diff --diff-filter=AM --name-only ${{ github.event.before }} ${{ github.event.after }})
132132
fi
133133
fi
134-
directories=$(for file in $files; do dirname $file; done | uniq | tr '\n' ' ' | sed 's/ $//')
134+
directories=$(for file in $files; do dirname $file; done | sort -u | tr '\n' ' ' | sed 's/ $//')
135135
echo "directories=${directories}" >> $GITHUB_OUTPUT
136136
137137
# Get list of changed directories from workflow dispatch event:

‎.github/workflows/run_affected_tests.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ jobs:
163163
files=$(git diff --diff-filter=AM --name-only ${{ github.event.before }} ${{ github.event.after }})
164164
fi
165165
fi
166-
directories=$(for file in $files; do dirname $file; done | uniq | tr '\n' ' ' | sed 's/ $//')
166+
directories=$(for file in $files; do dirname $file; done | sort -u | tr '\n' ' ' | sed 's/ $//')
167167
echo "directories=${directories}" >> $GITHUB_OUTPUT
168168
169169
# Get list of changed directories from workflow dispatch event:

‎.github/workflows/run_tests_coverage.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ jobs:
134134
else
135135
files=$(git diff --diff-filter=AM --name-only ${{ github.event.before }} ${{ github.event.after }})
136136
fi
137-
directories=$(for file in $files; do dirname $file; done | uniq | tr '\n' ' ' | sed 's/ $//')
137+
directories=$(for file in $files; do dirname $file; done | sort -u | tr '\n' ' ' | sed 's/ $//')
138138
echo "directories=${directories}" >> $GITHUB_OUTPUT
139139
140140
# Get list of changed directories from workflow dispatch event:

‎.github/workflows/run_tests_coverage_pr.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ jobs:
123123
# Get changed files using git diff against base branch:
124124
git fetch origin ${{ github.base_ref }} --depth=1
125125
files=$(git diff --diff-filter=AM --name-only origin/${{ github.base_ref }}...HEAD)
126-
directories=$(for file in $files; do dirname $file; done | uniq | tr '\n' ' ' | sed 's/ $//')
126+
directories=$(for file in $files; do dirname $file; done | sort -u | tr '\n' ' ' | sed 's/ $//')
127127
echo "directories=${directories}" >> $GITHUB_OUTPUT
128128
129129
# Exit early if non-package directories are changed:

‎.github/workflows/scripts/run_affected_benchmarks/run‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ main() {
110110
changed=$(echo "${changed}" | tr ' ' '\n' | grep '^lib/node_modules/@stdlib') || true
111111

112112
# Find unique package directories:
113-
directories=$(echo "${changed}" | tr ' ' '\n' | sed -E 's/\/(benchmark|bin|data|docs|etc|examples|include|lib|scripts|src|test)(\/.*)?$//' | uniq)
113+
directories=$(echo "${changed}" | tr ' ' '\n' | sed -E 's/\/(benchmark|bin|data|docs|etc|examples|include|lib|scripts|src|test)(\/.*)?$//' | sort -u)
114114

115115
if [ -z "${directories}" ]; then
116116
echo 'No packages to run benchmarks for.' >&2

‎.github/workflows/scripts/run_affected_tests/run‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ main() {
110110
changed=$(echo "${changed}" | tr ' ' '\n' | grep '^lib/node_modules/@stdlib') || true
111111

112112
# Find unique package directories:
113-
directories=$(echo "${changed}" | tr ' ' '\n' | sed -E 's/\/(benchmark|bin|data|docs|etc|examples|include|lib|scripts|src|test)(\/.*)?$//' | uniq)
113+
directories=$(echo "${changed}" | tr ' ' '\n' | sed -E 's/\/(benchmark|bin|data|docs|etc|examples|include|lib|scripts|src|test)(\/.*)?$//' | sort -u)
114114

115115
if [ -z "${directories}" ]; then
116116
echo 'No packages to test.' >&2
@@ -141,6 +141,9 @@ main() {
141141
directories="${directories} ${required_by}"
142142
fi
143143

144+
# Deduplicate the merged list of directories:
145+
directories=$(echo "${directories}" | tr ' ' '\n' | sort -u)
146+
144147
# Build native add-ons for packages (if applicable):
145148
for pkg in ${packages}; do
146149
if [ -f "lib/node_modules/${pkg}/binding.gyp" ]; then

‎.github/workflows/scripts/run_tests_coverage/run‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ main() {
129129
grep -v '^lib/node_modules/@stdlib/_tools') || true
130130

131131
# Find unique package directories:
132-
directories=$(echo "${changed}" | tr ' ' '\n' | sed -E 's/\/(benchmark|bin|data|docs|etc|examples|include|lib|scripts|src|test)(\/.*)?\/?$//' | uniq)
132+
directories=$(echo "${changed}" | tr ' ' '\n' | sed -E 's/\/(benchmark|bin|data|docs|etc|examples|include|lib|scripts|src|test)(\/.*)?\/?$//' | sort -u)
133133

134134
if [ -z "${directories}" ]; then
135135
echo 'No packages to test.' >&2

0 commit comments

Comments
 (0)