Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 0 additions & 69 deletions .github/workflows/action-helper/python/auto-merge

This file was deleted.

85 changes: 10 additions & 75 deletions .github/workflows/auto-merge.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2022-2024, NVIDIA CORPORATION.
# Copyright (c) 2022-2025, NVIDIA CORPORATION.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -22,78 +22,13 @@ on:
types: [closed]

jobs:
auto-merge: # TODO: use spark-rapids-common shared action when available
auto-merge:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest

steps:
- name: set HEAD ENV
run: echo "HEAD=${{ github.event.pull_request.base.ref }}" >> $GITHUB_ENV

- name: Generate target branch
run: |
current_branch="${{ env.HEAD }}"
version=${current_branch#branch-}

IFS='.' read -r -a parts <<< "$version"
year=${parts[0]}
month=${parts[1]}
month=$((10#$month + 2))
if [ $month -gt 12 ]; then
month=$((month - 12))
year=$((year + 1))
fi

next_release=$(printf "%02d.%02d" $year $month)
echo "Next release is $next_release"
echo "BASE=branch-$next_release" >> $GITHUB_ENV

- name: Check if target branch exists
run: |
CODE=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token ${{ secrets.AUTOMERGE_TOKEN }}" \
https://api.github.com/repos/${{ github.repository }}/branches/${{ env.BASE }})
echo "Response code: $CODE..."

if [ $CODE -eq 200 ]; then
echo "branch_exists=true" >> $GITHUB_ENV
else
echo "branch_exists=false" >> $GITHUB_ENV
echo "Failed to find ${{ env.BASE }}. Skip auto-merge..."
fi

- uses: actions/checkout@v4
if: env.branch_exists == 'true'
with:
ref: ${{ env.HEAD }} # force to fetch from latest upstream instead of PR ref
token: ${{ secrets.AUTOMERGE_TOKEN }} # workaround auto-merge token to avoid GITHUB_TOKEN insufficient permission

- name: push intermediate branch for auto-merge
if: env.branch_exists == 'true'
run: |
git config user.name "spark-rapids automation"
git config user.email "[email protected] "
git fetch origin ${HEAD} ${BASE}
git checkout -b ${INTERMEDIATE_HEAD} origin/${HEAD}
# Sync the $BASE branch with the commits from the $HEAD branch,
# excluding the paths defined as $FILE_USE_BASE (located under ./thirdparty).
git checkout origin/${BASE} -- ${FILE_USE_BASE}
# If any submodule file is updated in the HEAD branch,
# always change it to the corresponding one from the BASE branch.
[ ! -z "$(git status --porcelain=v1 --untracked=no)" ] && \
git commit -s -am "Auto-merge use ${BASE} versions"
git push origin ${INTERMEDIATE_HEAD} -f
env:
INTERMEDIATE_HEAD: bot-auto-merge-${{ env.HEAD }}
FILE_USE_BASE: thirdparty/cudf thirdparty/cudf-pins

- name: auto-merge job
if: env.branch_exists == 'true'
uses: ./.github/workflows/action-helper
with:
operator: auto-merge
env:
OWNER: NVIDIA
REPO: spark-rapids-jni
HEAD: bot-auto-merge-${{ env.HEAD }}
BASE: ${{ env.BASE }}
TOKEN: ${{ secrets.AUTOMERGE_TOKEN }}
uses: NVIDIA/spark-rapids-common/.github/workflows/auto-merge.yml@main
with:
owner: ${{ github.repository_owner }}
repo: spark-rapids-jni
branch: ${{ github.event.pull_request.base.ref }}
file_use_base: 'thirdparty/cudf thirdparty/cudf-pins'
secrets:
token: ${{ secrets.AUTOMERGE_TOKEN }}