➡️➡️➡️本教程参考自:B站 UP主 早午晚安皮皮鼠 提供的 给女朋友的微信专属推送,略有修改!
【微信公众号消息推送】系列教程(项目链接:https://github.com/leoatliang/wechat-push)
- 女朋友专属!微信公众号消息推送
- Github Actions 自动化部署,定时推送消息 💤💤💤
在上一篇文章中,我们简单实现了使用微信测试号手动推送消息的功能,这种方式的缺点有很多;那么,本篇文章将借助 Github Actions 这个自动化部署工具,来实现定时推送消息的功能。
在具体操作前,需要准备如右工具:(1)Git 安装配置和基本操作 (2)注册 Github,并使用 Git 连接
1. Github Actions
GitHub Actions 是一个持续集成和持续交付(CI/CD)平台,允许您自动化构建、测试和部署管道。您可以创建工作流来构建和测试存储库中的每个拉请求,或者将合并的拉请求部署到生产环境中。
不仅仅是 DevOps,它允许您在存储库中发生其他事件时运行工作流。
提供 Linux、Windows 和 macOS 虚拟机来运行您的工作流,或者您可以在自己的数据中心或云基础设施中托管自己的自托管运行程序。
Workflows
工作流是一个可配置的自动化流程,将运行一个或多个作业。工作流由签入到存储库中的
YAML
文件定义,并将在存储库中的事件触发时运行,也可以手动触发,或按照定义的时间表触发。
工作流存储在
.github/workflows
目录,一个存储库可以有多个工作流,每个工作流可以执行一组不同的任务。
在一个工作流中引用另一个工作流,请参阅 重用工作流;有关工作流的详细信息,请参阅 使用工作流。
Create an example workflow
[Step 1]: 在您的存储库中,创建
.github/workflows/
目录来存储您的工作流文件;
[Step 2]: 在以上目录中创建一个名为
learn-github-actions.yaml
的新文件,并添加以下代码。
name: learn-github-actions
run-name: ${{ github.actor }} is learning GitHub Actions
on:[push]jobs:check-bats-version:runs-on: ubuntu-latest
steps:-uses: actions/checkout@v4
-uses: actions/setup-node@v3
with:node-version:'14'-run: npm install -g bats
-run: bats -v
Events、Jobs、Actions、Runners 等就不一一介绍了,更多信息请参阅 了解 GitHub 操作。
2. 创建工作流
on
关键字用于指定触发工作流运行的事件类型。它可以包括多个触发器,
push
:代码推送到仓库时触发pull_request
:Pull Request 创建或更新时触发workflow_dispatch
:手动触发schedule
:定时触发
在给定的事件类型下,您可以进一步指定触发事件的条件,比如指定分支或设置定时规则。
on:push:branches:- main
schedule:-cron:"0 4 * * *"# UTC(国际标准时间)4时0分,北京+8小时 ,代表北京时间中午12时0分
如果不想每次修改或更新完,再 push 到仓库中,都会触发该工作流,所以设置如下:
on:workflow_dispatch:schedule:-cron:'0 4 * * *'
这两种触发的设置根据个人喜好吧,push触发/手动触发 + 定时触发。
jobs
是工作流中的一个关键部分,它定义了一系列任务(或作业),这些任务将在触发工作流后执行。
每个任务可以包含一系列步骤,每个步骤执行特定的操作,例如检出代码、安装依赖、运行测试等。每个任务都将在一个或多个运行环境(例如 Ubuntu、Windows、macOS)上执行。
jobs:run-coupons:runs-on: ubuntu-latest
steps:-uses: actions/checkout@main
-name: Setup Node.js
uses: actions/setup-node@v2
with:node-version:"18.19.1"-name: Install Dependencies
run:|
npm install axios moment-name: Run Script
run: node ./index.js
上述工作流在 Ubuntu 最新版运行 run-coupons 作业,主要步骤包括:
- 检出主分支上的代码;
- 设置
Node.js
版本为 18.19.1; - 使用 npm 安装依赖,具体为
axios
和moment
; - 运行名为
index.js
的脚本。
3. 执行
[Step 1]: 在 Github 中创建仓库,并使用 git 克隆到本地
[Step 2]: 将文件都复制粘贴至该文件夹,并在该文件夹右键打开 Git Bash,使用以下命令推送至 Github 远程仓库
gitadd.git commit -m'first commit'git push
[Step 3】: 可以看到 Actions 执行了两次,第一次是 push 到 main,第二次是到了设定的时间
设置的时间是 12:00,实际上工作流执行结束后,消息推送的时间肯定会延迟,因为 Github 上有全世界的人使用的工作流在执行。
了解 GitHub 操作:https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions
重用工作流:https://docs.github.com/en/actions/using-workflows/reusing-workflows
使用工作流:https://docs.github.com/en/actions/using-workflows
➡️ ➡️ ➡️ 获取源码,微信公众号【程序员LIANG】后台,回复关键字:微信公众号消息推送
版权归原作者 _leoatliang 所有, 如有侵权,请联系我们删除。