qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v5 1/4] Jobs based on custom runners: documentation and confi


From: Cleber Rosa
Subject: Re: [PATCH v5 1/4] Jobs based on custom runners: documentation and configuration placeholder
Date: Tue, 23 Feb 2021 11:47:18 -0500

On Tue, Feb 23, 2021 at 05:37:04PM +0100, Philippe Mathieu-Daudé wrote:
> On 2/23/21 12:25 PM, Thomas Huth wrote:
> > On 19/02/2021 22.58, Cleber Rosa wrote:
> >> As described in the included documentation, the "custom runner" jobs
> >> extend the GitLab CI jobs already in place.  One of their primary
> >> goals of catching and preventing regressions on a wider number of host
> >> systems than the ones provided by GitLab's shared runners.
> >>
> >> This sets the stage in which other community members can add their own
> >> machine configuration documentation/scripts, and accompanying job
> >> definitions.  As a general rule, those newly added contributed jobs
> >> should run as "non-gating", until their reliability is verified (AKA
> >> "allow_failure: true").
> >>
> >> Signed-off-by: Cleber Rosa <crosa@redhat.com>
> >> ---
> >>   .gitlab-ci.d/custom-runners.yml | 14 ++++++++++++++
> >>   .gitlab-ci.yml                  |  1 +
> >>   docs/devel/ci.rst               | 28 ++++++++++++++++++++++++++++
> >>   docs/devel/index.rst            |  1 +
> >>   4 files changed, 44 insertions(+)
> >>   create mode 100644 .gitlab-ci.d/custom-runners.yml
> >>   create mode 100644 docs/devel/ci.rst
> >>
> >> diff --git a/.gitlab-ci.d/custom-runners.yml
> >> b/.gitlab-ci.d/custom-runners.yml
> >> new file mode 100644
> >> index 0000000000..3004da2bda
> >> --- /dev/null
> >> +++ b/.gitlab-ci.d/custom-runners.yml
> >> @@ -0,0 +1,14 @@
> >> +# The CI jobs defined here require GitLab runners installed and
> >> +# registered on machines that match their operating system names,
> >> +# versions and architectures.  This is in contrast to the other CI
> >> +# jobs that are intended to run on GitLab's "shared" runners.
> >> +
> >> +# Different than the default approach on "shared" runners, based on
> >> +# containers, the custom runners have no such *requirement*, as those
> >> +# jobs should be capable of running on operating systems with no
> >> +# compatible container implementation, or no support from
> >> +# gitlab-runner.  To avoid problems that gitlab-runner can cause while
> >> +# reusing the GIT repository, let's enable the recursive submodule
> >> +# strategy.
> >> +variables:
> >> +  GIT_SUBMODULE_STRATEGY: recursive
> > 
> > Is it really necessary? I thought our configure script would take care
> > of the submodules?
>

I've done a lot of testing on bare metal systems, and the problems
that come from reusing the same system and failed cleanups can be very
frustrating.  It's unfortunate that we need this, but it was the
simplest and most reliable solution I found.  :/

Having said that, I noticed after I posted this series that this is
affecting all other jobs.  We don't need it that in the jobs based
on containers (for obvious reasons), so I see two options:

1) have it enabled on all jobs for consistency

2) have it enabled only on jobs that will reuse the repo

