diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 0000000..fae8f7b --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,60 @@ +name: E2E Test + +on: + pull_request: + branches: [ main ] + workflow_dispatch: + inputs: + target_repo: + description: 'Target repository to test against' + required: false + default: 'llvm/llvm-project' + +jobs: + e2e-test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + clang_version: [16, 17, 18, 19, 20] + + name: Test clang ${{ matrix.clang_version }} + steps: + - name: Checkout workflow repo + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip + python -m pip install pre-commit + + - name: Clone target repository + run: | + git clone --depth=1 https://github.com/${{ github.event.inputs.target_repo || 'llvm/llvm-project' }}.git test-repo + + - name: Create .pre-commit-config.yaml + run: | + cd test-repo + rm -f .pre-commit-config.yaml + cat > .pre-commit-config.yaml << EOF + repos: + - repo: https://github.com/cpp-linter/cpp-linter-hooks + rev: main + hooks: + - id: clang-format + args: [ + --style=LLVM, + --version=${{ matrix.clang_version }} + ] + EOF + + - name: Install and run cpp-linter-hooks + run: | + cd test-repo + pre-commit install + pre-commit run --all-files