name: Interface check #on: push on: [pull_request_target] jobs: interface_check: runs-on: ubuntu-latest steps: - name: clone REPO run: | git config --global user.name "test" git config --global user.email "test@test.com" git clone https://github.com/cocos-creator/engine.git - name: checkout BASE branch working-directory: ./engine run: | git fetch origin ${{ github.base_ref }} git checkout -b ${{ github.base_ref }}_BASE remotes/origin/${{ github.base_ref }} git branch - name: npm install BASE branch working-directory: ./engine run: | npm install --ignore-scripts - name: build BASE declaration working-directory: ./engine run: | npm run build-declaration cp ./bin/.declarations/cc.d.ts ../cc_base.d.ts - name: clear dependencies working-directory: ./engine run: | git checkout . git clean -xfd ls -la - name: merge HEAD branch working-directory: ./engine run: | git remote add HEAD_REPO https://github.com/${{ github.event.pull_request.head.repo.full_name }}.git git fetch HEAD_REPO ${{ github.head_ref }} git merge remotes/HEAD_REPO/${{ github.head_ref }} - name: npm install HEAD branch working-directory: ./engine run: | npm install --ignore-scripts - name: build HEAD declaration working-directory: ./engine run: | npm run build-declaration - uses: LouisBrunner/diff-action@v0.1.2 with: old: ./cc_base.d.ts new: ./engine/bin/.declarations/cc.d.ts mode: addition tolerance: worse output: ./engine/interface-diff.txt - name: optimize interface check report working-directory: ./engine run: | cat ./interface-diff.txt node ./.github/workflows/interface-check-report.js - uses: marocchino/sticky-pull-request-comment@v2 with: path: ./engine/interface-diff.txt