Implementación automática de acciones de GitHub + sincronización del envío de enlaces de Baidu

prefacio

Recientemente, construí un sitio web estático con VuePress, debido a que es puramente estático, es muy problemático volver a empaquetar y cargar el artículo cada vez que lo modifico. Aunque el autor del tema vuepress-theme-vdoing proporciona un artículo tutorial sobre la implementación automática de GitHub Actions, es demasiado simple y se publicó en 19 años. .

1. Cree un almacén de GitHub (también hay almacenes privados disponibles)

inserte la descripción de la imagen aquí

2. Establezca la dirección del servidor y la clave privada SSH

Adquisición de la dirección del servidor: no hace falta decirlo.
Clave privada SSH: Obténgala usted mismo en la consola del proveedor de servicios del servidor. Por ejemplo, soy un servidor liviano de Alibaba Cloud.
inserte la descripción de la imagen aquí

Configure la dirección del servidor y las variables de clave privada SSH en GitHub:

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

3. Cree los archivos necesarios para la implementación automatizada.

3.1 Crear un archivo de directorio

  1. Cree un directorio en el directorio raíz del proyecto:.github
  2. .githubCrear workflowsdirectorio en directorio
  3. Cree un archivo yml en workflowsel directorio, el nombre puede ser arbitrario. mi nombre esci.yml

inserte la descripción de la imagen aquí

3.2 Configuración de ci.yml (comentarios súper detallados en cada línea)

# 工作流名称,可以根据你的需求进行命名
name: CI
# 这个部分定义了触发工作流程的事件,即在什么情况下工作流程会被触发。在这里,工作流会在master分支有push事件时被触发。
on:
  push:
    branches:
      - master
# 这是工作流程的主要部分,包含了一个或多个工作(jobs),每个工作都是一系列步骤的组合。
jobs:
  build:
    # 指定工作在哪种虚拟机环境中运行,这里是在ubuntu-latest(最新版本的Ubuntu)中运行。(注意:这里指的是GitHub托管的虚拟机,与你实际服务器没有直接关系)
    runs-on: ubuntu-latest
    # 这部分允许你定义一些矩阵策略,以在不同的条件下运行不同的步骤。在这里,使用了一个node-version矩阵,具体的版本是18.x。
    strategy:
      matrix:
      	# 一定要注意!这里一定要是自己项目所使用的node版本,否则在自动打包时会出错。
        node-version: [ 18.x ]
    # 这是工作的实际步骤。
    steps:
      # 步骤1 这是步骤的名称,表示将检出(克隆)代码库。
      - name: Checkout # 步骤1
        # 使用的动作。这里使用了actions/checkout@v1,这是一个官方的GitHub Actions动作,用于检出代码库中的代码。官方actions库:https://github.com/actions
        uses: actions/checkout@v1
      # 步骤2 这是步骤的名称,表示使用特定的Node.js版本。
      - name: Use Node.js ${
    
    {
    
     matrix.node-version }}
        # 使用的动作。这里使用了actions/setup-node@v1,用于安装指定版本的Node.js。
        uses: actions/setup-node@v1 # 作用:安装nodejs
        # 这里是动作的输入参数,指定了要安装的Node.js版本,来自于上面定义的矩阵。
        with:
          node-version: ${
    
    {
    
     matrix.node-version }} # 版本
      # 步骤3 安装依赖
      - name: npm install
        run: npm install
      # 步骤4 打包
      - name: build
        run: npm run build
      # 步骤5 部署
      - name: deploy
        # 使用动作:wlixcc/[email protected]
        uses: wlixcc/SFTP-Deploy-[email protected]
        with:
          # 这里是动作的输入参数,指定了要部署的服务器信息。
          username: 'root' #ssh user name
          # 服务器地址,我们在项目的secrets中配置的SERVER_HOST
          server: ${
    
    {
    
     secrets.SERVER_HOST }}
          # 服务器私钥,我们在项目的secrets中配置的PRIVATE_KEY
          ssh_private_key: ${
    
    {
    
     secrets.PRIVATE_KEY }}
          # 项目打包后的文件路径(根据你们实际的打包路径进行修改)
          local_path: './docs/.vuepress/dist/*'
          # 服务器上的项目路径(根据你们实际的项目路径进行修改)
          remote_path: '/xxx/xxx/xxx'
      # 步骤6 清理打包文件(根据你们实际的打包路径进行修改)
      - name: clean
        run: rm -rf ./docs/.vuepress/dist

3.3 Enviar archivos nuevos al repositorio de GitHub

Utilizo WebStorm para enviar, o puedes ordenar el envío directamente.
inserte la descripción de la imagen aquí

Después de enviar, actualice y verá:

inserte la descripción de la imagen aquí

4. Implementación de la automatización de pruebas

El proceso de configuración anterior ha finalizado. Ahora pruebe el código de actualización y envíelo a la sucursal principal del almacén para ver si se activará.

Modifiqué algún código al azar. Luego envíe:

inserte la descripción de la imagen aquí

ok, se ha activado.

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Haga clic en una tarea específica en la barra lateral izquierda jobspara ver registros específicos:

inserte la descripción de la imagen aquí

Expanda para ver registros específicos para cada paso:

inserte la descripción de la imagen aquí

Si la tarea se completa sin errores, se convertirá en un icono de marca de verificación verde:

inserte la descripción de la imagen aquí

Compruebe si el servidor ya tiene:

inserte la descripción de la imagen aquí
¡Esto esta bien! !

5. Sincronización del envío del enlace de Baidu

.github/workflowsCree un yml para Baidu push en el directorio, lo nombré aquíbaiduPush.yml

inserte la descripción de la imagen aquí

Creado en el directorio raíz del proyecto.baiduPush.sh

inserte la descripción de la imagen aquí

configuración yml:

## 利用GitHub Actions每天定时给百度推送链接,提高收录率 ##
name: baiduPush
# 两种触发方式:一、push代码,二、每天国际标准时间23点(北京时间+8即早上7点)运行
on:
  push:
  schedule:
    # 每天国际标准时间23点(北京时间+8即早上7点)运行
    - cron: '0 23 * * *' # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows#scheduled-events-schedule
# on:
#   schedule:
#     - cron: '*/5 * * * *' # 每5分钟一次,测试用

jobs:
  bot:
    runs-on: ubuntu-latest # 运行环境为最新版的Ubuntu
    steps:
      - name: 'Checkout codes' # 步骤一,获取仓库代码
        uses: actions/checkout@v1
      - name: 'Run baiduPush' # 步骤二,执行sh命令文件
        run: npm install && npm run baiduPush # 运行目录是仓库根目录

Contenido del script baiduPush.sh:

#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e

# 百度链接推送
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=ytxy.xyz&token=Oo5Ue3daxKJxkPid"

rm -rf urls.txt # 删除文件

Finalmente, envíe el código al almacén de GitHub.

inserte la descripción de la imagen aquí

La prueba de impulso es exitosa:

inserte la descripción de la imagen aquí

6. Nota

Antes o después de la implementación automática, debe configurar Nginx usted mismo para permitir el acceso normal al sitio web.
Antes o después de la implementación automática, debe configurar Nginx usted mismo para permitir el acceso normal al sitio web.
La implementación automatizada aquí simplemente carga los archivos empaquetados en una determinada carpeta de su servidor. Debe configurar el acceso usted mismo.

Para Nginx u otras configuraciones, Baidu usted mismo, esto es demasiado simple, ¡así que no hablaré más de eso aquí! ! !

Supongo que te gusta

Origin blog.csdn.net/weixin_52799373/article/details/132333626
Recomendado
Clasificación