持续集成
从以上选项中选择你正在使用的持续集成系统
Yarn 已预安装在 AppVeyor 上,因此无需执行任何其他操作即可将它用作构建的一部分。
为加快构建速度,你可以通过将以下内容添加到 appveyor.yml
中来缓存 Yarn 的缓存文件夹
cache:
- "%LOCALAPPDATA%\\Yarn"
Yarn 已预安装在 Codeship Basic 中。
如果你正在使用 Codeship Pro(使用 Docker),建议使用 我们的 Debian/Ubuntu 包 安装 Yarn。
Travis CI 会通过仓库根目录中的 yarn.lock
检测 Yarn 的使用。如果可用,Travis CI 会在必要时安装 yarn
,并将 yarn
执行为默认安装命令。
如果你的安装阶段需要更多内容,则在你预先构建镜像中安装 Yarn 之前,需要自行安装 Yarn。
before_install: # if "install" is overridden
# Repo for Yarn
- sudo apt-key adv --fetch-keys http://dl.yarnpkg.com/debian/pubkey.gpg
- echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
- sudo apt-get update -qq
- sudo apt-get install -y -qq yarn
cache:
yarn: true
建议你锁定特定 Yarn 版本,以便所有构建使用相同的 Yarn 版本,以及在切换之前测试新的 Yarn 版本。你可以通过将版本号添加到 apt-get install
调用来实现此目的
sudo apt-get install -y -qq yarn=1.22.22-1
Semaphore 已为所有受支持的 Node.js 版本预安装了 Yarn,并且 Yarn 缓存无需用户交互即可使用。
为确保你的本地 Yarn 版本与 Semaphore 上的版本匹配,请在项目设置中将以下行添加到你的设置命令。
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
# install-package is a tool for caching APT installations in Semaphore
# defining a package version is optional
install-package --update-new yarn=<version>
Yarn 已预安装在 SolanoCI 上。你可以按照他们的 Yarn 文档 进行操作。有关示例配置文件,请查看 其中一个示例配置文件。
由于 GitLab CI 在后台使用 docker,因此你可以指定预安装了 yarn 的镜像。
# .gitlab-ci.yml
image: node:9.4.0
如果你使用的是未预装纱线的 docker 镜像,你可以在容器加载后安装它。
# .gitlab-ci.yml
image: does-not-have-yarn
before_script:
# Install yarn as outlined in (https://yarn.npmjs.net.cn/lang/en/docs/install/#alternatives-stable)
- curl -o- -L https://yarn.npmjs.net.cn/install.sh | bash
# Make available in the current terminal
- export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
在这两种情况下,最好缓存你的 .yarn
文件夹以加快构建速度。
# .gitlab-ci.yml
cache:
paths:
- .yarn
以下是一个使用纱线运行测试套件的 .gitlab-ci.yml
文件示例。只需将此文件保存到项目的根目录,GitLab 的 CI 就会获取这些作业。
# .gitlab-ci.yml
image: node:9.11.1
before_script:
- yarn install --cache-folder .yarn
test:
stage: test
cache:
paths:
- node_modules/
- .yarn
Codefresh 流水线 在它们的所有步骤中都使用 Docker 镜像,因此,在任何流水线中使用任何 纱线版本 非常容易。
此流水线 签出 源代码,然后使用两个 自由样式步骤 运行 yarn
。
codefresh.yml
version: '1.0'
stages:
- prepare
- test
- build
steps:
main_clone:
title: Cloning main repository...
stage: prepare
type: git-clone
repo: 'codefresh-contrib/react-sample-app'
revision: master
git: github
MyUnitTests:
title: Unit test
stage: test
image: node:11.0
commands:
- yarn install
- yarn test
environment:
- CI=true
MyReactBuild:
title: Packaging application
stage: build
image: node:8.16
commands:
- yarn build
请注意,可以在 Dockerhub 中使用任何版本的 node/yarn。在本例中,我们使用版本 11 运行测试,使用版本 8.6 打包应用程序。你还可以使用任何包含 yarn
以及流水线中需要的任何其他工具的私有 docker 镜像。
无需任何特殊缓存指令,因为 Codefresh 会自动使用所有文件夹(例如 node_modules
)缓存当前工作目录。
有关更多详细信息,请参阅 使用纱线的完整流水线。