我们的项目嵌套在单一存储库中。想象一下,我们在“projects”文件夹中有一个项目。例如“项目/我们的项目”。好吧,我们希望能够将我们的 .drone.yml 检查到“我们的项目”中,但看起来 Drone 想要项目根目录下的配置文件,这没关系,我们可以通过更改“命令”部分。我们遇到的麻烦是我们只想在“我们的项目”中的某些内容发生变化时运行构建。我找不到用 Drone 精确做到这一点的方法,所以我们下一个最接近的赌注是条件,我想我们可以为“我们的项目”创建命名空间的所有分支,比如“我们的项目/某个分支”。然后我们可以设置一个条件,只在“our-project/some-branch”和“master”上运行构建,这将限制我们从其他项目分支运行的“假构建”的数量:
build:
when:
branch:
- master
- our-project/*
Run Code Online (Sandbox Code Playgroud)
问题是当我们尝试将请求从“our-project/ ”分支拉到“master”时,构建不会运行,我猜是因为它是在不在 master 或“我们的”中的合并提交上运行的-项目/ “
我的问题有两个方面:1. 使用单存储库模式(多个项目,一个存储库)利用无人机的最佳方法是什么 2. 如果 Drone 不支持该模式或不是为它设计的,那么什么是限制“假构建”的最佳解决方法
注意:我们可以在构建开始时检查子文件夹中的更改,如果没有则返回绿色。我这是推荐的方法吗?
我希望我的webpack构建的输出在编译我的服务工作者时被定义为变量.
我想使用子编译功能来编译放在不同路径中的服务工作者.我需要从webpack编译发出的输出来正确编译服务工作者.
我最初的尝试是使用与创建子编译器的offline-plugin相同的策略,但我需要能够更改服务工作者的输出路径.服务工作者路径很重要,因为它定义了范围.
我想知道如何使用子编译器API来完成下面的工作,以防止我的构建产生这种副作用(希望它会给我webpack-dev-server支持.
var webpack = require('webpack');
function ServiceWorkerPlugin(options) {
this.options = options;
}
ServiceWorkerPlugin.prototype.apply = function(compiler) {
compiler.plugin('emit', (compilation, callback) => {
const stats = compilation.getStats().toJson();
const child = webpack(this.options);
child.apply(
new webpack.DefinePlugin({
assets: stats.assets
})
);
child.run((err, swStats) => {
if (err) {
callback(err);
}
const swStatsJson = swStats.toJson();
if(swStatsJson.errors.length > 0) {
console.log(swStatsJson.errors);
}
if(swStatsJson.warnings.length > 0) {
console.log(swStatsJson.warnings);
}
callback();
});
module.exports = ServiceWorkerPlugin;
Run Code Online (Sandbox Code Playgroud) 尝试使用docker-compose来构建和创建一个简单的Node.js应用程序.虽然我遇到了Django应用程序的同样问题,但我想我只是错过了一些重要的步骤.这是我的Dockerfile:
FROM node:4.2.1
CMD mkdir -p /var/app
COPY . /var/app
EXPOSE 3000
CMD node /var/app/index.js
Run Code Online (Sandbox Code Playgroud)
当我运行docker compose up指向数字海洋机器时,它会抛出一个节点错误,表明它无法在/ var/app中找到代码.是否有一些其他机制我应该用来将我的代码放到除了docker之外的机器上?