起因
没别的,天太冷了,早上赖床不想起,手一滑打开了力扣APP,本想着先看下今天的每日一题(简单一小时、中等看一天、难题一秒钟),手机端不给看每日一题???总不能为了看眼题目就让我起床吧?
嘿嘿,写个定时器,每天早上自动发送每日一题到邮箱。
躺着把每日一题看喽!
具体实现
代码实现部分直接看这里: https://blog.csdn.net/malloc_can/article/details/113004579
讲的很详细,不再赘述了。
唯一需要修改的一点:
python 脚本中获取环境变量
import os
SCKEY = os.environ["SCKEY"]
GitHub Action
GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出。
持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。
很多操作在不同项目里面是类似的,完全可以共享。GitHub 注意到了这一点,想出了一个很妙的点子,允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。
如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方.
上面的代码已经很简洁了,不过问题在于。。。我没有服务器啊
嘿嘿,白嫖一波GitHub Action的服务器资源。
Action的详细使用参考(三者结合着看):
官方说明文档
Action的关键在于 .github/workflows 里的yaml文件(完整代码在开头给出的仓库中)。
# Controls when the action will run. 执行的触发条件
on:
# Triggers the workflow on push or pull request events but only for the main branch push时触发
#push:
# branches: [ main ]
#pull_request:
# branches: [ main ]
# 定时任务,每天在国际标准时间23点(北京时间早上7点)运行
schedule:
- cron: '0 23 * * *'
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on 运行环境
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# 安装python3.7
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests
- name: 'Send Email'
# 设置两个环境变量,给python脚本使用
env:
# 从仓库的setting中设置两个secret,加密邮箱用户名和密码
username: ${{ secrets.MAILUSERNAME }}
pwd: ${{ secrets.MAILPASSWORD }}
run: python request.py