如何使用Jenkins部署网站

时间:2016-03-08 22:19:47

标签: javascript jenkins babeljs jenkins-workflow

好的,我正在为我正在处理的网站设置以下设置:

  • GitLab上的git存储库(如果重要)
  • 与我的域名相关联的生产服务器

网站架构:

  • Hack和HHVM(我必须为其运行单元测试)
  • Babel(需要在部署时编译为JavaScript)
  • SCSS(需要在部署时转换为CSS)
  • 配置文件,也需要在部署时进行调整

示例文件树

.
├── index.html
├── bin
|   └── my Hack scripts
├── dev-res 
|   ├── style (SCSS files)
|   └── js (Babel JS files)
├── res
|   ├── style (transpiled css files)
|   ├── js (compiled Babel JS files)
|   └── other resosurces
├── tests/
├── vendor/
├── node_modules/
├── Gulpfile.js
├── package.json
├── composer.json
└── .gitignore 

这是我计算机中项目的假设文件树(因此,用于开发的文件树)。所以我有composer.json和Composer依赖项,我有package.json和节点模块,我有未编译的SCSS和Babel JS文件。

对于开发和本地测试,将安装所有依赖项,并将所有这些原始资源编译并保存在res目录中,但它们会添加到{{ 1}}以免污染存储库。

应该如何发生?

我点击了.gitignore。 GitLab触发了一个Web Hook到我的Jenkins实例(我知道如何实现这一点)。 Jenkins在工作目录中克隆存储库,获取并安装所有依赖项,运行服务器端测试并转换/编译所有资源,删除所有开发资源(git push,{{ 1}},*.scss/dev-res/*.js)。

我认为Jenkins对于这类事情是一个很好的解决方案,因为我可以在我自己的服务器上托管它。我知道我的问题可能太复杂了,你不能在这里写一个完整的教程,但我需要一些指导,概述如何处理这个过程,一些好的读取也会受到赞赏。

1 个答案:

答案 0 :(得分:1)

有很多方法可以回答这个问题,我可以从头脑中想到5。但为了时间和空间的利益,让我给你最好的答案。

我认为使用docker可以更好地实现这一目标。此链接将帮助您获得该方面的设置。接下来,您需要docker plugin for jenkins

现在让我们配置您的项目。

你需要做一个自由式搭建。输入git存储库信息和凭据后,您需要配置构建本身。作为旁注,我将配置工作空间在每个构建时删除,以便package.json依赖项不会占用构建主机上的空间。 现在构建配置。我想你有一个存放工件的地方所以我的步骤是使用神器:

  1. 在Jenkins中创建新的构建作业很简单:只需单击Jenkins仪表板上的“新建作业”菜单项即可。
    • Freestyle构建作业是通用构建作业,可提供最大的灵活性。
    • 您还可以复制现有作业,这是创建与现有构建作业非常相似的新作业的好方法,除了一些配置详细信息。 ...
  2. 添加源代码管理
    • 选择Git
    • 添加您的存储库链接
    • 选择适当的凭据
    • 选择适当的分支
  3. 构建环境
    • 在构建开始之前检查删除工作区
    • 选中“提供配置文件”
      • 选择artifactory-npmrc
      • 在目标字段中输入:.npmrc
  4. 生成
    • 添加构建步骤
    • 完成菜单并选择执行shell
    • 输入以下命令:
  5. 现在正如你所说,还有更多内容,我会更愿意与你合作完成这项工作。如果您有任何疑问,请随时询问

    #!/bin/bash
    
    npm install --registry=http://artifactory.com:8081/artifactory/api/npm/npm-virtual
    npm publish --registry=http://artifactory.com:8081/artifactory/api/npm/npm-private
    
    1. 选择“应用”,然后选择“保存”
    2. 在信息中心左侧选择立即构建