title: “Gitee自动更新部署的脚本”
date: “2022-03-20T16:58:45+08:00”
tags:

  • “gitee”
    categories:
  • “git”
    toc: true

bookComments: false

bookSearchExclude: false


Gitee自动更新部署的脚本使用

gitee 容量比github大,单存在不能绑定自定义域名,以及不能自动更新部署的问题。

自动更新脚本

参考:自动更新gitee pages,_永远不会太晚的博客-CSDN博客

前置:

  • node

  • puppeteer

  1. 需要node环境
    NodeJS 安装及环境配置

  2. 新建建一个文件夹 用来安装 puppeteer

  3. 在新建的文件夹内 打开cmd输入下方代码后,不要关闭cmd窗口。

    1. npm init -y
    2. npm i -s puppeteer@1.8.0
  1. 安装好后会出现package.json,打开全部替换为如下代码
    1. {
    2. "name": "puppeteer",
    3. "version": "1.0.0",
    4. "description": "",
    5. "main": "index.js",
    6. "scripts": {
    7. "test": "echo \"Error: no test specified\" && exit 1"
    8. },
    9. "keywords": [],
    10. "author": "",
    11. "license": "ISC",
    12. "dependencies": {
    13. "puppeteer": "^1.8.0"
    14. },
    15. "name": "git-update-pages",
    16. "bin": {
    17. "git-update-pages": "index.js"
    18. }
    19. }
  1. 新建index.js,填入一下代码.其中 17、22、31 行需要更改为自己的信息。更改完成后保存。 ```javascript

    ! /usr/bin/env node

    // 此处安装版本为 1.8.0 const puppeteer = require(“puppeteer”)

// 主要原理在于使用xpath获取html页面dom元素,脚本代替小手自动触发点击事件 async function giteeUpdate() { const browser = await puppeteer.launch({ // 此处可以使用 false 有头模式进行调试, 调试完注释即可 headless: false }) const page = await browser.newPage() await page.goto(“https://gitee.com/login“)

// 1. 获取账号input,自动输入 let accountElements = await page.$x(‘//*[@id=”user_login”]’) // 🚨需要设置为自己的gitee账户🚨 await accountElements[0].type(“自己的gitee账户”)

// 2. 获取密码input,自动输入 let pwdElements = await page.$x(‘//*[@id=”user_password”]’) // 🚨需要设置自己的gitee密码🚨 await pwdElements[0].type(“自己的gitee密码”)

// 3. 获取登录按钮,触发点击事件 let loginButtons = await page.$x(‘//*[@class=”git-login-form-fields”]/div[4]/input’) await loginButtons[0].click()

// 4. 等待登录成功 await page.waitFor(1000) 🚨需要设置自己的gitee pages页面🚨 await page.goto(“https://gitee.com/你的用户名/你的仓库名/pages“)

// 5. 监听触发的确认弹框,并点击确认 await page.on(“dialog”, async dialog => { console.log(“确认更新”) dialog.accept() })

// 6. 点击更新按钮,并弹出确认弹窗 let updateButtons = await page.$x(‘//*[@id=”pages-branch”]/div[6]’) console.log(1111, updateButtons) await updateButtons[0].click()

//7. 轮询并确认是否更新完毕 while (true) { await page.waitFor(2000) try { // 获取更新状态标签 deploying = await page.$x(‘//*[@id=”pages_deploying”]’) if (deploying.length > 0) { console.log(“更新中…”) } else { console.log(“更新完毕”) break } } catch (error) { break } } await page.waitFor(500)

// 8.更新完毕,关闭浏览器 browser.close() }

giteeUpdate()

  1. 6.
  2. 打开刚刚的cmd窗口,输入如下代码。(将_npm_ 模块链接到对应的运行项目中去)
  3. ```shell
  4. npm link
  1. 现在就可以本地使用git-update-pages命令来自动化操作去更新gitee page 更新部署了。