ecsimsw

Github actions, 디렉토리 구조 자동 작성 본문

Github actions, 디렉토리 구조 자동 작성

JinHwan Kim 2023. 2. 25. 21:35

디렉토리 구조 자동 파일 저장

프로젝트 코드 디렉토리 구조 파일 저장을 자동화하거나, 특정 디렉토리 파일 내용을 매번 업데이트 해야할 때가 많다. 이를 Github actions를 이용하여 자동화한다. 

 

사용할만한 경우가 많고, Github actions를 처음 공부하기에 좋은 예시가 될 것 같아 공유한다.

 

코드

name: directory list
on:
  push:
    branches:
      - main
jobs:
  update:
    runs-on: ubuntu-latest
    permissions: write-all
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Append directory tree to README
        run: |
          sudo apt-get install tree
          tree --dirsfirst --noreport -I README.md | sed 's/^/    /' > README.md
      - name: push
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          git config --global user.email "actions@github.com"
          git config --global user.name "GitHub Actions"
          git add .
          git commit -m "Update README with directory list"
          git push origin main

 

A. Linux의 tree 명령어를 사용하면 폴더 구조를 표시 할 수 있다. 해당 로직은 ubuntu에서 수행되는데 기본으로 tree가 설치되어있지 않다. 그래서 `apt-get install tree`로 tree를 우선 설치한다.

 

B. tree 명령어의 결과를 Markdown에 저장한다. 이 경우 tree의 결과와 달리 md에선 space 세번이 줄바꿈 표식이 되기 때문에 줄바꿈이 깨지는 문제가 발생한다. 이를 sed로 처리한다.  

 

C. tree로 디렉토리를 그릴 폴더 위치를 직접 정의하고, 그 중 제외할 디렉토리를 지정할 수도 있다. 위 예시에서 더 세세한 요구가 필요하다면 tree의 옵션을 공부해보길 바란다.

 

결과 예시

 

Comments