- lotto_auto_buy.py를 루트에서 lotto-runner/로 이동 - 로그 경로를 logs/ 하위로 변경 (볼륨 마운트 대응) - Dockerfile: node:22 → python:3.11-bookworm, Chrome 직접 설치 추가 - docker-compose.yml 신규 생성 (NAS Container Manager용) - CI: requirements.txt 및 스크립트 경로를 lotto-runner/ 기준으로 수정 - Slack 알림 전송 기능 구현 (send_slack 함수) - Chrome 컨테이너 구동 안정화 플래그 추가 - popupLayerAlert JS 강제 숨김으로 클릭 인터셉트 해결
80 lines
2.0 KiB
YAML
80 lines
2.0 KiB
YAML
name: 로또 자동 구매
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 0 * * 5" # 매주 금요일 00:00 UTC = 09:00 KST
|
|
workflow_dispatch: # 수동 실행 버튼
|
|
|
|
jobs:
|
|
buy:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
|
|
steps:
|
|
- name: 체크아웃
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Python 및 시스템 의존성 설치
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y \
|
|
python3 \
|
|
python3-pip \
|
|
python3-venv \
|
|
build-essential \
|
|
curl \
|
|
unzip \
|
|
fonts-liberation \
|
|
libasound2 \
|
|
libatk-bridge2.0-0 \
|
|
libatk1.0-0 \
|
|
libc6 \
|
|
libcairo2 \
|
|
libcups2 \
|
|
libdbus-1-3 \
|
|
libexpat1 \
|
|
libfontconfig1 \
|
|
libgbm1 \
|
|
libgcc1 \
|
|
libglib2.0-0 \
|
|
libgtk-3-0 \
|
|
libnspr4 \
|
|
libnss3 \
|
|
libpango-1.0-0 \
|
|
libpangocairo-1.0-0 \
|
|
libstdc++6 \
|
|
libx11-6 \
|
|
libx11-xcb1 \
|
|
libxcb1 \
|
|
libxcomposite1 \
|
|
libxcursor1 \
|
|
libxdamage1 \
|
|
libxext6 \
|
|
libxfixes3 \
|
|
libxi6 \
|
|
libxrandr2 \
|
|
libxrender1 \
|
|
libxss1 \
|
|
libxtst6 \
|
|
xdg-utils
|
|
|
|
python3 --version
|
|
python3 -m venv .venv
|
|
.venv/bin/python -m pip install --upgrade pip setuptools wheel
|
|
.venv/bin/pip install -r lotto-runner/requirements.txt
|
|
|
|
- name: Chrome 설치
|
|
uses: browser-actions/setup-chrome@v1
|
|
with:
|
|
install-dependencies: true
|
|
|
|
- name: Chrome 확인
|
|
run: |
|
|
chrome --version || google-chrome --version || chromium --version
|
|
|
|
- name: 로또 구매 실행
|
|
env:
|
|
LOTTO_USER_ID: ${{ secrets.LOTTO_USER_ID }}
|
|
LOTTO_USER_PW: ${{ secrets.LOTTO_USER_PW }}
|
|
run: .venv/bin/python3 lotto-runner/lotto_auto_buy.py
|