> Well, if there is a failure during the first clone (I got one network
> timeout in the middle) then next time it doesn't work:
> 
> Updating/initializing submodules recursively...
> Synchronizing submodule url for 'capstone'
> Synchronizing submodule url for 'dtc'
> Synchronizing submodule url for 'meson'
> Synchronizing submodule url for 'roms/QemuMacDrivers'
> Synchronizing submodule url for 'roms/SLOF'
> Synchronizing submodule url for 'roms/edk2'
> Synchronizing submodule url for
> 'roms/edk2/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3'
> Synchronizing submodule url for
> 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli'
> Synchronizing submodule url for
> 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/research/esaxx'
> Synchronizing submodule url for
> 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/research/libdivsufsort'
> Synchronizing submodule url for
> 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl'
> Synchronizing submodule url for
> 'roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli'
> Synchronizing submodule url for
> 'roms/edk2/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma'
> Synchronizing submodule url for
> 'roms/edk2/UnitTestFrameworkPkg/Library/CmockaLib/cmocka'
> Synchronizing submodule url for 'roms/ipxe'
> Synchronizing submodule url for 'roms/openbios'
> Synchronizing submodule url for 'roms/opensbi'
> Synchronizing submodule url for 'roms/qboot'
> Synchronizing submodule url for 'roms/qemu-palcode'
> Synchronizing submodule url for 'roms/seabios'
> Synchronizing submodule url for 'roms/seabios-hppa'
> Synchronizing submodule url for 'roms/sgabios'
> Synchronizing submodule url for 'roms/skiboot'
> Synchronizing submodule url for 'roms/u-boot'
> Synchronizing submodule url for 'roms/u-boot-sam460ex'
> Synchronizing submodule url for 'roms/vbootrom'
> Synchronizing submodule url for 'slirp'
> Synchronizing submodule url for 'tests/fp/berkeley-softfloat-3'
> Synchronizing submodule url for 'tests/fp/berkeley-testfloat-3'
> Synchronizing submodule url for 'ui/keycodemapdb'
> Entering 'capstone'
> Entering 'dtc'
> Entering 'meson'
> Entering 'roms/QemuMacDrivers'
> Entering 'roms/SLOF'
> Entering 'roms/edk2'
> Entering 'roms/edk2/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3'
> Entering 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli'
> Entering 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/research/esaxx'
> Entering
> 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/research/libdivsufsort'
> Entering 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl'
> Entering 'roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli'
> Entering 'roms/edk2/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma'
> Entering 'roms/edk2/UnitTestFrameworkPkg/Library/CmockaLib/cmocka'
> Entering 'roms/ipxe'
> Entering 'roms/openbios'
> Entering 'roms/opensbi'
> Entering 'roms/qboot'
> Entering 'roms/qemu-palcode'
> Entering 'roms/seabios'
> Entering 'roms/seabios-hppa'
> Entering 'roms/sgabios'
> Entering 'roms/skiboot'
> Entering 'roms/u-boot'
> Entering 'roms/u-boot-sam460ex'
> Entering 'roms/vbootrom'
> Entering 'slirp'
> Entering 'tests/fp/berkeley-softfloat-3'
> Entering 'tests/fp/berkeley-testfloat-3'
> Entering 'ui/keycodemapdb'
> Entering 'capstone'
> HEAD is now at f8b1b833 fix CS_ mips_ OP structure comment error (#1674)
> Entering 'dtc'
> HEAD is now at 85e5d83 Makefile: when building libfdt only, do not add
> unneeded deps
> Entering 'meson'
> HEAD is now at 776acd2a8 Bump versions to 0.55.3 for release
> Entering 'roms/QemuMacDrivers'
> HEAD is now at 90c488d Merge pull request #3 from
> mcayland/fix/unbreak-256-color-mode
> Entering 'roms/SLOF'
> HEAD is now at e18ddad version: update to 20200717
> Entering 'roms/edk2'
> HEAD is now at 06dc822d04 Revert ".pytool/EccCheck: Disable Ecc error
> code 10014 for open CI"
> Entering 'roms/edk2/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3'
> HEAD is now at b64af41 Fix typo in function
> 'softfloat_propagateNaNF128M' for RISC-V.
> Entering 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli'
> HEAD is now at 666c328 Make types of variable match (#796)
> Entering 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/research/esaxx'
> HEAD is now at ca7cb33 move to git
> Entering
> 'roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/research/libdivsufsort'
> HEAD is now at 5f60d6f Merge pull request #7 from kloetzl/master
> Entering 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl'
> Entering 'roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli'
> HEAD is now at 63be8a9 unichr was removed in Python 3 because all str
> are Unicode (#877)
> Entering 'roms/edk2/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma'
> HEAD is now at b2c1da6 add ONIG_OPTION_CALLBACK_EACH_MATCH test
> Entering 'roms/edk2/UnitTestFrameworkPkg/Library/CmockaLib/cmocka'
> HEAD is now at 160dffe Don't use non-literal format strings
> Entering 'roms/ipxe'
> HEAD is now at 4bd064de [build] Fix building on older versions of gcc
> Entering 'roms/openbios'
> HEAD is now at 7f28286 PPC: mark first 4 pages of physical and virtual
> memory as unavailable
> Entering 'roms/opensbi'
> HEAD is now at a98258d include: Bump-up version to 0.8
> Entering 'roms/qboot'
> HEAD is now at a5300c4 qboot: Disable PIE for ELF binary build step
> Entering 'roms/qemu-palcode'
> HEAD is now at bf0e136 Report machine checks to the kernel
> Entering 'roms/seabios'
> HEAD is now at 155821a docs: Note v1.14.0 release
> Entering 'roms/seabios-hppa'
> HEAD is now at 73b740f7 parisc: Set text planes and used_bits in STI fields
> Entering 'roms/sgabios'
> HEAD is now at cbaee52 SGABIOS: fix wrong video attrs for int 10h, ah==13h
> Entering 'roms/skiboot'
> HEAD is now at 3a6fdede skiboot v6.4 release notes
> Entering 'roms/u-boot'
> HEAD is now at d3689267f9 Prepare v2019.01
> Entering 'roms/u-boot-sam460ex'
> HEAD is now at 60b3916 Add README to clarify relation to U-Boot and
> ACube's version
> Entering 'roms/vbootrom'
> HEAD is now at 0c37a43 Merge pull request #1 from google/disable-build-id
> Entering 'slirp'
> HEAD is now at 8f43a99 Merge branch 'stable-4.2' into 'stable-4.2'
> Entering 'tests/fp/berkeley-softfloat-3'
> HEAD is now at b64af41 Fix typo in function
> 'softfloat_propagateNaNF128M' for RISC-V.
> Entering 'tests/fp/berkeley-testfloat-3'
> HEAD is now at 5a59dce fail: constify fail_programName
> Entering 'ui/keycodemapdb'
> HEAD is now at 6119e6e Fix scan codes for Korean keys
> fatal: Needed a single revision
> Unable to find current revision in submodule path
> 'roms/edk2/CryptoPkg/Library/OpensslLib/openssl'
> Failed to recurse into submodule path 'roms/edk2'
> ERROR: Job failed: exit status 1
> 

Yes, I've also found similar issues during my jobs.

Regards,
- Cleber.

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]