name: Friend Circle Lite

on:
  schedule:
    - cron: "0 */4 * * *"
  workflow_dispatch:

env:
  TZ: Asia/Shanghai

jobs:
  friend-circle-lite:
    runs-on: ubuntu-latest

    steps:
    - name: Pull Latest Repository
      uses: actions/checkout@v4

    - name: Cache pip packages
      uses: actions/cache@v4
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
        restore-keys: |
          ${{ runner.os }}-pip-

    - name: Install Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt

    - name: Download last_articles.json artifact
      uses: dawidd6/action-download-artifact@v6
      with:
        github_token: ${{secrets.GITHUB_TOKEN}}
        branch: main
        name: 'last_articles'
        path: './rss_subscribe'
        if_no_artifact_found: warn

    - name: Check RSS feeds
      env:
        SMTP_PWD: ${{ secrets.SMTP_PWD }}
        FCL_REPO: ${{ github.repository }}
      run: |
        echo "Checking RSS feeds..."
        python run.py

    - name: Upload last_articles.json as artifact
      uses: actions/upload-artifact@v4
      with:
        name: 'last_articles'
        path: './rss_subscribe/last_articles.json'
        retention-days: 90

    - name: git config
      run: |
        git config --global user.name 'github-actions[bot]'
        git config --global user.email 'github-actions[bot]@users.noreply.github.com'

    - name: Commit changes
      run: |
        mkdir pages
        cp -r main ./static/index.html ./static/readme.md ./static/favicon.ico ./static/bg-light.webp ./static/bg-dark.webp all.json errors.json pages/
        cd pages
        git init
        git add .
        git commit -m "⏱️ $(date +"%Y年%m月%d日-%H时%M分") GitHub Actions定时更新"
        git push --force https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git HEAD:page

    - name: Delete Workflow Runs
      uses: Mattraks/delete-workflow-runs@v2
      with:
        retain_days: 30
        keep_minimum_runs: 6

  keepalive-workflow:
    name: Keepalive Workflow
    if: ${{ always() }}
    needs: friend-circle-lite
    runs-on: ubuntu-latest
    permissions:
      actions: write
    steps:
      - uses: liskin/gh-workflow-keepalive@v1