Skip to content

Merge PRs and Generate Problem Folders #10

Merge PRs and Generate Problem Folders

Merge PRs and Generate Problem Folders #10

name: Merge PRs and Generate Problem Folders
on:
schedule:
- cron: '00 12 * * 1' # 월요일 21시 00분 KST (UTC 12:00)
- cron: '00 10 * * 4' # 목요일 19시 00분 KST (UTC 10:00)
- cron: '00 5 * * 5' # 금요일 14시 00분 KST (UTC 5:00)
jobs:
merge-prs-and-create-folders:
if: github.repository_owner == 'Live-Coding-Test'
runs-on: ubuntu-latest
steps:
- name: Check if the repository is from Live-Coding-Test
run: |
if [ "${{ github.repository_owner }}" != "Live-Coding-Test" ]; then
echo "This workflow is only allowed to run in the main repository (Live-Coding-Test)."
exit 0
fi
- name: Checkout Repository
uses: actions/checkout@v3
- name: Set Up GitHub CLI
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Install GitHub CLI
run: |
sudo apt-get install gh -y
echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token
- name: Merge All Open PRs
run: |
PR_LIST=$(gh pr list --state open --json number -q '.[].number')
if [ -n "$PR_LIST" ]; then
for PR in $PR_LIST; do
echo "Fetching details for PR #$PR..."
BASE_BRANCH=$(gh pr view $PR --json baseRefName -q '.baseRefName')
echo "Updating base branch '$BASE_BRANCH'..."
git fetch origin $BASE_BRANCH
git checkout $BASE_BRANCH
git pull origin $BASE_BRANCH
echo "Attempting to merge PR #$PR..."
gh pr merge $PR --merge --admin || {
echo "Merge failed for PR #$PR. Skipping..."
continue
}
done
else
echo "No open PRs to merge."
fi
- name: Determine Next Test Folder
id: determine-folder
run: |
LATEST_TEST=$(find live* -type d -name 'test[0-9]*' 2>/dev/null | sort | tail -n 1 | grep -o '[0-9]*$' || echo "0")
NEXT_TEST=$((LATEST_TEST + 1))
LIVE_GROUP=$(((NEXT_TEST - 1) / 10))
echo "NEXT_TEST=test$NEXT_TEST" >> $GITHUB_ENV
echo "LIVE_FOLDER=live$LIVE_GROUP" >> $GITHUB_ENV
- name: Create Next Test Folder
run: |
mkdir -p $LIVE_FOLDER/$NEXT_TEST/{문제1,문제2,문제3}
touch $LIVE_FOLDER/$NEXT_TEST/문제1/.gitkeep
touch $LIVE_FOLDER/$NEXT_TEST/문제2/.gitkeep
touch $LIVE_FOLDER/$NEXT_TEST/문제3/.gitkeep
- name: Commit and Push Changes
run: |
git config --global user.name "GenerateBot"
git config --global user.email "generateBot@github.com"
git pull origin main
git add .
NEXT_TEST_NUM=$(echo $NEXT_TEST | grep -o '[0-9]*')
git commit -m "$NEXT_TEST_NUM차 폴더 생성"
git push origin main