View on GitHub

Serverless-Devs

:fire::fire::fire: Serverless Devs developer tool ( Serverless Devs 开发者工具 )

与 CI/CD 平台/工具集成

与 Github Action 的集成

在 Github Action 的 Yaml 文件中,可以增加 Serverless Devs 的相关下载、配置以及命令执行相关能力。

例如,在仓库中可以创建该文件.github/workflows/publish.yml,文件内容:

name: Serverless Devs Project CI/CD

on:
  push:
    branches: [master]

jobs:
  serverless-devs-cd:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org/
      - run: npm install
      - run: npm install -g @serverless-devs/s
      - run: s config add --AccessKeyID $ --AccessKeySecret $ -a default -f
      - run: s deploy

主要包括几个部分的内容:

关于密钥的配置:密钥信息的获取是通过$进行获取的,所以此时,需要将所需要的密钥和对应的Key配置到 Github Secrets 中,例如在上面的案例中,需要AccessKeyID,AccessKeySecret等两个密钥的 Key ,我们就可以配置相关的内容:

  1. 将密钥信息配置到 Github Secrets 中

  2. 我们创建多对密钥信息: 例如,我此处配置了三对密钥:

关于密钥配置的部分注意内容,可以参考文末的注意事项

与 Gitee Go 的集成

在开启 Gitee Go 的服务之后,在流水线的 Yaml 文件中,可以增加 Serverless Devs 的相关下载、配置以及命令执行相关能力。

例如,在仓库中可以创建水流线文件,文件内容:

name: serverless-devs
displayName: 'Serverless Devs Project CI/CD'
triggers: # 流水线触发器配置
  push: # 设置 master 分支 在产生代码 push 时精确触发(PRECISE)构建
    - matchType: PRECISE
      branch: master
commitMessage: '' # 通过匹配当前提交的 CommitMessage 决定是否执行流水线
stages: # 构建阶段配置
  - stage: # 定义一个 ID 标识为 deploy-stage ,名为「 Deploy Stage 」的阶段
      name: deploy-stage
      displayName: 'Deploy Stage'
      failFast: false # 允许快速失败,即当 Stage 中有任务失败时,直接结束整个 Stage

      steps: # 构建步骤配置
        - step: npmbuild@1 # 采用 npm 编译环境
          name: deploy-step # 定义一个 ID 标识为 deploy-step ,名为「 Deploy Step 」的阶段
          displayName: 'Deploy Step'
          inputs: # 构建输入参数设定
            nodeVersion: 14.15 # 指定 node 环境版本为 14.15
            goals: | # 安装依赖,配置相关主题、部署参数并发布部署
              node -v
              npm -v
              npm install -g @serverless-devs/s
              s config add --AccessKeyID $ACCESSKEYID --AccessKeySecret $ACCESSKEYSECRET -a default -f
              s deploy

主要包括几个部分的内容:

关于密钥的配置:密钥信息的获取是通过$*进行获取的,所以此时,需要将所需要的密钥和对应的Key配置到 Gitee 的环境变量管理即可,例如在上面的案例中,需要ACCESSKEYID,ACCESSKEYSECRET等两个密钥的 Key ,我们就可以配置相关的内容:

  1. 找到 Gitee 的环境变量管理

  2. 我们创建多对密钥信息: 例如,我此处配置了三对密钥:

关于密钥配置的部分注意内容,可以参考文末的注意事项

与 Jenkins 的集成

在准备将 Serverless Devs 集成到 Jenkins 之前,需要先基于 Jenkins 官网 安装并运行 Jenkins。

本地启动 Jenkins 后,通过浏览器进入链接 http://localhost:8080 配置完成基础设置后,需要新增 Credentials 设置,如下图所示:

此时可以根据需要,增加密钥信息,以阿里云为例,新增三个全局凭据:

jenkins-alicloud-access-key-id : 阿里云 accessKeyId
jenkins-alicloud-access-key-secret : 阿里云 accessKeySecret

新增 Credentials 的教程可以参考这里

此时,可以对自身的 Serverless Devs 项目进行完善:

完成密钥配置之后,可以创建一个 Jenkins 流水线,该流水线的源是目标 github 地址。接下来,就可以开始运行 Jenkins 流水线,运行结束后,就可以得到相关的内容结果。

关于密钥配置的部分注意内容,可以参考文末的注意事项

与云效的集成

# input your command here
npm install -g @serverless-devs/s
s config add --AccessKeyID ${ACCESSKEYID} --AccessKeySecret ${ACCESSKEYSECRET} -a default -f
s deploy

这里主要包括三个部分:

效果如下:

image

由于在命令中,引用了两个重要的环境变量:ACCESSKEYID, ACCESSKEYSECRET,所以还需要在环境变量中,增加类似的内容:

image

注意事项