Add README for 특정 규칙에 따른 숫자 출력 - Codetree #2
This file contains hidden or 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: 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 |