惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

Oragekk's Blog

一个 waline 评论系统bug引发的思考 Jenkins 远程触发构建踩坑记 Git SSH 密钥配置 初识Rust vuepress-plugin-meting2 谷歌发布多平台应用开发神器Project IDX!PaLM 2加持 Vue常见优化手段 Vue2响应式原理解析 Flutter 工作原理 Dart 中的并发 提交URL到搜索引擎(百度、Bing、Google) GitHub Actions 使用介绍 素材设计 你不知道的 CSS 之包含块 浏览器的事件循环 CSS 属性计算过程 前端-Q&A Vercel deploy忽略指定分支 评论插件 Waline 之邮件通知配置 公开API 终端究极美化iTerm2+Pure 使用Bing API提交网站URL Flutter 基础大集合 关于本站 关于我 Markdown 展示 使用n命令管理node版本 幻灯片页 ReactNative State(状态) ReactNative开发环境配置,ES6语法介绍 ReactNative介绍 更优雅强大的终端ZSH 神经网络模型训练 YYCache优秀的缓存设计 WebViewJavascriptBridge NSError WCDB漫谈 优雅的实现TableViewCell单选 初探机器学习框架CoreML 深入理解swift中闭包的捕捉语义 ijkPlayer 集成 iOS 配置https iOS timelineLogistics iOS Cookie的配置及使用 WKWebView拦截URL WKWebView使用及自适应高度 textfield限制输入字符 评论系统从多说迁移到disqus指南 利用Runtime进行快速归档 iOS 10.3 keychain 重大更新 Cell的accessoryType属性标记单元格之后,出现的重用问题 通过UserAgent判断设备 AFNetworking A memory leak 一人一句宋词 OC 中的枚举类型 iOS - Image compression algorithm iOS程序启动原理(下) iOS程序启动原理(上) TableView性能优化 NSOperatioin Runloop Test Three ways to call Update Cocoapods 1.1.1 减小iOS-App或者静态库体积 Jekyll旧站回忆 JavaScript ES6 CommonJS,RequireJS,SeaJS 归纳笔记 Unix/Linux 扫盲笔记
如何利用GitHub Action提交URL到搜索引擎
2023-04-17 · via Oragekk's Blog

相关信息

这是一个GitHub Actions的配置文件,整体思路是,获取本次更新的url
(通过对比两次提交的sitemap.xml文件),所以触发条件是deploy分支有推送并修改了sitemap.xml文件,再利用python脚本进行url推送到百度、Bing、Google

脚本代码请看这里👉提交URL到搜索引擎(百度、Bing、Google)

前些天不是写了Bing的提交脚本吗,但是每次都要自己手动跑脚本也很麻烦,但我又没有服务器,所以用上了GitHub Actions了嘛
总的来说做了以下事情:

  1. 提交代码并修改sitemap.xml 后触发工作流
  2. 比对上一次提交和本次提交的新增URL
  3. 将URL分别提交给百度站长、Bing、Google 供搜索引擎快速收录

流程解读

配置代码

name: 推送脚本

on:
  push:
    branches:
      - gh-pages
    paths:
      - 'sitemap.xml'

jobs:
  push_bot:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout gh-pages branch
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
          ref: 'gh-pages'
          path: gh-pages
          
      - name: 获取上一次提交SHA
        id: last-commit
        run: |
          cd gh-pages
          PREV=$(git log --format="%H" -n 2 | tail -n 1)
          echo "SHA_KEY=$PREV" >> $GITHUB_OUTPUT
          echo $PREV
        
      - name: 拉取prev代码
        uses: actions/checkout@v3
        with:
          ref: ${{ steps.last-commit.outputs.SHA_KEY }}
          path: prev

      - name: Checkout main branch
        uses: actions/checkout@v3
        with:
          ref: 'main'
          path: main

      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: "3.10"
          cache: "pip" # 设置缓存

      - name: 安装依赖
        run: |
          pip install -r main/script/requirements.txt
      - name: 运行脚本
        env:
          #设置secrets的环境变量
          BAIDU_KEY: ${{ secrets.BAIDU_KEY }}
          BING_KEY: ${{ secrets.BING_KEY }}
          GOOGLE_JSON: ${{ secrets.GOOGLE_JSON }}
        run: |
          python main/script/submit.py --sitemap gh-pages/sitemap.xml --prevsitemap prev/sitemap.xml

配置解读

触发

这个例子的触发机制如下:

  1. 当有推送行为发生
  2. 推送分支为gh-pages
  3. sitemap.xml文件被修改

配置运行环境

这里指定ubuntu-latest

步骤

  1. 拉取 gh-pages 分支代码到路径gh-pages

  2. 获取上一次提交SHA-1值使用如下命令,将获取到的倒数第二次git提交SHA-1值存储到环境变量GITHUB_OUTPUT[1]中,方便后续使用

     cd gh-pages
     PREV=$(git log --format="%H" -n 2 | tail -n 1)
     echo "SHA_KEY=$PREV" >> $GITHUB_OUTPUT
     echo $PREV
  3. 获取上一步存储到到GITHUB_OUTPUT的commitid,并拉取代码代码到路径prev,ref可以是分支,tag,commitid

     name: 拉取prev代码
     uses: actions/checkout@v3
     with:
         ref: ${{ steps.last-commit.outputs.SHA_KEY }}
         path: prev
  4. 拉取main分支代码到路径main

  5. 安装python环境并设置缓存

  6. 安装python依赖库

  7. 运行脚本读取配置在仓库-->Settings-->Secrets and variables-->Actions-->Repository secrets中的环境变量,并把上次提交的sitemap.xml和本次提交的sitemap.xml作为命令行参数提交给python脚本

    Repository secrets
    Repository secrets

  1. 设置步骤的输出参数 ↩︎