GitHub操作:在作业之间共享公共操作

GitHub操作:在作业之间共享公共操作,github,continuous-integration,travis-ci,github-actions,Github,Continuous Integration,Travis Ci,Github Actions,从切换到,我想知道是否有一种方法可以在工作之间共享通用步骤。对于一个项目,我需要每个作业从3个操作开始:签出存储库代码、安装Node.js v12、从缓存还原Node_模块(如果可用)。实际上,我已经为每个作业添加了这3个操作,虽然有效,但有点冗长。有没有办法说:“每个作业必须先运行这些操作”之类的话 名称:ci on:[推送、工作流\调度] 工作: 设置: 运行于:ubuntu最新版本 步骤: -名称:签出存储库代码 用途:行动/checkout@v2 -名称:安装节点 用途:操作/设置-no

从切换到,我想知道是否有一种方法可以在工作之间共享通用步骤。对于一个项目,我需要每个作业从3个操作开始:签出存储库代码、安装Node.js v12、从缓存还原Node_模块(如果可用)。实际上,我已经为每个作业添加了这3个操作,虽然有效,但有点冗长。有没有办法说:“每个作业必须先运行这些操作”之类的话

名称:ci
on:[推送、工作流\调度]
工作:
设置:
运行于:ubuntu最新版本
步骤:
-名称:签出存储库代码
用途:行动/checkout@v2
-名称:安装节点
用途:操作/设置-node@v2
与:
节点版本:“12”
-名称:缓存节点\u模块
id:缓存节点模块
用途:行动/cache@v2
与:
路径:节点\单元模块
键:节点模块-${{hashFiles('package-lock.json')}
-名称:安装依赖项
运行:npm安装
test_mysql:
运行于:ubuntu最新版本
需要:设置
步骤:
-名称:签出存储库代码
用途:行动/checkout@v2
-名称:安装节点
用途:操作/设置-node@v2
与:
节点版本:“12”
-名称:还原节点\u模块
id:缓存节点模块
用途:行动/cache@v2
与:
路径:节点\单元模块
键:节点模块-${{hashFiles('package-lock.json')}
-名称:testmysql 5
运行:npm运行测试mysql
环境:
DOCKER_MYSQL_标签:5
-名称:testmysql 8
运行:npm运行测试mysql
环境:
DOCKER_MYSQL_标签:8
考研生:
运行于:ubuntu最新版本
需要:设置
步骤:
-名称:签出存储库代码
用途:行动/checkout@v2
-名称:安装节点
用途:操作/设置-node@v2
与:
节点版本:“12”
-名称:还原节点\u模块
id:缓存节点模块
用途:行动/cache@v2
与:
路径:节点\单元模块
键:节点模块-${{hashFiles('package-lock.json')}
-姓名:考试博士后10
运行:npm运行测试postgres
环境:
DOCKER_POSTGRES_标签:10
-姓名:考试博士后11
运行:npm运行测试postgres
环境:
DOCKER_POSTGRES_标签:11
-姓名:考试后12
运行:npm运行测试postgres
环境:
DOCKER_POSTGRES_标签:12
测试项目:
运行于:ubuntu最新版本
需要:设置
步骤:
-名称:签出存储库代码
用途:行动/checkout@v2
-名称:安装节点
用途:操作/设置-node@v2
与:
节点版本:“12”
-名称:还原节点\u模块
id:缓存节点模块
用途:行动/cache@v2
与:
路径:节点\单元模块
键:节点模块-${{hashFiles('package-lock.json')}
-名称:试验10.4
运行:npm运行测试
环境:
DOCKER_MARIADB_标签:10.4.12
测试_mssql:
运行于:ubuntu最新版本
需要:设置
步骤:
-名称:签出存储库代码
用途:行动/checkout@v2
-名称:安装节点
用途:操作/设置-node@v2
与:
节点版本:“12”
-名称:还原节点\u模块
id:缓存节点模块
用途:行动/cache@v2
与:
路径:节点\单元模块
键:节点模块-${{hashFiles('package-lock.json')}
-名称:测试MSSQL 2017
运行:npm运行测试mssql
环境:
DOCKER_MSSQL_标签:2017-CU17-ubuntu
-名称:测试MSSQL 2019
运行:npm运行测试mssql
环境:
DOCKER_MSSQL_标签:2019最新
测试_sqlite:
运行于:ubuntu最新版本
需要:设置
步骤:
-名称:签出存储库代码
用途:行动/checkout@v2
-名称:安装节点
用途:操作/设置-node@v2
与:
节点版本:“12”
-名称:还原节点\u模块
id:缓存节点模块
用途:行动/cache@v2
与:
路径:节点\单元模块
键:节点模块-${{hashFiles('package-lock.json')}
-名称:测试SQLite
运行:npm运行测试sqlite
出版:
运行于:ubuntu最新版本
需求:[测试mysql、测试postgres、测试mariadb、测试mssql、测试sqlite]
步骤:
-名称:签出存储库代码
用途:行动/checkout@v2
-名称:安装节点
用途:操作/设置-node@v2
与:
节点版本:“12”
-名称:还原节点\u模块
id:缓存节点模块
用途:行动/cache@v2
与:
路径:节点\单元模块
键:节点模块-${{hashFiles('package-lock.json')}
-名称:Build
运行:npm运行构建
-名称:检查版本更改
用法:EndBug/version-check@v1
id:支票
-名称:发布
if:steps.check.outputs.changed=='true'和&github.ref=='refs/heads/master'
运行:|
npm集合注册表“https://registry.npmjs.org"
npm set//registry.npmjs.org/:_authToken${{secrets.npm_PUBLISH_TOKEN}
npm发布

如果您想共享的步骤中有
使用
,目前看来是不可能的

这件事应该由我们来处理

复合运行步骤目前支持什么?

对于复合操作中的每个运行步骤,我们支持:

  • 名字
  • 身份证
  • 环境
  • 工作目录
此外,我们支持在整个操作过程中映射输入和输出

有关更多信息,请参阅文档

复合运行步骤不支持什么

我们现在不支持设置条件、出错时继续、超时分钟、“使用”,以及复合操作中单个步骤的秘密


我看了你的工作。他们每个人都有
需求:设置
。不是吗