name: Python application on: schedule: - cron: "0 13 * * *" workflow_dispatch: jobs: run: runs-on: self-hosted environment: Main env: BOT_ROOT: "~/actions-runner/work/today.isangjeong" BOT_INSTAGRAM_ID: ${{ secrets.BOT_INSTAGRAM_ID }} BOT_INSTAGRAM_PASSWD: ${{ secrets.BOT_INSTAGRAM_PASSWD }} BOT_INSTAGRAM_TOTP: ${{ secrets.BOT_INSTAGRAM_TOTP }} BOT_KEY: ${{ secrets.BOT_KEY }} BOT_WEBHOOK_URL: ${{ secrets.BOT_WEBHOOK_URL }} SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} steps: - uses: actions/checkout@v4 - name: Set up Python 3.12 uses: actions/setup-python@v3 with: python-version: "3.12" # Cache Python dependencies - name: Cache Python dependencies uses: actions/cache@v3 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- # Cache cookie.json - name: Cache cookie.json with timestamp check uses: actions/cache@v3 with: path: /home/runner/work/today.isangjeong/today.isangjeong/app/temp/auth/cookies.json key: ${{ runner.os }}-cookie-${{ steps.timestamp.outputs.timestamp }} restore-keys: | ${{ runner.os }}-cookie- - name: Set timestamp for cookie.json id: timestamp run: | echo "::set-output name=timestamp::$(date -r /home/runner/work/today.isangjeong/today.isangjeong/app/temp/auth/cookies.json +'%s')" - name: Install dependencies (only if requirements.txt changed) run: | python -m pip install --upgrade pip pip install -r requirements.txt || echo "No changes in requirements.txt, skipping installation" - name: Set Permissions run: | chmod +x app/run.sh app/gen-config.sh - name: Generate Config run: | cd app ./gen-config.sh - name: Add SSH private key run: | mkdir -p ~/.ssh echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 - name: Start SOCKS proxy with SSH run: | ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_ed25519 -D 9999 -f -N neko@imnya.ng -p5322 echo "SOCKS proxy started" - name: Run application run: | cd app ./run.sh