好的,我正在为我正在处理的网站设置以下设置:
网站架构:
示例文件树
.
├── 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对于这类事情是一个很好的解决方案,因为我可以在我自己的服务器上托管它。我知道我的问题可能太复杂了,你不能在这里写一个完整的教程,但我需要一些指导,概述如何处理这个过程,一些好的读取也会受到赞赏。
答案 0 :(得分:1)
有很多方法可以回答这个问题,我可以从头脑中想到5。但为了时间和空间的利益,让我给你最好的答案。
我认为使用docker可以更好地实现这一目标。此链接将帮助您获得该方面的设置。接下来,您需要docker plugin for jenkins
现在让我们配置您的项目。
你需要做一个自由式搭建。输入git存储库信息和凭据后,您需要配置构建本身。作为旁注,我将配置工作空间在每个构建时删除,以便package.json依赖项不会占用构建主机上的空间。 现在构建配置。我想你有一个存放工件的地方所以我的步骤是使用神器:
artifactory-npmrc
.npmrc
现在正如你所说,还有更多内容,我会更愿意与你合作完成这项工作。如果您有任何疑问,请随时询问
#!/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