깃헙 액션 커밋 목록 가져오기
name: 커밋 목록 가져오기
on:
workflow_dispatch:
schedule:
- cron: '*/5 * * * *'
jobs:
create_notion_page:
runs-on: ubuntu-latest
steps:
- name: 깃 리포지토리 fetch 및 체크아웃
uses: actions/checkout@v4
with:
fetch-depth: 0 // 항상 전부 fetch 해야하나?
- name: 마지막으로 확인한 커밋 ID 가져오기
id: last-checked-commit
run: |
if [ -f .github/last_checked_commit ]; then
echo "last_checked_commit=$(cat .github/last_checked_commit)" >> $GITHUB_ENV
else
echo "last_checked_commit=HEAD^" >> $GITHUB_ENV
fi
- name: 새로운 커밋 목록 가져오기
id: get-commits
run: |
last_checked_commit=${{ env.last_checked_commit }}
commits=$(git rev-list ${last_checked_commit}..HEAD --no-merges | tr '\n' ',')
echo "commits=$commits" >> $GITHUB_OUTPUT
- name: 커밋 목록이 있는지 확인
run: |
if [ -z "${{ steps.get-commits.outputs.commits }}" ]; then
echo "No new commits to process."
exit 0
fi
- name: 커밋 목록 출력 (테스트)
run: |
echo "New commits to process:"
echo "${{ steps.get-commits.outputs.commits }}"
- name: 마지막으로 확인한 커밋 ID 기록
id: save-last-commit
run: |
last_commit=$(echo "${{ steps.get-commits.outputs.commits }}" | awk -F, '{for(i=NF;i>0;i--) if($i!="") {print $i; exit}}')
echo "${last_commit}" > .github/last_checked_commit
- name: 마지막 확인한 커밋 ID 저장 // 항상 깃헙에 올려야하나?
run: |
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git add .github/last_checked_commit
git commit -m "Update last checked commit"
git push