当前位置: 首页 > 面试题库 >

正确使用stash \ unstash到其他目录

杜烨伟
2023-03-14
问题内容

在我的一个阶段中,我需要在构建完成后复制两个文件夹的内容并将其复制到另一个目录。

我实际上是在将自由式作业转换为管道,并且一直在使用工件部署程序插件。通读一遍,似乎隐藏和取消隐藏命令应该可以帮助我实现目标。

有人可以验证这是否是下面的正确方法吗?

stage('Build') {
      steps {
        sh '''
          gulp set-staging-node-env
          gulp prepare-staging-files
          gulp webpack
        '''
        stash includes: '/dist/**/*', name: 'builtSources'
        stash includes: '/config/**/*', name: 'appConfig'
        dir('/some-dir') {
          unstash 'builtSources'
          unstash 'appConfig'
        }
      }
    }

如果我在一个阶段中更改dir,是否意味着此后所有其他阶段都将尝试从该目录执行命令,或者它们是否又回到使用工作区默认位置?

谢谢

编辑

我已经意识到我真正想要做的是将构建的源复制到另一个节点(运行另一个OS)。因此,在我的代码段中,我共享了要切换目录的目录,该目录实际上位于我设置的另一台计算机(节点)上。

我需要dir()node('my-node-name')块包装块吗?我正在努力寻找例子。

谢谢


问题答案:

我希望它是这样的:

stash includes: 'dist/**/*', name: 'builtSources'

stash includes: 'config/**/*', name: 'appConfig'

其中dist和config是工作空间路径中的目录,因此它应该是上面的相对路径。

休息似乎还不错,仅提及路径“ / some-dir”应该由jenkins用户(用于运行jenkins守护程序的用户)可写。

是的,当它退出dir块时,它会退回到其随后的工作空间路径(在本例中为默认)。

编辑

因此,当您存储路径时,可以在管道的任何后续步骤中取消隐藏该路径。是的,您可以将dir块放在块下node('<nodename>')

您可以添加如下内容:

stage('Move the Build'){
  node('datahouse'){
    dir('/opt/jenkins_artifacts'){
      unstash 'builtSources'
      unstash 'appConfig'
    }
  }
}


 类似资料:
  • 本文向大家介绍git stash 和unstash的使用操作,git unstash failed,包括了git stash 和unstash的使用操作,git unstash failed的使用技巧和注意事项,需要的朋友参考一下 场景如下,你正在开发需求1时,突然线上发现了一个bug,需要立即修复。需求1的代码因为不完善,也没经过测试,所以你希望针对需求1所做的修改先暂时隐藏,这样就可以使用 s

  • 问题内容: 我已经阅读了http://docs.docker.com/engine/reference/builder/#add,但是遇到了问题。我想将本地目录复制到docker 我试过了: 和: 也: 但是,我看到以下错误消息,但是本地目录中确实包含。 问题答案: 将本地目录的 内容 复制到docker映像目录中。 复制使用中的目录本身: 要么

  • 问题内容: 我知道显而易见的答案是使用virtualenv和virtualenvwrapper,但是由于种种原因,我不能/不想这样做。 那么我该如何修改命令 使pip软件包安装在默认位置以外的地方site-packages? 问题答案: 采用: 你可能还想–使用此新的前缀来强制重新安装所有依赖项。你可以–多次使用以添加可以使用的任何选项(–prefix可能是你想要的,但是可以使用更多选项)。

  • 我有一个文件夹,其中有一个。dat文件和一个是。zip文件,我必须移动。将文件压缩到另一个目录 我有两个文件夹,一个是 请建议如何实现这一点,我现在所做的是。。。

  • 问题内容: 首先,我要说我是Ant的新手。就像之前一样,我只是在两天前才开始学习它以完成此任务。 我想要做的是创建一个“ master”蚂蚁脚本,该脚本调用其他几个蚂蚁脚本。例如: 现在,我拥有用于​​A,B和C的所有单独版本。通过这个,我的意思是我可以从这些文件夹中的任何一个运行“ ant”,它将构建项目并生成一个jar文件。如果以这种方式构建A,B和C,则我有3个jar文件。然后,我可以将它们

  • 问题内容: 我在数组列表中有hashbles。 这里的信息包含我的哈希表。我如何才能将此“信息”对象转换为其他类/意图? 谢谢… 问题答案: 创建一个延伸的类与 对 Custom.java 传递到下一个活动。 在下一个活动中检索