in9a71543fd2, we introduced a regression, which failed to use the proper value for the container image in which the iwyu workflow is run. in this change, we pass the correct value, as we do in clang-tidy.yaml workflow. Refs9a71543fd2Fixes scylladb/scylladb#19704 Signed-off-by: Kefu Chai <kefu.chai@scylladb.com> Closes scylladb/scylladb#19697
81 lines
2.7 KiB
YAML
81 lines
2.7 KiB
YAML
name: iwyu
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
env:
|
|
BUILD_TYPE: RelWithDebInfo
|
|
BUILD_DIR: build
|
|
CLEANER_OUTPUT_PATH: build/clang-include-cleaner.log
|
|
CLEANER_DIRS: test/unit exceptions alternator api auth cdc compaction
|
|
|
|
permissions: {}
|
|
|
|
# cancel the in-progress run upon a repush
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
read-toolchain:
|
|
uses: ./.github/workflows/read-toolchain.yaml
|
|
clang-include-cleaner:
|
|
name: "Analyze #includes in source files"
|
|
needs:
|
|
- read-toolchain
|
|
runs-on: ubuntu-latest
|
|
container: ${{ needs.read-toolchain.outputs.image }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
- run: |
|
|
sudo dnf -y install clang-tools-extra
|
|
- name: Generate compilation database
|
|
run: |
|
|
cmake \
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
-DCMAKE_C_COMPILER=clang \
|
|
-DCMAKE_CXX_COMPILER=clang++ \
|
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
|
-G Ninja \
|
|
-B $BUILD_DIR \
|
|
-S .
|
|
- name: Build headers
|
|
run: |
|
|
swagger_targets=''
|
|
for f in api/api-doc/*.json; do
|
|
if test "${f#*.}" = json; then
|
|
name=$(basename "$f" .json)
|
|
if test $name != swagger20_header; then
|
|
swagger_targets+=" scylla_swagger_gen_$name"
|
|
fi
|
|
fi
|
|
done
|
|
cmake \
|
|
--build build \
|
|
--target seastar_http_request_parser \
|
|
--target idl-sources \
|
|
--target $swagger_targets
|
|
- run: |
|
|
echo "::add-matcher::.github/clang-include-cleaner.json"
|
|
- name: clang-include-cleaner
|
|
run: |
|
|
for d in $CLEANER_DIRS; do
|
|
find $d -name '*.cc' -o -name '*.hh' \
|
|
-exec echo {} \; \
|
|
-exec clang-include-cleaner \
|
|
--ignore-headers=seastarx.hh \
|
|
--print=changes \
|
|
-p $BUILD_DIR \
|
|
{} \; | tee --append $CLEANER_OUTPUT_PATH
|
|
done
|
|
- run: |
|
|
echo "::remove-matcher owner=clang-include-cleaner::"
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: Logs (clang-include-cleaner)
|
|
path: "./${{ env.CLEANER_OUTPUT_PATH }}"
|