Title: 자동차 단일 거래 이익 최대화하기, Time: 0ms, Memory: 0MB, Status: Passed - C… #22
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: # 수동 실행 버튼 | |
| # 동시에 여러 푸시가 발생하면 가장 마지막 푸시만 남기고 이전 액션은 강제 종료 | |
| concurrency: | |
| group: "codetree-organizer" | |
| cancel-in-progress: true | |
| jobs: | |
| organize: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # 익스텐션이 README와 코드를 분할해서 올릴 시간을 충분히 기다려줌 | |
| - name: Wait for all commits (Debounce) | |
| run: sleep 10 | |
| - 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 | |
| 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 pull --rebase origin main | |
| git push | |
| else | |
| echo "이동할 폴더가 없습니다." | |
| fi |