| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- name: API Diff Report
- on: [pull_request]
- concurrency:
- group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.ref }}
- cancel-in-progress: true
- env:
- STAGE_PROGRESS: progress
- STAGE_END: end
- PR_API_OUTPUT: ci_outputs/pr_branch_api
- BASE_API_OUTPUT: ci_outputs/base_branch_api
- DIFF_REPORT_OUTPUT: ci_outputs/diff_report
- jobs:
- diff_report:
- runs-on: macos-latest
- env:
- FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
- steps:
- - name: Checkout PR branch
- uses: actions/checkout@v4
- with:
- fetch-depth: 2
- - name: Copy diff report tools
- run: cp -a scripts/api_diff_report/. ~/api_diff_report
- - id: get_changed_files
- name: Get changed file list
- run: |
- echo "file_list=$(git diff --name-only -r HEAD^1 HEAD | tr '\n' ' ')" >> $GITHUB_OUTPUT
- - name: Setup python
- uses: actions/setup-python@v5
- with:
- python-version: '3.10'
- - name: Install Prerequisites
- run: ~/api_diff_report/prerequisite.sh
- - name: Clean Diff Report Comment in PR
- run: |
- python ~/api_diff_report/pr_commenter.py \
- --stage ${{ env.STAGE_PROGRESS }} \
- --token ${{github.token}} \
- --pr_number ${{github.event.pull_request.number}} \
- --commit $GITHUB_SHA \
- --run_id ${{github.run_id}}
- - name: Generate API files for PR branch
- run: |
- python ~/api_diff_report/api_info.py \
- --file_list ${{ steps.get_changed_files.outputs.file_list }} \
- --output_dir ${{ env.PR_API_OUTPUT }}
- - name: Checkout Base branch
- run: git checkout HEAD^
- - name: Generate API files for Base branch
- run: |
- python ~/api_diff_report/api_info.py \
- --file_list ${{ steps.get_changed_files.outputs.file_list }} \
- --output_dir ${{ env.BASE_API_OUTPUT }}
- - name: Generate API Diff Report
- run: |
- python ~/api_diff_report/api_diff_report.py \
- --pr_branch ${{ env.PR_API_OUTPUT }} \
- --base_branch ${{ env.BASE_API_OUTPUT }} \
- --output_dir ${{ env.DIFF_REPORT_OUTPUT }}
- - name: Update Diff Report Comment in PR
- run: |
- python ~/api_diff_report/pr_commenter.py \
- --stage ${{ env.STAGE_END }} \
- --report ${{ env.DIFF_REPORT_OUTPUT }} \
- --token ${{github.token}} \
- --pr_number ${{github.event.pull_request.number}} \
- --commit $GITHUB_SHA \
- --run_id ${{github.run_id}}
- - uses: actions/upload-artifact@v4
- if: ${{ !cancelled() }}
- with:
- name: api_info_and_report
- path: ci_outputs
- retention-days: 1
|