Skip to content

Commit eb8f762

Browse files
committed
init check api
Signed-off-by: tjtanaa <[email protected]>
1 parent e223868 commit eb8f762

File tree

2 files changed

+145
-0
lines changed

2 files changed

+145
-0
lines changed

.github/ISSUE_TEMPLATE/api_change.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
title: API Changes Detected in ROCm/aiter ({{ env.LATEST_SHORT_HASH }})
3+
labels: api-change, alert
4+
---
5+
6+
## ⚠️ API Changes Detected in ROCm/aiter
7+
8+
The monitoring system has detected changes in the ROCm/aiter repository that affect your code.
9+
10+
### Commit Information
11+
- **Date:** {{ env.LATEST_DATE }}
12+
- **Commit:** [{{ env.LATEST_SHORT_HASH }}](https://github.com/ROCm/aiter/commit/{{ env.LATEST_HASH }})
13+
- **Message:** {{ env.LATEST_MESSAGE }}
14+
15+
### Detailed Report
16+
17+
A detailed report has been generated and saved to the repository:
18+
[View the full report]({{ env.REPORT_PATH }})
19+
20+
### Summary of Changes
21+
22+
The following functions have been affected:
23+
24+
```
25+
{{ env.API_CHECK_OUTPUT }}
26+
```
27+
28+
Please check the [ROCm/aiter repository](https://github.com/ROCm/aiter) for changes and update your code accordingly.
29+
30+
---
31+
*This issue was automatically generated by the API monitoring system.*
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
name: Check ROCm/aiter API Changes
2+
3+
on:
4+
schedule:
5+
- cron: '0 0 * * *' # Run daily at midnight
6+
workflow_dispatch: # Allow manual triggering
7+
8+
jobs:
9+
check_api:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout monitoring repository
13+
uses: actions/checkout@v3
14+
with:
15+
fetch-depth: 0 # Fetch all history for proper commit tracking
16+
17+
- name: Set up Python
18+
uses: actions/setup-python@v4
19+
with:
20+
python-version: '3.10'
21+
22+
- name: Get latest commit info
23+
id: get_latest_commit
24+
run: |
25+
LATEST_HASH=$(curl -s https://api.github.com/repos/ROCm/aiter/commits/main | jq -r .sha)
26+
LATEST_DATE=$(curl -s https://api.github.com/repos/ROCm/aiter/commits/main | jq -r .commit.author.date | cut -dT -f1)
27+
LATEST_MESSAGE=$(curl -s https://api.github.com/repos/ROCm/aiter/commits/main | jq -r .commit.message | head -n 1)
28+
LATEST_SHORT_HASH=${LATEST_HASH:0:7}
29+
30+
# Clean commit message for filename use
31+
CLEAN_MESSAGE=$(echo "$LATEST_MESSAGE" | tr -cd '[:alnum:] ._-' | tr ' ' '_' | cut -c 1-50)
32+
33+
echo "LATEST_HASH=$LATEST_HASH" >> $GITHUB_ENV
34+
echo "LATEST_DATE=$LATEST_DATE" >> $GITHUB_ENV
35+
echo "LATEST_MESSAGE=$LATEST_MESSAGE" >> $GITHUB_ENV
36+
echo "LATEST_SHORT_HASH=$LATEST_SHORT_HASH" >> $GITHUB_ENV
37+
echo "CLEAN_MESSAGE=$CLEAN_MESSAGE" >> $GITHUB_ENV
38+
39+
- name: Check if commit hash changed
40+
id: check_hash
41+
run: |
42+
mkdir -p reports
43+
if [ -f "last_checked_hash.txt" ]; then
44+
LAST_HASH=$(cat last_checked_hash.txt)
45+
if [ "$LAST_HASH" == "${{ env.LATEST_HASH }}" ]; then
46+
echo "No new commits in ROCm/aiter, skipping check"
47+
echo "HASH_CHANGED=false" >> $GITHUB_ENV
48+
else
49+
echo "New commits detected in ROCm/aiter"
50+
echo "HASH_CHANGED=true" >> $GITHUB_ENV
51+
fi
52+
else
53+
echo "First run, will check API"
54+
echo "HASH_CHANGED=true" >> $GITHUB_ENV
55+
fi
56+
57+
- name: Clone ROCm/aiter repository
58+
if: env.HASH_CHANGED == 'true'
59+
run: |
60+
git clone --recursive https://github.com/ROCm/aiter.git
61+
cd aiter
62+
python setup.py develop
63+
64+
- name: Check API functions
65+
if: env.HASH_CHANGED == 'true'
66+
id: check_api
67+
run: |
68+
python check_api.py > api_check_output.txt
69+
API_CHECK_STATUS=$?
70+
echo "API_CHECK_STATUS=$API_CHECK_STATUS" >> $GITHUB_ENV
71+
72+
# Create report filename with date, hash and commit message
73+
REPORT_FILENAME="reports/${{ env.LATEST_DATE }}_${{ env.LATEST_SHORT_HASH }}_${{ env.CLEAN_MESSAGE }}.md"
74+
echo "REPORT_FILENAME=$REPORT_FILENAME" >> $GITHUB_ENV
75+
76+
# Generate the report
77+
echo "# API Check Report for ROCm/aiter" > $REPORT_FILENAME
78+
echo "" >> $REPORT_FILENAME
79+
echo "## Commit Information" >> $REPORT_FILENAME
80+
echo "- **Date:** ${{ env.LATEST_DATE }}" >> $REPORT_FILENAME
81+
echo "- **Commit:** [${{ env.LATEST_SHORT_HASH }}](https://github.com/ROCm/aiter/commit/${{ env.LATEST_HASH }})" >> $REPORT_FILENAME
82+
echo "- **Message:** ${{ env.LATEST_MESSAGE }}" >> $REPORT_FILENAME
83+
echo "" >> $REPORT_FILENAME
84+
echo "## API Check Results" >> $REPORT_FILENAME
85+
echo "```" >> $REPORT_FILENAME
86+
cat api_check_output.txt >> $REPORT_FILENAME
87+
echo "```" >> $REPORT_FILENAME
88+
echo "" >> $REPORT_FILENAME
89+
90+
if [ $API_CHECK_STATUS -eq 0 ]; then
91+
echo "### Status: ✅ All APIs Available" >> $REPORT_FILENAME
92+
else
93+
echo "### Status: ❌ API Changes Detected" >> $REPORT_FILENAME
94+
fi
95+
96+
- name: Create issue if API changed
97+
if: env.HASH_CHANGED == 'true' && env.API_CHECK_STATUS != '0'
98+
uses: JasonEtco/create-an-issue@v2
99+
env:
100+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
101+
REPORT_PATH: ${{ env.REPORT_FILENAME }}
102+
with:
103+
filename: .github/ISSUE_TEMPLATE/api_change.md
104+
105+
- name: Update last checked hash
106+
if: env.HASH_CHANGED == 'true'
107+
run: |
108+
echo "${{ env.LATEST_HASH }}" > last_checked_hash.txt
109+
git config --global user.name "GitHub Actions"
110+
git config --global user.email "[email protected]"
111+
git add last_checked_hash.txt
112+
git add reports/
113+
git commit -m "Update API check report for ${{ env.LATEST_SHORT_HASH }}" || echo "No changes to commit"
114+
git push || echo "No changes to push"

0 commit comments

Comments
 (0)