github或gitee等dev cloud使用actions通过yml配置实现自动化部署

什么是CI

**CI又称为work flow,是一种自动化执行工具。**多数代码开发平台,例如 gitee,github,gitlab,azure devcloud都有类似于actions的功能,用于满足用户自定义的条件时,自动化执行一些工作,比如 自动化部署,检查语法,通知到微信等。
github为例,我们只需要在项目的actions界面下,新建或选择一个yml方案,即可实现众多功能。
在这里插入图片描述
在这里插入图片描述

如何配置CI

名称示例样例值含义
nameCI文件的名称
on何时触发此CI
envNODE_VERSION: “10.x”CI文件全局变量
jobs触发后执行的操作,后跟多个键,表示执行哪些工作。注意:这些工作是同时进行的

on: 例如 push: branches:[main]:表示main分支在进行push操作的时候触发

jobs:例如 build2333: 此处build2333是自定义的一个工作
其中,单个job的参数包括:

名称示例样例值含义
namebuild本工作的名称
runs-onubuntu-latest在什么环境运行
steps本工作所有的步骤

steps:每个步骤都必须要有runuses键的其中一个,表示此步骤需要执行或调用什么。
name,with,env 这些键是非必须的,可以根据情况添加。

要了解yml文件的更多语法,可参看微软文档

编写完成后提交到仓库,github将会自动开始执行全部步骤
在这里插入图片描述
在这里插入图片描述

样例配置文件

# CI name , it will display on github's action page menu
name: web deploy by ftp
# trigger on which this CI should be run
on:
	# push operation is operate
  push: 
    # here since my repository branch is named `main` , you should follow your own repository like `master`
    branches: [main] 
# CI enviroment settings
env:
  NODE_VERSION: "10.x" # custom arg of node.js's version
jobs:
  build:
    name: 构建,发布
    runs-on: ubuntu-latest # use latest ubuntu to run the job
    steps:
      # here are some step followed , each step must have `uses` or `run` key , for CI to run
      # other key like `name`,`with`,`env` is optional
      - uses: actions/checkout@v2
        name: 初始化 checkout
      # Runs a single command using the runners shell
      - name: 测试ci单行
        run: echo Hello, world!

      # Runs a set of commands using the runners shell
      - name: 测试ci多行
        run: |
          echo Add other actions to build,
          echo test, and deploy your project.
      - name: 使用 Node.js ${{ env.NODE_VERSION }} 构建包
        uses: actions/setup-node@v1
        with:
          node-version: ${{ env.NODE_VERSION }}
      - name: 构建执行
        run: |
          npm install
          npm run lint
          npm run build:stage
      # i use `SamKirkland/FTP-Deploy-Action@4.0.0` for ftp deploy
      # you can referer to github.com/SamKirkland/FTP-Deploy-Action for more infomation
      - name: 静态发布到ftp
        uses: SamKirkland/FTP-Deploy-Action@4.0.0
        with:
          # `${{arg}}` is a template from which you set in `secrets` menu
          # as `yml` file is follow .git upload to github ,`secrets` is to prevent your sensitive infomation from exposed to public
          server: ${{ secrets.FTP_HOST }}  
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          local-dir: ./dist/
          server-dir: /kitsune/

      - name: 完成
        run: echo deploy by ftp

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页