| # Copyright (c) 2020-2021 Project CHIP Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| name: Backwards compatibility check |
| on: |
| pull_request: |
| paths: |
| - "src/controller/data_model/controller-clusters.matter" |
| |
| jobs: |
| check_clusters_matter: |
| name: Check controller-clusters.matter backwards compatibility |
| runs-on: ubuntu-latest |
| if: github.event.pull_request && !(contains(github.event.pull_request.labels.*.name, 'skip-protocol-compatibility')) |
| |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
| - name: Setup python |
| uses: actions/setup-python@v5 |
| with: |
| python-version: 3.11 |
| - name: Install dependencies |
| run: | |
| python -m pip install --upgrade pip |
| pip install click coloredlogs lark |
| - name: Create old/new copies |
| run: | |
| mkdir -p out |
| cp src/controller/data_model/controller-clusters.matter out/new_version.matter |
| wget '${{github.event.pull_request.diff_url}}' --output-document out/patch.diff |
| patch -p1 --reverse <out/patch.diff |
| cp src/controller/data_model/controller-clusters.matter out/old_version.matter |
| patch -p1 <out/patch.diff |
| - name: Check backwards compatibility |
| run: | |
| scripts/backwards_compatibility_checker.py out/old_version.matter out/new_version.matter |
| |