Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions .github/workflows/recipe-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
# GitHub workflow to check pull requests and commits for pitfalls and formatting
# mistakes in build recipes.
name: Check recipes

'on':
workflow_dispatch:
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[git]'

- uses: actions/checkout@v6
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.
merge_base=$(git merge-base "$BASE_SHA" "$HEAD_SHA")
git diff -z --diff-filter d --name-only "$merge_base..$HEAD_SHA" -- '*.sh' |
xargs -0tr alidistlint -f github --changes "$merge_base..$HEAD_SHA"
else
# On push, check every file, ignoring warnings and notes.
alidistlint -ef github ./*.sh
fi
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 alibuild
aliBuild analytics off
- uses: actions/checkout@v6

- 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}"
13 changes: 7 additions & 6 deletions clang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,17 @@ unset CXXFLAGS
unset CFLAGS
unset LDFLAGS

case $ARCHITECTURE in
case "$ARCHITECTURE" in
# Needed to have the C headers
osx_*) DEFAULT_SYSROOT=$(xcrun --show-sdk-path) ;;
*) DEFAULT_SYSROOT= ;;
esac
case $ARCHITECTURE in
*_x86-64) LLVM_TARGETS_TO_BUILD=X86 ;;
*_arm64) LLVM_TARGETS_TO_BUILD=AArch64 ;;
*_aarch64) LLVM_TARGETS_TO_BUILD=AArch64 ;;
*) echo 'Unknown LLVM target for architecture' >&2; exit 1 ;;
case "$ARCHITECTURE" in
*x86-64*) LLVM_TARGETS_TO_BUILD=X86 ;;
Comment thread
m-fol marked this conversation as resolved.
*x86_64*) LLVM_TARGETS_TO_BUILD=X86 ;;
*arm64*) LLVM_TARGETS_TO_BUILD=AArch64 ;;
*aarch64*) LLVM_TARGETS_TO_BUILD=AArch64 ;;
*) echo "Unknown LLVM target for architecture $ARCHITECTURE" >&2; exit 1 ;;
esac

# BUILD_SHARED_LIBS=ON is needed for e.g. adding dynamic plugins to clang-tidy.
Expand Down