Github Actions Cron으로 Upstream Repository Sync 맞추기

프로필 사진mingke

Github Actions Cron으로 upstream sync 맞추기

목차

Github Actions Cron

Github Actions는 여러가지 기능들을 제공하는데요. Cron을 실행할 수도 있습니다. 이번에 Cron을 이용하게 되어 이번 포스팅에서 공유하려고 합니다.

이 블로그는 다음과 같은 프로세스로 업로드됩니다.

  1. mdx로 블로그 작성
  2. c2-house/chaechae.life 에 푸시
  3. fork된 kec0130/chaechae.life 에서 sync 맞추기

Vercel에서 호스팅하고 있는데 Organization 레포는 무료로 호스팅이 안되기 때문에 개인 레포로 옮겨서 배포중입니다. 그래서 sync 맞추는 작업이 필요합니다.

kec0130/chaechae.life 레포에 대해서는 저는 권한이 없기 때문에 항상 글을 작성하더라도 sync를 맞춰달라고 요청을 해야했습니다. 이 작업은 바쁘면 잊을 수도 있고 너무 귀찮습니다.

블로그는 항상 발행하자마자 올라가야하는 것은 아니죠. 그래서 3번 프로세스를 Github Actions Cron으로 자동화했습니다. 일종의 예약발행 시스템이랄까요. 아주 쉽게 할 수 있습니다.

Gihub Actions Cron 실행 방법

실행 방법은 아주 쉬운데요. 왜냐면 Github Actions Marketplace에 이미 누가 만들어놨습니다. 다음과 같이 작성해주면 됩니다.

name: Sync Upstream
 
on:
  schedule:
    - cron: '0 18 * * *'
 
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: GitHub Sync to Upstream Repository
        uses: dabreadman/sync-upstream-repo@v1.3.0
        with:
          upstream_repo: 'https://github.com/c2-house/chaechae.life.git'
          upstream_branch: 'main'
          downstream_branch: 'main'
          token: ${{ secrets.GITHUB_TOKEN }}
  • on 에서 언제 cron이 실행될 지 정해주면 됩니다.
  • yml파일에서 보다시피 upstream과 downstream을 입력해주면 됩니다.
  • 이 yml을 downstream, 그러니까 fork된 레포의 workflows에 추가해줍니다.

이렇게 하면 매일 새벽 3시마다 upstream과 sync맞추기 cron이 실행됩니다.

마무리

이번 포스팅에서 Github Actions Cron으로 Upstream Repository Sync 맞추기에 대해서 알아봤습니다. 귀찮은 것은 정말 참을 수 없습니다. Cron은 Sync맞추기뿐만 아니라 다양하게 사용될 수 있으니 필요에 따라 사용하면 되겠습니다.

Loading...
Loading...