Github actions로 로또 자동 구매 오류 해결하기

w-beom·2025년 6월 7일
0

약 2년전에 Github Actions로 로또 자동 구매하기 포스팅을 보고난 후로 지속적으로 자동 구매를 해오다가 몇 달 전부터 예치금을 충전하지 않아서 지속적으로 이메일로 오류가 난다고 메일이 도착하고 있었습니다.

오랜만에 로또를 다시 구매해보고자 예치금을 충전해놓고 오늘을 기다려왔는데 오늘조차 똑같이 오류메일이 도착해있어서 무슨 문제인가 싶어서 해결하기로 했습니다.

아래 링크는 제가 참고한 포스팅입니다.

https://qiita.com/leechungkyu/items/223018d712420703c4f3 (Github Actions으로 로또 자동 구매하기 (지속적 로또))

문제점 파악

우선 Github로 가서 오류로그를 먼저 확인해보았는데 해당 오류는 아래와 같았습니다.

Python 3.7버전을 찾을 수 없다는 오류였는데요

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.7]

    steps:
    - uses: actions/checkout@v2
    - name: Set up python ${{ matrix.python-version }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}
    

위는 Github actions의 workflow.yml의 일부분인데 현재 ubuntu-latest(= Ubuntu 24.04) 이미지에는 3.7 바이너리가 더 이상 들어있지 않아서 발생되는 오류였습니다.

Python버전을 최신버전인 3.11버전으로 설치되도록 수정하였습니다. 아래는 수정된 부분의 파일입니다.

jobs:
  buy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

위와 같이 수정한 후 workflow을 돌려보니 또 다른 오류가 발생했는데


이번에는 wget 으로 받아오려던 chromedriver 100 ZIP이 더 이상 서버에 없어서 발생한 오류였습니다.

 # 4. 우분투 패키지 설치
      - name: Install ubuntu packages
        run: |
          sudo apt-get update
          sudo apt-get install -y fonts-unfonts-core fonts-unfonts-extra google-chrome-stable unzip
          wget https://chromedriver.storage.googleapis.com/100.0.4896.20/chromedriver_linux64.zip
          unzip chromedriver_linux64.zip -d $HOME/.local/bin
          chmod +x $HOME/.local/bin/chromedriver
          echo "$HOME/.local/bin" >> $GITHUB_PATH

위의 부분 중간에서 오류가 난 것 같습니다.
Chromedriver 수동 설치 블록을 지우고 python packages 단계에서 Selenium 4.6+가 제공하는 selenium-manager가 알아서 드라이버를 내려받도록 수정하여 아래와 같이 수정하였습니다.

- name: Install Python packages
        run: |
          pip install selenium>=4.6 requests twython pillow \
                     gspread google-api-python-client oauth2client \
                     playwright
          python -m playwright install --with-deps

최종코드

name: Lotto Buy Bot (로또 구매봇)

on:
  # 매주 토요일 08:55 KST → 금요일 23:55 UTC
  schedule:
    - cron: '55 23 * * 5'
  # 수동 실행
  workflow_dispatch:

jobs:
  buy:
    runs-on: ubuntu-latest       # Ubuntu 24.04
    steps:
      # 1. 코드 체크아웃
      - uses: actions/checkout@v4

      # 2. Python 3.11 설치 (캐시 X)
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      # 3-A) requirements.txt 없이 직접 패키지 설치
      - name: Install Python packages
        run: |
          pip install selenium>=4.6 requests twython pillow \
                     gspread google-api-python-client oauth2client \
                     playwright
          python -m playwright install --with-deps
      # 4. 우분투 패키지 설치
      - name: Install OS packages
        run: |
          sudo apt-get update
          sudo apt-get install -y fonts-unfonts-core fonts-unfonts-extra \
                                  google-chrome-stable
      # 5. 로또 자동 구매 스크립트 실행
      - name: Run the bot
        run: python ./buy_lotto.py

이번주는 직접 수동으로 로또를 구매하여 다음주까지 한번 결과를 기다려봐야겠네요

profile
습득한 지식과 경험을 나누며 다른 사람들과 문제를 함께 해결해 나가는 과정에서 서로가 성장할 수 있는 기회를 만들고자 노력합니다.

0개의 댓글