Automate update Translator cid #9
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 * * *' | |
env: | |
PR_BRANCH: bot/update_translator_cid | |
jobs: | |
update-config: | |
runs-on: | |
- max1100 | |
- rolling | |
- 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/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: | | |
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) |