Refactor stream to notify first and next #3923
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |