RSS Aggregator #10687
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: RSS Aggregator | |
on: | |
schedule: | |
- cron: '0 */1 * * *' # Run every 1 hour | |
workflow_dispatch: # Allow manual triggering | |
jobs: | |
aggregate_rss_feeds: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pages: write | |
id-token: write | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Install dependencies | |
run: | | |
pip install -r requirements.txt | |
touch .env | |
- name: Run RSS aggregator script | |
env: | |
GITHUB_ENV: .env | |
run: | | |
python rss_aggregator.py | |
- name: Update processed links file | |
run: | | |
awk -F ' ' -v d="$(date -u --date="365 days ago" +%Y-%m-%dT%H:%M:%S)" '$1 > d' processed_links.txt > temp_processed_links.txt | |
sort -u temp_processed_links.txt > processed_links.txt | |
rm temp_processed_links.txt | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v1 | |
with: | |
path: '.' | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v1 | |
- name: Commit and push changes | |
uses: EndBug/add-and-commit@v9 | |
with: | |
add: '.' | |
message: 'feat: RSS feed update' | |
push: true |