Crontab으로 Git Commit Automation with sh 파일 on M1

Page content

개요

  • Mac Crontab으로 SH 파일을 실행하도록 한다.

SH 파일 작성

  • 주요 내용은 아래와 같이 작성한다. (파일명 : deploy.sh)
#!/bin/bash
echo "Git Push Starting..."

cd /Users/evan/Desktop/alphaco_test

# Check out repo
git add -A
git commit -m "Automated commit on $(date '+%Y-%m-%d %H:%M:%S')"
git push                                                             

수동 업로드

  • 수동으로 업로드 하기 위해 파일 권한을 열어준다.
    • 777은 소유자, 그룹, 다른 모든 사용자에게 읽기, 쓰기, 실행 권한 부여하는 명령어를 말한다.
chmod 777 deploy.sh

실행

  • 해당 파일이 있는 경로에서 deploy.sh 파일을 실행한다.
~$ ./deploy.sh 

Crontab 등록

Screenshot 2024-09-28 at 4.05.42 PM.png

Crontab에 파일 등록하기

  • 먼저 아래와 같이 명령어를 실행한다.
crontab -e
  • vi 편집기를 활용하여 아래와 같이 파일 스크립트를 실행한다.
* * * * * echo "cron works" >> /Users/evan/Desktop/alphaco_test/test.txt
* * * * * /Users/evan/Desktop/alphaco_test/deploy.sh

Crontab 실행 에러

Github 인증 에러

  • Github 인증 메시지가 계속 뜨게 되면 이제 인증절차를 진행해야 한다.

Screenshot 2024-09-28 at 4.42.49 PM.png

Github SSH Key

  • 터미널 앱을 열고 다음 코드를 붙여넣은 후 이메일 주소 변경
ssh-keygen -t ed25519 -C "your_github_email@email.com"
  • 키를 저장할 파일 위치를 묻는 경우 Enter 키 입력
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/evan/.ssh/id_ed25519): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/evan/.ssh/id_ed25519
Your public key has been saved in /Users/evan/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:29ULNHKJ8NEE7vhw0v8f5DzKpXZmCXMdOJsTQ5zGQo8 j2hoon85@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
|        . +=+ .  |
|         + ++B   |
|          =EO..  |
|         + + B . |
|        S + o B.o|
|         B o B+o.|
|        . o . **.|
|            .o+=o|
|            .+=..|
+----[SHA256]-----+

Add SSH to Github Account

  • 아래와 같이 명령어를 실행한 후, 모두 복사한다.
cat id_ed25519.pub
  • Github Account에서 Settings > SSH and GPG keys 값을 찾는다.

    Screenshot 2024-09-28 at 4.57.52 PM.png

  • 잘 등록이 되었는지 확인하기 위해 아래와 같이 등록한다.

ssh -T git@github.com
# "Hi your_name! You've successfully authenticated, but GitHub does not provide shell access.
  • 마지막 단계로, cron 작업을 설정하기 전에 로컬 디렉토리에서 원격 origin URL을 변경
cd my/folder/path
git remote -v
# origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
# origin  https://github.com/USERNAME/REPOSITORY.git (push)
  • 터미널에서 아래 코드를 사용하여 원격 URL을 HTTPS에서 SSH로 업데이트
git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

정상 반영 확인

  • 정상적으로 반영되는지 확인한다.

Screenshot 2024-09-28 at 5.05.04 PM.png

  • test.txt 파일에 계속 데이터가 업로드가 되고 있기 때문에 반영이 가능한 상황이다.

Screenshot 2024-09-28 at 5.08.44 PM.png