구현한 코드 전체는 여기에서 볼 수 있습니다.
저번 글에서 모든 코드의 작성은 끝났습니다. 이제는 작성한 java코드를 uber-jar로 만들기 위해 pom.xml을 작성하고 Github Actions를 활용해서 프로그램을 주기적으로 실행시키는 일만 남았습니다.
이번 프로젝트에서 저는 spring-boot를 쓰지않고 프로그램을 작성했습니다. 따라서 mvn package 커맨드를 써서 jar 파일을 만들 때 따로 uber-jar을 설정 하지 않으면 의존성들이 포함되지 않아서 실행시킬 수 없습니다.
maven-shade-plugin을 사용해서 uber-jar로 패키징을 하였습니다. 자세한 내용은 이 글을 참조해주세요
Github Actions를 사용하려면 기본 브랜치에(이 경우에는 master 브랜치) .github/workflows 폴더안에 yaml파일을 작성해주어야 합니다. 저는 아래와 같이 작성했습니다.
#https://github.com/hyoputer/steam-follow-game-newsletter/blob/master/.github/workflows/mail.yml
name: mail newsletter
on:
schedule:
- cron: "0 4 * * *"
jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: '11.0.9'
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: mail
env:
EMAIL_ID: ${{ secrets.EMAIL_ID }}
EMAIL_PASSWORD: ${{ secrets.EMAIL_PASSWORD }}
GIST_ACCESS_KEY: ${{ secrets.GIST_ACCESS_KEY }}
GIST_DESCRIPTION: ${{ secrets.GIST_DESCRIPTION }}
GIST_FILE_NAME: ${{ secrets.GIST_FILE_NAME }}
STEAM_USER_ID: ${{ secrets.STEAM_USER_ID }}
run: |
java -jar target/steamfollowmail-1.0-SNAPSHOT.jar
Settings -> secrets 탭에 들어가면 아래와 같이 환경변수를 등록 가능합니다.
이렇게 작성하고 커밋을 올리면 아래와 같이 매일 진행되는 모습을 확인하실 수 있습니다.
참고로 커밋하자마자 바로 workflow에 등록되지는 않는 것 같으니 저처럼 cron-job으로 설정하실 분은 작동시간에 바로 작동되지 않더라도 인내심을 갖고 기다려주시면 작동하는 걸 보실 수 있을 것입니다.