title: “Gitee自动更新部署的脚本”
date: “2022-03-20T16:58:45+08:00”
tags:
- “gitee”
categories: - “git”
toc: true
bookComments: false
bookSearchExclude: false
Gitee自动更新部署的脚本使用
gitee 容量比github大,单存在不能绑定自定义域名,以及不能自动更新部署的问题。
自动更新脚本
前置:
node
puppeteer
需要node环境
NodeJS 安装及环境配置新建建一个文件夹 用来安装 puppeteer
在新建的文件夹内 打开cmd输入下方代码后,不要关闭cmd窗口。
npm init -y
npm i -s puppeteer@1.8.0
- 安装好后会出现package.json,打开全部替换为如下代码
{
"name": "puppeteer",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"puppeteer": "^1.8.0"
},
"name": "git-update-pages",
"bin": {
"git-update-pages": "index.js"
}
}
- 新建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()
6.
打开刚刚的cmd窗口,输入如下代码。(将_npm_ 模块链接到对应的运行项目中去)
```shell
npm link
- 现在就可以本地使用
git-update-pages
命令来自动化操作去更新gitee page 更新部署了。