【白嫖GitHub(一)】用github action实现自动天气邮件到发送

关于

GitHub Actions

GitHub Actions 是 GitHub 提供的一种自动化工作流程,可帮助您在 GitHub 存储库中自动化软件开发流程。通过 GitHub Actions,您可以定义各种事件触发的动作,比如提交代码、创建 Pull Request 或发布 Release,然后执行一系列自定义的任务,如运行测试、构建代码、部署到服务器等等。这使得开发团队可以更轻松地自动化和管理软件开发流程,提高生产力和代码质量。

 

GitHub Actions 可以看作是一个由 GitHub 提供的简易的 CI/CD 平台。它最大的优势在于与 GitHub 仓库无缝集成,使得配置和管理自动化工作流程变得非常方便。通过简单的配置文件,就可以定义各种任务和操作,以响应不同的事件,并自动执行这些任务。

githubactions官方中文文档

我靠这不是相当于提供了一个自动化部署平台吗?疯狂心动直接

那怎么触发这个github actions完成白嫖呢,以下就使用一个简单的smtp邮件发送天气作为演示

废话少说,贴个码先

#使用smtp库自动发送邮件
import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 发送邮件服务器
smtp_server = 'smtp.163.com'
# 发送邮箱
from_addr = 'xxx@xx.xx
# 授权密码
password = 'xxxxxx'
# 接收邮箱
to_addr = 'xxxxxx'

# 邮件内容
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addr)
msg['Subject'] = Header('hello')

# 连接发送邮件
server = smtplib.SMTP(smtp_server, 25)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()
print('send email success')

 

在仓库下配置一个./.github/workflows/action.yml,即可配置githubAction,当然先提交源码再到githubactions使用UI添加也是可以的。

下面就来说说这个GitHub Actions 的配置文件吧,每一个步骤都有详细的解释:

name: Daily Main.py Execution  # Workflow的名称

on:
  push:  # 当有push事件时触发workflow
    branches:
      - main  # 仅在'main'分支上触发
  workflow_dispatch:  # 允许手动触发workflow
  schedule:  # 定时自动运行workflow
    - cron: "0 0 * * *"  # 每天UTC时间00:00或者UTC+8时间08:00运行

jobs:
  run-main:  # 定义名为'run-main'的job
    runs-on: ubuntu-latest  # 在最新版本的Ubuntu上运行job
    steps:
      - name: Checkout code  # 步骤:检出代码仓库
        uses: actions/checkout@v2  # 使用'actions/checkout' action

      - name: Run main.py  # 步骤:运行'main.py'文件
        run: python main.py  # 使用Python运行'main.py'文件

更多的就看看官方源码吧

尾记:

这篇文章一开始只是为了试一试github action的操作,但是在使用的过程中逐渐发现一些问题,同时也因此不得不学习了一些新技术,遂决定将这个部分开成一个系列:【白嫖GitHub】系列,启动!<\del>