如何使用Jenkins部署网站
How to use Jenkins to deploy a website
好的,所以我对我正在使用的网站进行了以下设置:
- 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
目录中,但它们是添加到 .gitignore
以免污染存储库。
这应该如何发生?
我打了git push
。 GitLab 触发一个 Web Hook 到我的 Jenkins 实例(我知道如何完成这个)。 Jenkins 在 工作目录 中克隆存储库,获取并安装所有依赖项,运行s 服务器端测试和 transpiles/compiles 所有资源,删除所有开发资源(*.scss
、/dev-res/*.js
、composer.json
、package.json
)。
我认为 Jenkins 是解决此类问题的好方法,因为我可以将其托管在自己的服务器上。我知道我的问题可能太复杂了,您无法在这里写一整篇 教程 ,但我需要一些指导,一个应该如何处理这个过程的大纲以及一些好的读物也将不胜感激.
有很多方法可以回答这个问题,我真的可以想到 5 个。但是为了节省时间和 space 让我给你我最好的答案。
我认为使用 docker. This link will help you get setup with that aspect. Next, you will need the docker plugin for jenkins
会更好
现在让我们配置您的项目。
您将需要进行自由式构建。输入 git 存储库信息和凭据后,您将需要配置构建本身。作为旁注,我会配置 workspace 在每次构建时删除,这样 package.json 依赖项就不会杀死构建主机上的 space。
现在构建配置。我想你有一个地方可以存储你的工件,所以我的步骤使用的是 artifactory:
- 在 Jenkins 中创建新的构建作业很简单:只需单击 Jenkins 仪表板上的“新建作业”菜单项即可。
- 自由式构建作业是通用构建作业,它提供了最大的灵活性。
- 您还可以复制现有作业,这是创建与现有构建作业非常相似的新作业的好方法,除了一些配置细节。 ...
- 添加源代码管理
- 选择Git
- 添加您的存储库link
- Select 适当的凭据
- Select 合适的分支
- 构建环境
- 在构建开始前检查删除工作space
- 检查提供配置文件
- 选择
artifactory-npmrc
- 在目标字段中输入:
.npmrc
- 构建
- 添加构建步骤
- 完成菜单并select执行shell
- 输入以下命令:
正如您所说,这还有很多其他内容,我会更愿意与您合作完成这项工作。如果您有任何问题,请随时提问
#!/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
- Select 应用然后 select 保存
- 在仪表板的左侧选择“立即构建”
好的,所以我对我正在使用的网站进行了以下设置:
- 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
目录中,但它们是添加到 .gitignore
以免污染存储库。
这应该如何发生?
我打了git push
。 GitLab 触发一个 Web Hook 到我的 Jenkins 实例(我知道如何完成这个)。 Jenkins 在 工作目录 中克隆存储库,获取并安装所有依赖项,运行s 服务器端测试和 transpiles/compiles 所有资源,删除所有开发资源(*.scss
、/dev-res/*.js
、composer.json
、package.json
)。
我认为 Jenkins 是解决此类问题的好方法,因为我可以将其托管在自己的服务器上。我知道我的问题可能太复杂了,您无法在这里写一整篇 教程 ,但我需要一些指导,一个应该如何处理这个过程的大纲以及一些好的读物也将不胜感激.
有很多方法可以回答这个问题,我真的可以想到 5 个。但是为了节省时间和 space 让我给你我最好的答案。
我认为使用 docker. This link will help you get setup with that aspect. Next, you will need the docker plugin for jenkins
会更好现在让我们配置您的项目。
您将需要进行自由式构建。输入 git 存储库信息和凭据后,您将需要配置构建本身。作为旁注,我会配置 workspace 在每次构建时删除,这样 package.json 依赖项就不会杀死构建主机上的 space。 现在构建配置。我想你有一个地方可以存储你的工件,所以我的步骤使用的是 artifactory:
- 在 Jenkins 中创建新的构建作业很简单:只需单击 Jenkins 仪表板上的“新建作业”菜单项即可。
- 自由式构建作业是通用构建作业,它提供了最大的灵活性。
- 您还可以复制现有作业,这是创建与现有构建作业非常相似的新作业的好方法,除了一些配置细节。 ...
- 添加源代码管理
- 选择Git
- 添加您的存储库link
- Select 适当的凭据
- Select 合适的分支
- 构建环境
- 在构建开始前检查删除工作space
- 检查提供配置文件
- 选择
artifactory-npmrc
- 在目标字段中输入:
.npmrc
- 选择
- 构建
- 添加构建步骤
- 完成菜单并select执行shell
- 输入以下命令:
正如您所说,这还有很多其他内容,我会更愿意与您合作完成这项工作。如果您有任何问题,请随时提问
#!/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
- Select 应用然后 select 保存
- 在仪表板的左侧选择“立即构建”