Skip to content

Add workflow to organize CodeTree folders #1

Add workflow to organize CodeTree folders

Add workflow to organize CodeTree folders #1

name: Organize CodeTree Folders
on:
push:
branches: [ "main" ]
paths-ignore:
- '백준/**'
- '프로그래머스/**'
- 'SWEA/**'
- '소프티어/**'
workflow_dispatch: # 수동으로 실행할 수 있는 버튼 생성
jobs:
organize:
runs-on: ubuntu-latest
steps:
- name: 저장소 체크아웃
uses: actions/checkout@v4
- name: 폴더 이동 및 일일 현황 리드미 병합
run: |
# '코드트리' 폴더가 없으면 생성
mkdir -p "코드트리"
# 최상위 경로에 있는 6자리 숫자(날짜) 폴더 찾기
for date_dir in [0-9][0-9][0-9][0-9][0-9][0-9]; do
if [ -d "$date_dir" ]; then
echo "Processing $date_dir..."
# 1. 일일 현황 README.md가 있다면 마스터 리드미에 내용 누적하기
if [ -f "$date_dir/README.md" ]; then
# 폴더명(예: 260330)을 년/월/일로 분리해서 제목 생성
YEAR="20${date_dir:0:2}"
MONTH="${date_dir:2:2}"
DAY="${date_dir:4:2}"
# 마스터 리드미에 날짜 제목과 기존 리드미 내용 추가
echo "### 📅 ${YEAR}년 ${MONTH}월 ${DAY}일" >> "코드트리/README.md"
cat "$date_dir/README.md" >> "코드트리/README.md"
echo -e "\n---\n" >> "코드트리/README.md"
fi
# 2. 날짜 폴더 안의 내용물(문제 폴더들)을 '코드트리' 폴더로 복사
for prob_dir in "$date_dir"/*; do
if [ -d "$prob_dir" ]; then
cp -r "$prob_dir" "코드트리/"
fi
done
# 3. 처리가 끝난 껍데기 날짜 폴더 삭제
rm -rf "$date_dir"
fi
done
# 변경사항 Git에 추가
git add -A
- name: 커밋 및 푸시
run: |
# 변경사항이 있는지 검사 후 커밋 진행
if [[ -n $(git status --porcelain) ]]; then
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git commit -m "chore: 🤖 코드트리 문제 정리 및 현황 갱신"
git push
else
echo "이동할 폴더가 없습니다."
fi