小编Ash*_*ley的帖子

在 Github 中启用组织级别的分支保护规则

是否可以在 Github 中的组织级别启用分支保护规则,以便该组织的所有存储库部分为应用的分支继承这些规则。现在,在每个 repo 的基础上为同一组分支启用这些相同的规则集真的很麻烦。

github github-api branching-strategy

6
推荐指数
1
解决办法
3271
查看次数

在 JenkinsFile 中只声明一次 configFileProvider 并从所有阶段引用

我正在尝试为我们的管道自动化设置脚本化的 JenkinsFile,并希望将 configFileProvider 用于 maven。因此,我最终在脚本化的 JenkinsFile 中的所有 maven 阶段定义了这个块。有没有办法在脚本中只定义一次并在所有阶段引用它。我的示例 JenkinsFile 现在看起来像这样:-

node {
   
   
   def mvnHome
   def mvnSettings
   
   stage('Prepare') {
      mvnHome = tool 'maven-3.5.4'

   }

   stage('Checkout') {
      checkout scm
   }
   
   stage('Build'){
      configFileProvider(
        [configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
        sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS install"
      }
   }
   
   stage('Integration Test') {
   
   
       sh "'${mvnHome}/bin/mvn' -Dmaven.test.failure.ignore clean verify"
   }
   
   stage('Sonar') {
      configFileProvider(
        [configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
   		sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS sonar:sonar"
		}
   }

   stage('Packaging') {
      configFileProvider(
        [configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
        sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS package" …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-plugins jenkins-groovy jenkins-pipeline

5
推荐指数
1
解决办法
280
查看次数

如何在 Redhat Linux 7* 中的现有 Docker 安装上切换到不同的存储驱动程序

我在 /etc/sysconfig/docker 下有以下配置:-

other_args="--insecure-registry ******** -g /apps/var/lib"

现在我在 Red Hat Enterprise Linux Server 版本 7.4 上使用 docker 版本 17.03.1-ce 并使用默认存储驱动程序作为覆盖,这导致了许多构建问题,原因是:-

checksum_type:链接太多

在互联网上做了一些研究后发现,要摆脱这个问题,最好的解决方案是使用overlay2驱动程序。

如何编辑 /etc/sysconfig/docker 以将存储驱动程序包含为 overlay2. 我尝试了很多方法,但没有一个有效。我不想重新安装,所以在这里寻找最简单的方法,可以让我切换到overlay2存储驱动程序。我确信 docker 工具足够强大,可以允许对现有安装进行此类修改。

一如既往,我们将不胜感激。

daemon docker dockerhub

4
推荐指数
1
解决办法
6951
查看次数

kubectl 命令修补 kubernetes 存储类中的特定属性

我有以下 Kubernetes 存储类

Name:            encrypted-gp2
IsDefaultClass:  No
Annotations:     kubectl.kubernetes.io/last-applied-configuration={"allowVolumeExpansion":true,"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"encrypted-gp2"},"parameters":{"encrypted":"true","fsType":"ext4","type":"gp2"},"provisioner":"kubernetes.io/aws-ebs","volumeBindingMode":"WaitForFirstConsumer"}

Provisioner:           kubernetes.io/aws-ebs
Parameters:            encrypted=true,fsType=ext4,type=gp2
AllowVolumeExpansion:  True
MountOptions:          <none>
ReclaimPolicy:         Delete
VolumeBindingMode:     WaitForFirstConsumer
Events:                <none>
Run Code Online (Sandbox Code Playgroud)

现在我只想为 ReclaimPolicy 属性修补这个存储类,以便 ReclaimPolicy 切换到 Retain

在这种情况下,我正在寻找特定的补丁命令。

kubernetes

3
推荐指数
1
解决办法
475
查看次数

如何从 groovy Jenkinsfile 中的 xml 文件读取 xml 属性

我有一个如下所示的 XML 文件:-

<?xml version="1.0" encoding="UTF-8"?>
<properties>
<Targets>
   <Target>
      <branch>develop</branch>
      <env>dev</env>
   </Target>
   <Target>
      <branch>master</branch>
      <env>prod</env>
   </Target>
</Targets>
</properties>
Run Code Online (Sandbox Code Playgroud)

现在我想从脚本化的 Jenkinsfile (groovy) 中的该文件中读取第一个分支和第二个分支的值以及第一个环境和第二个环境。有没有办法解析此 XML,然后提取 groovy 脚本化 Jenkinsfile 中分支和环境的实际值?

xml groovy jenkins jenkins-groovy jenkins-pipeline

3
推荐指数
1
解决办法
6800
查看次数

Jenkins 脚本化管道中的分支说明符正则表达式

假设我想在同一脚本化管道下为不同分支定义管道,如何为某些分支模式定义正则表达式。举例来说:-

if(env.BRANCH_NAME ==~ /release.*/){
	 stage("Deploy"){
		echo 'Deployed release to QA'
	 }
Run Code Online (Sandbox Code Playgroud)

在这里,我想以这种方式为模式的任何分支定义该正则表达式

(意味着其中包含发布字符串的任何分支)。如何实现这一目标?

同样如何实现类似的目标:-

如果分支不是开发、掌握、发布(模式)。

regex groovy jenkins jenkins-pipeline

2
推荐指数
1
解决办法
8644
查看次数

Terraform 计划自动化中的人类可读输出

我已经通过 github/jenkins 设置了一个自动化,以通过 jenkins 发布 repo 的 terraform 计划的输出,作为对 github 中拉取请求的评论。整个编排效果很好,除了 terraform plan 的输出不是人类可读的,并且在这种自动化中没有为您提供在终端中运行时的样子。我使用了几种方法,例如将 terraform show 用于计划文件,然后将其抓取到自定义文件中并将其作为评论发布到 GitHub PR 中。在每种情况下,输出都包含一些二进制字符。

我什至使用了 terraform-plan-parser https://github.com/lifeomic/terraform-plan-parser 但这不适用于 terraform 0.12 并且与以下问题有关:- https://github.com/lifeomic /terraform-plan-parser/issues/31

在自动化中检索任何 terraform 计划的输出以便可以引用它的最佳方法是什么,但是需要在应用完成之前进行检查。在我看来,它只适用于终端。

这里的任何帮助或建议将一如既往地受到高度赞赏。

terraform devops

2
推荐指数
1
解决办法
4554
查看次数

Dockerfile 的入口点仅来自基础映像

我有一个非常简单的 Dockerfile,如下所示:-

FROM my-base-image
COPY abc.properties /opt/conf/
Run Code Online (Sandbox Code Playgroud)

现在我的基本图像有一个 docker 入口点(在它的 Dockerfile 的末尾),但是你可以看到这个结果图像没有。这是否有效,或者我们是否需要在任何给定的 Dockerfile 中有一个 docker 入口点/CMD。还有结果图像中 COPY 指令的执行顺序是什么。我的意思是因为这个 Dockerfile 没有入口点,它会从基础镜像执行一个,但是会在 COPY 指令之后执行还是首先执行基础镜像入口点,然后在容器启动时执行这个 COPY 指令只是寻找概念在码头。

docker dockerfile docker-entrypoint

2
推荐指数
1
解决办法
1490
查看次数

根据它们的年龄删除指定路径下的 artifactory 中的 artifact

我需要为我在 artifactory 中的一个仓库中删除超过特定天数的工件版本。我的意思是,假设我的人工 url 存储库是:-

https://artifactory.mycompany.com/artifactory/myrepo/
Run Code Online (Sandbox Code Playgroud)

在该存储库下,几乎没有名称模式为 abc-*-xyz 的文件夹,这意味着这些文件夹的完全限定路径为:-

https://artifactory.mycompany.com/artifactory/myrepo/abc-1-xyz
https://artifactory.mycompany.com/artifactory/myrepo/abc-2-xyz
https://artifactory.mycompany.com/artifactory/myrepo/abc-3-xyz
Run Code Online (Sandbox Code Playgroud)

现在在这些文件夹中的每一个下都存储了我只想删除的实际版本化工件文件夹,这意味着整个版本文件夹例如两个网址的:-

https://artifactory.mycompany.com/artifactory/myrepo/abc-1-xyz/ver_11
https://artifactory.mycompany.com/artifactory/myrepo/abc-1-xyz/ver_12
https://artifactory.mycompany.com/artifactory/myrepo/abc-2-xyz/ver_3
https://artifactory.mycompany.com/artifactory/myrepo/abc-2-xyz/ver_5
Run Code Online (Sandbox Code Playgroud)
因此,如果这些文件夹 ver_* 超过 30 天,我想将它们删除。只有这些 ver_* 文件夹不是 abc-*-xyz 等

我可以看到下面的 stackoverflow 问题,并且能够使其适用于该用例,但无法为我的用例构建 AQL,因此我可以拥有相应的规范文件,该文件可用于删除我在此处需要的内容。

Artifactory 删除所有超过 6 个月的工件

任何帮助我构建 AQL 文件,然后是可以调用以进行实际删除的规范文件的任何帮助,将一如既往地受到高度赞赏。

artifactory artifactory-query-lang

1
推荐指数
1
解决办法
1197
查看次数