Skip to content

Daily pipeline

Daily pipeline #410

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Daily pipeline
on:
workflow_dispatch: {}
schedule:
# * is a special character in YAML so you have to quote this string
# Feel free to change this cron schedule
# Currently its scheduled for 1:25 pm UTC, Sun-Thurs
- cron: '25 13 * * 0-4'
jobs:
generate_and_send_digest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Generate Digest
run: |
python src/action.py
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
SENDGRID_API_KEY: ${{ secrets.SENDGRID_API_KEY }}
FROM_EMAIL: ${{ secrets.FROM_EMAIL }}
TO_EMAIL: ${{ secrets.TO_EMAIL }}
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: digest.html
path: digest.html
- name: check
id: check
env:
SENDGRID_API_KEY: ${{ secrets.SENDGRID_API_KEY }}
MAIL_USERNAME: ${{ secrets.MAIL_USERNAME }}
MAIL_PASSWORD: ${{ secrets.MAIL_PASSWORD }}
MAIL_CONNECTION: ${{ secrets.MAIL_CONNECTION }}
if: "${{ env.SENDGRID_API_KEY == '' && (env.MAIL_CONNECTION || env.MAIL_USERNAME != '' && env.MAIL_PASSWORD != '') }}"
run: echo "DEFINED=true" >> $GITHUB_OUTPUT
- name: Send mail
uses: dawidd6/action-send-mail@v3
env:
DEFINED: ${{ steps.check.outputs.DEFINED }}
if: ${{ env.DEFINED == 'true' }}
with:
# Specify connection via URL (replaces server_address, server_port, secure,
# username and password)
#
# Format:
#
# * smtp://user:password@server:port
# * smtp+starttls://user:password@server:port
connection_url: ${{secrets.MAIL_CONNECTION}}
# Required mail server address if not connection_url:
server_address: smtp.gmail.com
# Server port, default 25:
server_port: 465
username: ${{secrets.MAIL_USERNAME}}
password: ${{secrets.MAIL_PASSWORD}}
secure: true
subject: Personalized arXiv Digest
to: ${{ secrets.TO_EMAIL }}
from: "Personalized arxiv digest"
html_body: file://digest.html
ignore_cert: true
convert_markdown: true
priority: normal