Skip to content

Add CI workflow for validating C++ API snapshot (#56042) #6

Add CI workflow for validating C++ API snapshot (#56042)

Add CI workflow for validating C++ API snapshot (#56042) #6

name: Validate C++ API Snapshots
on:
workflow_dispatch:
pull_request:
paths:
- "packages/react-native/ReactCommon/**"
- "packages/react-native/ReactAndroid/**"
- "packages/react-native/React/**"
- "packages/react-native/ReactApple/**"
- "scripts/cxx-api/**"
push:
branches:
- main
- "*-stable"
paths:
- "packages/react-native/ReactCommon/**"
- "packages/react-native/ReactAndroid/**"
- "packages/react-native/React/**"
- "packages/react-native/ReactApple/**"
- "scripts/cxx-api/**"
jobs:
validate_cxx_api_snapshots:
runs-on: ubuntu-latest
if: github.repository == 'facebook/react-native'
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install Doxygen
shell: bash
run: |
DOXYGEN_VERSION="1.16.1"
curl -fsSL "https://github.com/doxygen/doxygen/releases/download/Release_${DOXYGEN_VERSION//./_}/doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz" -o doxygen.tar.gz
tar xzf doxygen.tar.gz
echo "$PWD/doxygen-${DOXYGEN_VERSION}/bin" >> $GITHUB_PATH
- name: Setup node.js
uses: ./.github/actions/setup-node
- name: Run yarn
uses: ./.github/actions/yarn-install
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install Python dependencies
shell: bash
run: pip install doxmlparser natsort pyyaml
- name: Validate C++ API snapshots
shell: bash
run: python -m scripts.cxx-api.parser --check