好的,我对我正在开发的网站进行了以下设置:
- 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 触发到我的 Jenkins 实例的 Web Hook(我知道如何完成此操作)。 Jenkins 将存储库克隆到工作目录中,获取并安装所有依赖项,运行服务器端测试并转换/编译所有资源,删除所有开发资源(*.scss
、/dev-res/*.js
、composer.json
、package.json
)。
我认为 Jenkins 将是解决此类问题的一个很好的解决方案,因为我可以将它托管在我自己的服务器上。我知道我的问题可能太复杂,您无法在这里编写完整的教程,但我需要一些指导、如何处理此过程的概述,以及一些好的阅读 Material ,我们将不胜感激。
最佳答案
有很多方法可以回答这个问题,我可以从字面上想到 5 个。但出于时间和空间的考虑,让我给你我最好的答案。
我认为使用docker可以更好地实现这一点。此链接将帮助您进行这方面的设置。接下来,您将需要 docker plugin for jenkins
现在让我们配置您的项目。
您需要进行自由式构建。输入 git 存储库信息和凭据后,您将需要配置构建本身。作为旁注,我会将工作区配置为在每次构建时删除,以便 package.json 依赖项不会占用构建主机上的空间。 现在是构建配置。我想你有一个存储工件的地方,所以我的步骤是使用工件:
- 在 Jenkins 中创建新的构建作业非常简单:只需单击 Jenkins 仪表板上的“新作业”菜单项即可。
- 自由式构建作业是通用构建作业,可提供最大的灵活性。
- 您还可以复制现有作业,这是创建与现有构建作业非常相似的新作业的好方法,除了一些配置详细信息之外。 ...
- 添加您的源代码管理
- 选择 Git
- 添加您的存储库链接
- 选择适当的凭据
- 选择适当的分支
- 构建环境
- 选中构建开始前删除工作区
- 检查提供配置文件
- 选择
artifactory-npmrc
- 在“目标”字段中输入:
.npmrc
- 选择
- 构建
- 添加构建步骤
- 完成菜单并选择“执行 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
- 选择“应用”,然后选择“保存”
- 在仪表板左侧选择“立即构建”
关于javascript - 如何使用Jenkins部署网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35879176/