| name: Zigbee code generation |
| |
| permissions: |
| contents: write |
| |
| on: |
| push: |
| pull_request: |
| workflow_dispatch: |
| |
| env: |
| ZAP_TEST_TIMEOUT: 3600000 |
| ZAP_TEMPSTATE: 1 |
| BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} |
| P12_PASSWORD: ${{ secrets.P12_PASSWORD }} |
| TRUSTED_CERTIFICATE_BASE64: ${{ secrets.TRUSTED_CERTIFICATE_BASE64 }} |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| KEYCHAIN_PASSWORD: silabs |
| |
| jobs: |
| prepare-zap-and-regenerate-zigbee: |
| name: Prepare Zap and regenerate Zigbee |
| runs-on: ${{ matrix.os }} |
| |
| strategy: |
| matrix: |
| node-version: [20.x] |
| os: [ubuntu-22.04] |
| |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Use Node.js ${{ matrix.node-version }} |
| uses: actions/setup-node@v4 |
| with: |
| node-version: ${{ matrix.node-version }} |
| cache: 'npm' |
| - run: sudo ./src-script/install-packages-ubuntu |
| - run: sudo apt-get install --fix-missing libxml2-utils |
| - run: node --version |
| - run: npm --version |
| - run: npm ci |
| - run: npm rebuild canvas --update-binary |
| - run: npm rebuild libxmljs --update-binary |
| - run: npm run metafile-check |
| - run: npm run version-stamp |
| - run: npm run build-spa |
| - run: npm run self-check |
| - name: Clone the public GSDK |
| env: |
| GIT_CLONE_PROTECTION_ACTIVE: false |
| run: git clone https://github.com/SiliconLabs/gecko_sdk.git gecko_sdk |
| - name: Create the temp regen directory for this PR. |
| run: mkdir regen-pr |
| - name: Run the zigbee regen with the cloned gsdk, using latest. |
| run: node ./src-script/gsdk-public-regen.js ./gecko_sdk/ ./regen-pr |
| - name: Create the temp regen directory for master. |
| run: mkdir regen-master |
| - uses: actions/checkout@v4 |
| with: |
| ref: master |
| clean: false |
| - run: npm ci |
| - run: npm rebuild canvas --update-binary |
| - run: npm rebuild libxmljs --update-binary |
| - name: Rebuild with master |
| run: npm run build |
| - name: Run the zigbee regen with the cloned gsdk, using master. |
| run: node ./src-script/gsdk-public-regen.js ./gecko_sdk/ ./regen-master |
| - name: Remove genResult files just in case. |
| run: find ./regen-master -name genResult.json -exec rm -f {} \; |
| - uses: actions/checkout@v4 |
| with: |
| clean: false |
| - name: Diff |
| run: node ./src-script/run-conditionally.js regenTest.zigbee.failOnDiff==true diff -r ./regen-pr ./regen-master |