Skip to content

Automate update Translator cid #102

Automate update Translator cid

Automate update Translator cid #102

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.19
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
with:
repository: pytorch/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/pytest-capturewarnings-ng.git@v1.2.0
- 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: |
./scripts/check-update-translator-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 'glados-intel'
git config --global user.email 'glados@intel.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 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 ./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 main)