Jenkins 上的 RPM 构建在更新的模拟版本上失败,而不是在成功的工作站上进行模拟

智者

我正在尝试基于来自另一个比我更早编写的项目的规范文件样板构建和部署来自 Jenkins 的 RPM 包。由于某些原因,当我尝试从 Jenkins 内部构建或发布这个包时,我遇到了构建错误。

+ rm -rf /builddir/build/BUILDROOT/component-prefix-blah-api-proxy-0.1.0.16-1.bbc.el7.x86_64
BUILDSTDERR: ++ dirname /builddir/build/BUILDROOT/component-prefix-blah-api-proxy-0.1.0.16-1.bbc.el7.x86_64
RPM build errors:
BUILDSTDERR: error: File not found by glob: /builddir/build/BUILDROOT/component-prefix-blah-api-proxy-0.1.0.16-1.bbc.el7.x86_64/var/www/cgi-bin/*
BUILDSTDERR:     File not found by glob: /builddir/build/BUILDROOT/component-prefix-blah-api-proxy-0.1.0.16-1.bbc.el7.x86_64/var/www/cgi-bin/*
Child return code was: 1
EXCEPTION: [Error()]
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/mockbuild/trace_decorator.py", line 96, in trace
    result = func(*args, **kw)
  File "/usr/lib/python2.7/site-packages/mockbuild/util.py", line 734, in do_with_status
    raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode)
Error: Command failed: 
 # /usr/bin/systemd-nspawn -q -M b88888b933974fe283e8497d165b5369 -D /var/lib/mock/epel-7-x86_64-9876/root --capability=cap_ipc_lock --bind=/tmp/mock-resolv.kXeD1i:/etc/resolv.conf --setenv=LANG=en_GB.UTF-8 --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOSTNAME=mock --setenv=PROMPT_COMMAND=printf "\033]0;<mock-chroot>\007" --setenv=HOME=/builddir --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin --setenv=PS1=<mock-chroot> \s-\v\$  -u mockbuild bash --login -c /usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/blah-api-proxy.spec

在 RPM build.log 文件中,还有一个比上述错误更早出现的错误,我认为这不是主要错误,因为我之前在其他运行良好的构建中看到过这种情况

BUILDSTDERR: Failed to create directory /var/lib/mock/epel-7-x86_64-9876/root//sys/fs/selinux: Read-only file system

我尝试在执行模拟时设置 --old-chroot 标志。但是,我开始收到两个错误 -

ERROR: Exception(/var/lib/jenkins/workspace/component-prefix-blah-api-proxy/blah-api-proxy/SRPMS/component-prefix-blah-api-proxy-0.1.0.15-1.bbc.el7.src.rpm) Config(epel-7-x86_64) 0 minutes 11 seconds

 # bash --login -c /usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/blah-api-proxy.spec
Version: 0.1.0%{?BUILD_NUMBER:.%{BUILD_NUMBER}}
Release: 1%{?dist}
Group: System Environment/Daemons
License: Internal COY use only
Summary: BLAH API Proxy
Source0: src.tar.gz
Requires: blah-blah-ssl-services-blah-staff jq
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildArch: x86_64

%description
BLAH API Proxy

%prep
%setup -q -n src

%build

%install
mkdir -p %{buildroot}
cp -r * %{buildroot}/

%clean
rm -rf %{buildroot}

%pre

%files
%defattr(0755, root, root, 0755)
/var/www/cgi-bin/*

%defattr(-, root, root, 0755)
/etc/bake-scripts/*

%defattr(0755, root, root, 0755)
/etc/bake-scripts/blah-api-proxy

注意:blah-api-proxy是一个包含 Apache 代理服务器配置的目录。

src文件夹结构如下:

src/
├── etc
│   └── bake-scripts
│       ├── blah-api-proxy
│       └── public-endpoints
└── var
    └── www
        └── cgi-bin

如果我在解决此问题时得到帮助,我将不胜感激。非常感谢您提前。

智者

我非常感谢@msuchy 对这个问题的帮助。他的建议帮助我快速确定了根本原因。

问题是文件从 git 存储库中排除/var/%files部分中指定的目录之一文件中删除目录解决了这个问题spec file.gitignore.gitignore

我们所做的另一件事是在我们的发布系统(不是 Jenkins)中指定我们的规范文件所依赖的 rpm 存储库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Mac上打开RPM?

来自分类Dev

使用最新 jenkins 构建的 RPM 部署失败

来自分类Dev

在Fedora上构建Docker RPM

来自分类Dev

在Fedora上构建Docker RPM

来自分类Dev

在CentOS上降级RPM版本

来自分类Dev

RPM 无法在 RHEL 上安装

来自分类Dev

使用rpm构建在Oracle Linux(RedHat)上构建简单的RPM

来自分类Dev

Jenkins构建在Windows上失败并显示GitLockFailedException

来自分类Dev

在Windows上为Linux CentOS构建RPM

来自分类Dev

Maven构建在Jenkins上失败,但在本地计算机上工作

来自分类Dev

使用Cygwin在Windows上构建RPM,但在Linux上安装

来自分类Dev

如何在Ubuntu上安装.rpm?

来自分类Dev

无法在centos linux上获取rpm oracle

来自分类Dev

在Arch Linux上安装RPM文件?

来自分类Dev

如何在Guix上安装rpm?

来自分类Dev

在rpm包上的Ubuntu上安装jdk

来自分类Dev

jenkins将在rpm安装作业期间因错误而失败

来自分类Dev

Jenkins构建因Windows上的GitLockFailedException而失败

来自分类Dev

在Windows上备份Jenkins失败

来自分类Dev

在Jenkins上Git安装失败

来自分类Dev

如果先前在 Jenkins 中失败,则阻止构建在同一节点上运行

来自分类Dev

如何在Red Hat Enterprise Linux上从RPM数据库中提取RPM

来自分类Dev

Linux rpm -Uvh(错误:无法在/var/lib/rpm/__db.000上创建事务锁定)?

来自分类Dev

使用`alien`在Debian上安装rpm软件包,还是只用`rpm`安装?

来自分类Dev

允许 RPM 在其他 RPM 的文件上安装文件吗?

来自分类Dev

通过Jenkins上的脚本在节点上永久运行后台进程,并让Jenkins成功构建

来自分类Dev

Jenkins上的Maven Jod LifecyclePhaseNotFoundException

来自分类Dev

Jenkins 上的 Groovy:绘图插件

来自分类Dev

%config(noreplace)文件上发生意外的RPM冲突

Related 相关文章

热门标签

归档