mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 20:20:10 +01:00
This has been working really well for me, is incredibly faster than the other approach, and some commits continue to hit bugs in the old system where files that aren't even going to be run through `clangd-tidy` end up tripping up the execution. Hopefully all of that is resolved with the new version.
88 lines
2.8 KiB
YAML
88 lines
2.8 KiB
YAML
# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
# Exceptions. See /LICENSE for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
name: 'Clang Tidy (clangd)'
|
|
|
|
on:
|
|
push:
|
|
branches: [trunk, action-test]
|
|
pull_request:
|
|
merge_group:
|
|
|
|
permissions:
|
|
contents: read # For actions/checkout.
|
|
pull-requests: read # For dorny/paths-filter to read pull requests.
|
|
|
|
# Cancel previous workflows on the PR when there are multiple fast commits.
|
|
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
clangd-tidy:
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
- name: Harden Runner
|
|
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
|
|
with:
|
|
egress-policy: block
|
|
# When adding endpoints, see README.md.
|
|
# prettier-ignore
|
|
allowed-endpoints: >
|
|
*.blob.storage.azure.net:443
|
|
*.githubapp.com:443
|
|
*.sourceforge.net:443
|
|
api.github.com:443
|
|
api.ipify.org:443
|
|
bcr.bazel.build:443
|
|
downloads.sourceforge.net:443
|
|
files.pythonhosted.org:443
|
|
github.com:443
|
|
go.dev:443
|
|
mirror.bazel.build:443
|
|
mirrors.kernel.org:443
|
|
nodejs.org:443
|
|
oauth2.googleapis.com:443
|
|
objects.githubusercontent.com:443
|
|
pypi.org:443
|
|
registry.npmjs.org:443
|
|
release-assets.githubusercontent.com:443
|
|
releases.bazel.build:443
|
|
storage.googleapis.com:443
|
|
uploads.github.com:443
|
|
www.googleapis.com:443
|
|
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- id: filter
|
|
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
|
with:
|
|
filters: |
|
|
has_cpp:
|
|
- added|modified: '{**/*.cpp,**/*.h}'
|
|
list-files: 'shell'
|
|
|
|
- uses: ./.github/actions/build-setup-common
|
|
if: steps.filter.outputs.has_cpp == 'true'
|
|
with:
|
|
matrix_runner: 'ubuntu-22.04'
|
|
remote_cache_upload: '--remote_upload_local_results=false'
|
|
|
|
- name: Create compile commands
|
|
if: steps.filter.outputs.has_cpp == 'true'
|
|
run: ./scripts/create_compdb.py
|
|
|
|
- name: Install clangd-tidy
|
|
if: steps.filter.outputs.has_cpp == 'true'
|
|
run: pip install clangd-tidy==1.1.0.post2
|
|
|
|
- name: Run clangd-tidy
|
|
if: steps.filter.outputs.has_cpp == 'true'
|
|
env:
|
|
FILTER_FILES: ${{ steps.filter.outputs.has_cpp_files }}
|
|
run: |
|
|
clangd-tidy -p . -j 10 $FILTER_FILES
|