Automate update Translator cid #155
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: Automate update Translator cid | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '5 23 * * *' | |
permissions: read-all | |
env: | |
PR_BRANCH: bot/update_translator_cid | |
jobs: | |
update-config: | |
runs-on: | |
- max1100 | |
- rolling | |
- runner-0.0.20 | |
defaults: | |
run: | |
shell: bash -noprofile --norc -eo pipefail -c "source /opt/intel/oneapi/setvars.sh > /dev/null; source {0}" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.BOT_TOKEN }} | |
# 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 | |
if: ${{ env.TARGET_PRID == null }} | |
uses: ./.github/actions/setup-pytorch | |
- 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=$(<third_party/intel/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 written to spirv-llvm-translator.conf | |
- name: Search the latest valid Translator cid | |
if: ${{ env.TARGET_PRID == null }} | |
run: | | |
./scripts/check-update-translator-cid.sh $CID_LATEST $CID_CURRENT | |
if git status --porcelain third_party/intel/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 'glados-intel' | |
git config --global user.email '[email protected]' | |
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 main # make sure checkout a new branch that is based on main | |
git checkout -b ${PR_BRANCH} | |
git branch --show-current # bot/update_translator_cid | |
git status | |
git add third_party/intel/lib/Target/SPIRV/spirv-llvm-translator.conf | |
git commit -m "Update spirv-llvm-translator.conf" | |
git push origin ${PR_BRANCH} | |
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 main |