You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
872 B
38 lines
872 B
#!/usr/bin/env bash
|
|
|
|
# This is used by the linter action.
|
|
# Recursively finds all directories with a go.mod file and creates
|
|
# a GitHub Actions JSON output option.
|
|
|
|
set -o errexit
|
|
|
|
echo "Resolving modules in $(pwd)"
|
|
|
|
KRAOTS_HOME=$(
|
|
cd "$(dirname "${BASH_SOURCE[0]}")" &&
|
|
cd .. &&
|
|
pwd
|
|
)
|
|
|
|
source "${KRAOTS_HOME}/hack/util.sh"
|
|
|
|
FAILURE_FILE=${KRAOTS_HOME}/hack/.lintcheck_failures
|
|
|
|
all_modules=$(util::find_modules)
|
|
failing_modules=()
|
|
while IFS='' read -r line; do failing_modules+=("$line"); done < <(cat "$FAILURE_FILE")
|
|
|
|
echo "Ignored failing modules:"
|
|
echo "${failing_modules[*]}"
|
|
echo
|
|
|
|
PATHS=""
|
|
|
|
for mod in $all_modules; do
|
|
util::array_contains "$mod" "${failing_modules[*]}" && in_failing=$? || in_failing=$?
|
|
if [[ "$in_failing" -ne "0" ]]; then
|
|
PATHS+=$(printf '{"workdir":"%s"},' ${mod})
|
|
fi
|
|
done
|
|
|
|
echo "::set-output name=matrix::{\"include\":[${PATHS%?}]}"
|
|
|