[기록용] 깃허브 액션을 이용한 자동 잔디심기

728x90

workflows file

on:
  schedule:
    - cron: '5 15 * * *'   # 매일 UTC 15:05(한국 시간 00:05)에 자동 실행
  workflow_dispatch:        # Actions 탭에서 수동 실행 가능하게 함

jobs:
  single-commit:
    runs-on: ubuntu-latest  # Ubuntu 최신 버전에서 워크플로우 실행
    permissions:
      contents: write       # 저장소에 쓰기 권한 부여(커밋/푸시 위해 필요)
    steps:
      - uses: actions/checkout@v4
        # 저장소의 코드를 워크플로우 러너에 체크아웃(복제)

      - name: Set up git config
        run: |
          git config --global user.email "my_email"  # 커밋에 사용할 이메일(GitHub에 등록된 이메일이어야 잔디 반영)
          git config --global user.name "name"                # 커밋에 사용할 이름(프로필 이름과 일치 권장)

      - name: Pull latest changes
        run: git pull --rebase  # 원격 저장소의 최신 커밋을 받아와 로컬과 동기화(푸시 충돌 방지)

      - name: Make empty commit with KST date
        run: |
          export TZ=Asia/Seoul  # 시간대를 한국 표준시(KST)로 지정
          git commit --allow-empty --date="$(date '+%a %b %d %H:%M:%S %Y +0900')" -m "auto commit $(date '+%Y-%m-%d %H:%M:%S')"  # 빈 커밋 생성(중복 방지 위해 메시지에 타임스탬프 포함), 커밋 날짜를 한국 시간 기준으로 지정
          git push  # 원격 저장소로 푸시(GITHUB_TOKEN 인증 사용)
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}  # git push 인증에 사용할 GitHub 제공 토큰

 

반응형