Auto-update: defaults-o2.sh o2pdpsuite.sh o2physics.sh o2.sh o2dpg.sh #12
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# GitHub workflow to check pull requests and commits for pitfalls and formatting | |
# mistakes in build recipes. | |
name: Check recipes | |
'on': | |
push: | |
paths: | |
- '*.sh' | |
pull_request: | |
paths: | |
- '*.sh' | |
permissions: {} | |
jobs: | |
lint: | |
name: alidistlint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install dependencies | |
run: python3 -m pip install -U --user alidistlint | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Run linter | |
run: | | |
! if [ -n "$BASE_SHA" ]; then | |
# For pull requests, only check files that have changed relative to | |
# the base commit. | |
git diff -z --diff-filter d --name-only "$BASE_SHA...$HEAD_SHA" -- '*.sh' | | |
xargs -0tr alidistlint -f github | |
else | |
# On push, check every file. | |
alidistlint -f github ./*.sh | |
fi | grep '^::error ' | |
env: | |
BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.head_commit.sha }} | |
circular: | |
name: circular dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo apt update -y | |
sudo apt install -y graphviz | |
python3 -m pip install -U --user pyyaml alibuild | |
aliBuild analytics off | |
- uses: actions/checkout@v3 | |
- name: Run check | |
run: | | |
for fname in *.sh; do | |
case "$fname" in | |
jalien*) default=jalien ;; | |
*) default=o2 ;; | |
esac | |
echo "Checking $fname with --defaults $default" | |
if aliBuild deps --defaults "$default" --outgraph /dev/null --no-system --neat -c . \ | |
"$(awk '/^package: /{print $2}' "$fname")" 2>&1 | | |
grep -q 'transitive reduction not unique' | |
then | |
echo -n "::error title=circular dependency,file=$fname,line=1" | |
echo '::recipe has circular dependency' | |
err=1 | |
fi | |
done | |
exit "${err:-0}" |