-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ci] automate pull request on updating Translator commit id (#1715)
Target to fix: #1673 - Implementation is done. - This PR creates PRs by a bot automatically, In order to trigger the cid update in a regular base, at the end of the review, I will change the trigger to ```yml workflow_dispatch: # manually schedule: # nightly ``` Here is an automate created PR: #1742
- Loading branch information
1 parent
00d1002
commit 50fb888
Showing
3 changed files
with
127 additions
and
74 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
|
||
name: Automate update Translator cid | ||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '5 23 * * *' | ||
|
||
env: | ||
PR_BRANCH: bot/update_translator_cid | ||
|
||
jobs: | ||
update-config: | ||
runs-on: | ||
- glados | ||
- spr | ||
- runner-0.0.18 | ||
defaults: | ||
run: | ||
shell: bash -noprofile --norc -eo pipefail -c "source /home/runner/intel/oneapi/setvars.sh > /dev/null; source {0}" | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
# search the opened PR that has branch "bot/update_translator_cid", no new PR as long as the target PR is open | ||
- name: Search the opened PR that has branch ${{ env.PR_BRANCH }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }} | ||
run: | | ||
if gh pr list | grep "${PR_BRANCH}"; then | ||
echo "Bot PR is still open" | ||
echo "TARGET_PRID=$(gh pr list --search "head:${PR_BRANCH}" --json number --jq ".[].number")" >> $GITHUB_ENV | ||
fi | ||
# if $TARGET_PRID is null, target PR is meged or closed or never been raised. In that case search for the latest valid translator cid | ||
- name: Load pip cache | ||
if: ${{ env.TARGET_PRID == null }} | ||
uses: ./.github/actions/load | ||
env: | ||
CACHE_NUMBER: 1 | ||
with: | ||
path: $HOME/.cache/pip | ||
key: pip-3.10-${{ hashFiles('python/pyproject.toml', 'python/setup.py') }}-${{ env.CACHE_NUMBER }} | ||
|
||
- name: Install Python 3.10 | ||
if: ${{ env.TARGET_PRID == null }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
|
||
- name: Setup PyTorch with IPEX | ||
if: ${{ env.TARGET_PRID == null }} | ||
uses: ./.github/actions/setup-pytorch | ||
with: | ||
repository: Stonepia/pytorch | ||
ref: "" | ||
|
||
- name: Setup IPEX | ||
if: ${{ env.TARGET_PRID == null }} | ||
uses: ./.github/actions/setup-ipex | ||
|
||
- name: Install test dependencies | ||
if: ${{ env.TARGET_PRID == null }} | ||
run: | | ||
pip install pytest pytest-xdist pytest-rerunfailures pytest-select pytest-timeout expecttest | ||
pip install git+https://github.com/kwasd/[email protected] | ||
- name: Get commit ID from Triton's spirv-llvm-translator.conf | ||
if: ${{ env.TARGET_PRID == null }} | ||
run: echo "CID_CURRENT=$(cat ./lib/Target/SPIRV/spirv-llvm-translator.conf)" >> $GITHUB_ENV | ||
|
||
- name: Checkout SPIRV-LLVM-Translator | ||
if: ${{ env.TARGET_PRID == null }} | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: KhronosGroup/SPIRV-LLVM-Translator | ||
ref: main | ||
fetch-depth: 0 | ||
path: external/SPIRV-LLVM-Translator | ||
|
||
- name: Get the latest commit ID from SPIRV-LLVM-Translator | ||
if: ${{ env.TARGET_PRID == null }} | ||
run: | | ||
echo "CID_LATEST=$(git -C external/SPIRV-LLVM-Translator rev-parse HEAD)" >> $GITHUB_ENV | ||
# the latest valid cid has been weitten to spirv-llvm-translator.conf | ||
- name: Search the latest valid Translator cid | ||
if: ${{ env.TARGET_PRID == null }} | ||
run: | | ||
env | ||
./scripts/check_update_tranlator_cid.sh $CID_LATEST $CID_CURRENT | ||
if git status --porcelain ./lib/Target/SPIRV/spirv-llvm-translator.conf | grep '^ M'; then | ||
echo "MODIFIED=true" >> $GITHUB_ENV | ||
echo "spirv-llvm-translator.conf has been modified" | ||
fi | ||
# raise PR by bot | ||
- name: Create PR if config is updated | ||
if: ${{ env.TARGET_PRID == null && env.MODIFIED == 'true' }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }} | ||
run: | | ||
git config --global user.name 'github-actions[bot]' | ||
git config --global user.email 'github-actions[bot]@users.noreply.github.com' | ||
if git show-ref --verify --quiet "refs/remotes/origin/${PR_BRANCH}"; then | ||
echo "${PR_BRANCH} already exist, deleting..." | ||
git push origin --delete "${PR_BRANCH}" | ||
else | ||
echo "${PR_BRANCH} not exist" | ||
fi | ||
git checkout llvm-target # make sure checkout a new branch that is based on llvm-target | ||
git checkout -b ${PR_BRANCH} | ||
git branch --show-current # bot/update_translator_cid | ||
git status | ||
git add ./lib/Target/SPIRV/spirv-llvm-translator.conf | ||
git commit -m "Update spirv-llvm-translator.conf" | ||
git push origin ${PR_BRANCH} | ||
pr_url=$(gh pr create --title "[github-bot] Update spirv-llvm-translator.conf" --body "Automated PR to update translator commit id." --reviewer whitneywhtsang --head ${PR_BRANCH} --base llvm-target) |
This file was deleted.
Oops, something went wrong.
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