Acción de gitHub: conceptos de flujo de trabajo y operaciones básicas

Acción de gitHub: conceptos de flujo de trabajo y operaciones básicas

1. Archivo de flujo de trabajo

Referencias para escribir este artículo:

github actionLos archivos de configuración se denominan workflowarchivos y se almacenan en el .github/workflowsdirectorio.

El archivo .ymltoma .yamlel formato de sufijo o .

Una biblioteca puede tener varios workflowarchivos , siempre que haya un archivo de sufijo que coincida con el formato, el archivo se ejecutará automáticamente.

2. Conceptos básicos y terminología

  • Flujo de trabajo: el proceso de integración continua que se ejecuta una vez es un flujo de trabajo.
  • Trabajo (tarea): un flujo de trabajo consta de uno o más trabajos, lo que significa una operación de integración continua que puede completar varias tareas.
  • Paso (paso): Cada trabajo consta de múltiples pasos, que se completan paso a paso.
  • action (acción): Cada paso puede ejecutar uno o más comandos a su vez.

Hay muchos campos de configuración en el archivo de flujo de trabajo, consulte la documentación oficial para obtener más información . A continuación se muestran algunos campos básicos.

1, nombre

El nombre del flujo de trabajo.Si se omite este campo, el valor predeterminado es el nombre de archivo del flujo de trabajo actual.

name: GitHub Actions Demo
复制代码

2, en

Especifica las condiciones que activan el flujo de trabajo, generalmente algún evento.

# push 事件触发 workflow
on: push

# 可以是事件的数组
on: [push, pull_request]

# 指定触发事件时,可以限定分支或标签
on:
  push:
      branches:
       - master
复制代码

3, trabajos

El cuerpo del flujo de trabajo es el campo de trabajo, que representa una o más tareas a realizar.

trabajos.<id_trabajo>.nombre

jobs:
  my_first_job:
    name: My first job
  my_second_job:
    name: My second job
复制代码

El código anterior jobscontiene dos tareas, job_ida saber my_first_job, my_second_job.

job_idDentro nameestá tarea.

trabajos.<job_id>.needs

Especifica las dependencias de la tarea actual, el orden en el que ejecutar.

jobs:
  job1:
  job2:
    needs: job1
  job3:
    needs: [job1, job2]
复制代码

el trabajo 1 debe terminar antes que el trabajo 2, el trabajo 3 espera que el trabajo 1 y el trabajo 2 finalicen antes de poder ejecutarse. Entonces el orden de ejecución es trabajo1, trabajo2, trabajo3.

trabajos<job_id>.se ejecuta

Especifica el entorno de máquina virtual necesario para ejecutar. Campos requeridos

ubuntu-latest,ubuntu-18.04或ubuntu-16.04

windows-latest,windows-2019或windows-2016

macOS-latest或macOS-10.14
复制代码

trabajos<job_id>.pasos

Especifica los pasos en ejecución para cada trabajo, que puede contener uno o más pasos.

  • jobs.<job_id>.steps.name: Nombre del paso.
  • jobs.<job_id>.steps.run: el comando o la acción que se ejecutará para este paso.
  • jobs.<job_id>.steps.env: Variables de entorno requeridas para este paso.
name: Greeting from Mona
on: push

jobs:
  my-job:
    name: My Job
    runs-on: ubuntu-latest
    steps:
      - name: Print a greeting
        env:
          MY_VAR: Hi there! My name is
          FIRST_NAME: Mona
          MIDDLE_NAME: The
          LAST_NAME: Octocat
        run: |
          echo $MY_VAR $FIRST_NAME $MIDDLE_NAME $LAST_NAME.
复制代码

Ejemplo de simulación

Simule un escenario, cuando ocurre un evento de inserción en una sucursal, se compilará todo el proyecto y el producto implementado se enviará a un enlace que configuramos

Consulte la configuración de la biblioteca principal de alita

env:
  NODE_OPTIONS: --max-old-space-size=6144
复制代码

Establezca el límite de memoria para Node.

- name: "Checkout"
  uses: actions/checkout@v3
  with:
    fetch-depth: 0
复制代码

Entre los pasos del trabajo, el primer paso action/checkoutes obtener el código fuente.

uses: use algunas acciones oficiales o de terceros para ejecutar.

- name: "Setup Node.js"
  uses: actions/setup-node@v3
  with:
    node-version: 14
复制代码

Instalar el nodo en el sistema operativo actual

- name: install
  run: yarn

- name: Build
  run: yarn run docs:build
复制代码

Ejecute el comando del paquete después de la instalación

- name: Deploy
  uses: peaceiris/actions-gh-pages@v3
  with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    publish_dir: ./docs-dist
    cname: dform.alitajs.com
复制代码
  • publish_dir: paquete generado después del empaquetado
  • cname: Enlace de documentación configurado

Supongo que te gusta

Origin juejin.im/post/7088959261870391332
Recomendado
Clasificación