All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/5] Bring all testings in gitlab and travis CI to Azure Pipelines
@ 2019-10-27 12:28 Bin Meng
  2019-10-27 12:28 ` [U-Boot] [PATCH 1/5] tools: buildman: Honor output directory when generating boards.cfg Bin Meng
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Bin Meng @ 2019-10-27 12:28 UTC (permalink / raw)
  To: u-boot

At present we have set up a Microsoft Azure Pipelines to build
U-Boot host tools for Windows. We can expand it to cover all the
CI testing in gitlab and travis CI.

There are issues if we use the 'container' keyword in the pipeline,
that buildman seems to not able to exit correctly and hangs forever.
So we manually call docker to run the image to perform the CI tasks.
Unfortunately with above configuration, the uboot user inside the
container does not have the write permission to the U-Boot git repo,
and this exposes several issues in the U-Boot build process.

With all such issues fixed, a complete run on Azure Pipelines takes
about 2 hours and 10 minutes. It seems to be a good backup for the
free travis CI service.

This series depends on
http://patchwork.ozlabs.org/project/uboot/list/?series=138998

and is avaiable at u-boot-x86/azure for testing.


Bin Meng (5):
  tools: buildman: Honor output directory when generating boards.cfg
  tools: buildman: Remove useless mkdir() in Make() in test.py
  arm: mvebu: Avoid generating kwbimage.cfg in the source tree
  .travis.yml: Remove the unneeded '&' for ls20xx buildman
  Bring all testings in gitlab and travis CI to Azure Pipelines

 .azure-pipelines.yml                 | 382 +++++++++++++++++++++++++++++++++++
 .travis.yml                          |   2 +-
 Makefile                             |  15 +-
 arch/arm/mach-mvebu/Makefile         |   4 +-
 board/Marvell/db-88f6281-bp/Makefile |   4 +-
 board/Marvell/db-xc3-24g4xg/Makefile |   4 +-
 board/mikrotik/crs305-1g-4s/Makefile |   4 +-
 tools/buildman/control.py            |  10 +-
 tools/buildman/test.py               |   9 +-
 9 files changed, 410 insertions(+), 24 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 1/5] tools: buildman: Honor output directory when generating boards.cfg
  2019-10-27 12:28 [U-Boot] [PATCH 0/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
@ 2019-10-27 12:28 ` Bin Meng
  2019-10-27 12:28 ` [U-Boot] [PATCH 2/5] tools: buildman: Remove useless mkdir() in Make() in test.py Bin Meng
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 13+ messages in thread
From: Bin Meng @ 2019-10-27 12:28 UTC (permalink / raw)
  To: u-boot

buildman always generates boards.cfg in the U-Boot source tree.
When '-o' is given, we should generate boards.cfg to the given
output directory.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---

 tools/buildman/control.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index fcf531c..9787b86 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -201,14 +201,14 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
 
     # Work out what subset of the boards we are building
     if not boards:
-        board_file = os.path.join(options.git, 'boards.cfg')
-        status = subprocess.call([os.path.join(options.git,
-                                                'tools/genboardscfg.py')])
+        board_file = os.path.join(options.output_dir, 'boards.cfg')
+        genboardscfg = os.path.join(options.git, 'tools/genboardscfg.py')
+        status = subprocess.call([genboardscfg, '-o', board_file])
         if status != 0:
-                sys.exit("Failed to generate boards.cfg")
+            sys.exit("Failed to generate boards.cfg")
 
         boards = board.Boards()
-        boards.ReadBoards(os.path.join(options.git, 'boards.cfg'))
+        boards.ReadBoards(board_file)
 
     exclude = []
     if options.exclude:
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 2/5] tools: buildman: Remove useless mkdir() in Make() in test.py
  2019-10-27 12:28 [U-Boot] [PATCH 0/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
  2019-10-27 12:28 ` [U-Boot] [PATCH 1/5] tools: buildman: Honor output directory when generating boards.cfg Bin Meng
@ 2019-10-27 12:28 ` Bin Meng
  2019-10-27 12:31   ` Bin Meng
  2019-10-27 12:28 ` [U-Boot] [PATCH 3/5] arm: mvebu: Avoid generating kwbimage.cfg in the source tree Bin Meng
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Bin Meng @ 2019-10-27 12:28 UTC (permalink / raw)
  To: u-boot

In the 'Make' function, the codes tries to create a directory
if current stage is 'build'. But the directory isn't used at
all anywhere.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---

 tools/buildman/test.py | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/tools/buildman/test.py b/tools/buildman/test.py
index de02f61..0dd8516 100644
--- a/tools/buildman/test.py
+++ b/tools/buildman/test.py
@@ -22,6 +22,7 @@ import commit
 import terminal
 import test_util
 import toolchain
+from terminal import Print
 
 use_network = True
 
@@ -156,14 +157,6 @@ class TestBuild(unittest.TestCase):
             result.return_code = commit.return_code
             result.stderr = (''.join(commit.error_list)
                 % {'basedir' : base_dir + '/.bm-work/00/'})
-        if stage == 'build':
-            target_dir = None
-            for arg in args:
-                if arg.startswith('O='):
-                    target_dir = arg[2:]
-
-            if not os.path.isdir(target_dir):
-                os.mkdir(target_dir)
 
         result.combined = result.stdout + result.stderr
         return result
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 3/5] arm: mvebu: Avoid generating kwbimage.cfg in the source tree
  2019-10-27 12:28 [U-Boot] [PATCH 0/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
  2019-10-27 12:28 ` [U-Boot] [PATCH 1/5] tools: buildman: Honor output directory when generating boards.cfg Bin Meng
  2019-10-27 12:28 ` [U-Boot] [PATCH 2/5] tools: buildman: Remove useless mkdir() in Make() in test.py Bin Meng
@ 2019-10-27 12:28 ` Bin Meng
  2019-10-27 20:14   ` Chris Packham
  2019-10-28  5:07   ` Stefan Roese
  2019-10-27 12:28 ` [U-Boot] [PATCH 4/5] .travis.yml: Remove the unneeded '&' for ls20xx buildman Bin Meng
  2019-10-27 12:28 ` [U-Boot] [PATCH 5/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
  4 siblings, 2 replies; 13+ messages in thread
From: Bin Meng @ 2019-10-27 12:28 UTC (permalink / raw)
  To: u-boot

At present some boards generate kwbimage.cfg in the source tree
during the build. This breaks buildman testing on some systems
where the source tree is read-only. Update makefile rules to
generate it in the build tree instead.

Note some other boards have the kwbimage.cfg file written in
advance, hence we need check if the file exists in the build
tree first, otherwise we fall back to one in the source tree.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---

 Makefile                             | 15 +++++++++++++--
 arch/arm/mach-mvebu/Makefile         |  4 ++--
 board/Marvell/db-88f6281-bp/Makefile |  4 ++--
 board/Marvell/db-xc3-24g4xg/Makefile |  4 ++--
 board/mikrotik/crs305-1g-4s/Makefile |  4 ++--
 5 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/Makefile b/Makefile
index e78b317..61b94c5 100644
--- a/Makefile
+++ b/Makefile
@@ -1276,10 +1276,21 @@ endif
 
 MKIMAGEFLAGS_u-boot-dtb.img = $(MKIMAGEFLAGS_u-boot.img)
 
-MKIMAGEFLAGS_u-boot.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
+# Some boards have the kwbimage.cfg file written in advance, while some
+# other boards generate it on the fly during the build in the build tree.
+# Let's check if the file exists in the build tree first, otherwise we
+# fall back to use the one in the source tree.
+KWD_CONFIG_FILE = $(shell \
+	if [ -f $(objtree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) ]; then \
+		echo -n $(objtree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%); \
+	else \
+		echo -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%); \
+	fi)
+
+MKIMAGEFLAGS_u-boot.kwb = -n $(KWD_CONFIG_FILE) \
 	-T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE)
 
-MKIMAGEFLAGS_u-boot-spl.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
+MKIMAGEFLAGS_u-boot-spl.kwb = -n $(KWD_CONFIG_FILE) \
 	-T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \
 	$(if $(KEYDIR),-k $(KEYDIR))
 
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
index 8228a17..b739520 100644
--- a/arch/arm/mach-mvebu/Makefile
+++ b/arch/arm/mach-mvebu/Makefile
@@ -58,10 +58,10 @@ KWB_REPLACE += SEC_FUSE_DUMP
 KWB_CFG_SEC_FUSE_DUMP = a38x
 endif
 
-$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
+$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
 		include/config/auto.conf
 	$(Q)sed -ne '$(foreach V,$(KWB_REPLACE),s/^#@$(V)/$(V) $(KWB_CFG_$(V))/;)p' \
-	<$< >$(dir $<)$(@F)
+	<$< >$(dir $@)$(@F)
 
 endif # CONFIG_SPL_BUILD
 obj-y	+= gpio.o
diff --git a/board/Marvell/db-88f6281-bp/Makefile b/board/Marvell/db-88f6281-bp/Makefile
index e6aa7e3..003e9f6 100644
--- a/board/Marvell/db-88f6281-bp/Makefile
+++ b/board/Marvell/db-88f6281-bp/Makefile
@@ -4,9 +4,9 @@ obj-y	:= db-88f6281-bp.o
 extra-y := kwbimage.cfg
 
 quiet_cmd_sed = SED     $@
-      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
+      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
 
 SEDFLAGS_kwbimage.cfg = -e "s/^\#@BOOT_FROM.*/BOOT_FROM	$(if $(CONFIG_CMD_NAND),nand,spi)/"
-$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
+$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
 		include/config/auto.conf
 	$(call if_changed,sed)
diff --git a/board/Marvell/db-xc3-24g4xg/Makefile b/board/Marvell/db-xc3-24g4xg/Makefile
index 4dd5790..24e8200 100644
--- a/board/Marvell/db-xc3-24g4xg/Makefile
+++ b/board/Marvell/db-xc3-24g4xg/Makefile
@@ -6,9 +6,9 @@ obj-y	:= db-xc3-24g4xg.o
 extra-y	:= kwbimage.cfg
 
 quiet_cmd_sed = SED     $@
-      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
+      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
 
 SEDFLAGS_kwbimage.cfg =-e "s|^BINARY.*|BINARY $(srctree)/$(@D)/binary.0 0000005b 00000068|"
-$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
+$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
 		include/config/auto.conf
 	  $(call if_changed,sed)
diff --git a/board/mikrotik/crs305-1g-4s/Makefile b/board/mikrotik/crs305-1g-4s/Makefile
index 895331b..c03f534 100644
--- a/board/mikrotik/crs305-1g-4s/Makefile
+++ b/board/mikrotik/crs305-1g-4s/Makefile
@@ -6,9 +6,9 @@ obj-y	:= crs305-1g-4s.o
 extra-y	:= kwbimage.cfg
 
 quiet_cmd_sed = SED     $@
-      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
+      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
 
 SEDFLAGS_kwbimage.cfg =-e "s|^BINARY.*|BINARY $(srctree)/$(@D)/binary.0 0000005b 00000068|"
-$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
+$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
 		include/config/auto.conf
 	  $(call if_changed,sed)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 4/5] .travis.yml: Remove the unneeded '&' for ls20xx buildman
  2019-10-27 12:28 [U-Boot] [PATCH 0/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
                   ` (2 preceding siblings ...)
  2019-10-27 12:28 ` [U-Boot] [PATCH 3/5] arm: mvebu: Avoid generating kwbimage.cfg in the source tree Bin Meng
@ 2019-10-27 12:28 ` Bin Meng
  2019-10-28 13:44   ` Tom Rini
  2019-10-27 12:28 ` [U-Boot] [PATCH 5/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
  4 siblings, 1 reply; 13+ messages in thread
From: Bin Meng @ 2019-10-27 12:28 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---

 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index a3e7451..3aaed93 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -200,7 +200,7 @@ matrix:
         - BUILDMAN="freescale&aarch64&ls108"
     - name: "buildman NXP AArch64 LS20xx"
       env:
-        - BUILDMAN="freescale&aarch64&&ls20"
+        - BUILDMAN="freescale&aarch64&ls20"
     - name: "buildman NXP AArch64 LX216x"
       env:
         - BUILDMAN="freescale&aarch64&lx216"
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 5/5] Bring all testings in gitlab and travis CI to Azure Pipelines
  2019-10-27 12:28 [U-Boot] [PATCH 0/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
                   ` (3 preceding siblings ...)
  2019-10-27 12:28 ` [U-Boot] [PATCH 4/5] .travis.yml: Remove the unneeded '&' for ls20xx buildman Bin Meng
@ 2019-10-27 12:28 ` Bin Meng
  2019-10-28 13:44   ` Tom Rini
  4 siblings, 1 reply; 13+ messages in thread
From: Bin Meng @ 2019-10-27 12:28 UTC (permalink / raw)
  To: u-boot

This expands current Azure Pipelines Windows host tools build
testing to cover all the CI testing in gitlab and travis CI.

Note for some unknown reason, the 'container' cannot be used for
any jobs that have buildman, for buildman does not exit properly
and hangs the job forever. As a workaround, we manually call
docker to run the image to perform the CI tasks.

A complete run on Azure Pipelines takes about 2 hours and 10
minutes.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

---
See the build result at:
https://dev.azure.com/bmeng/GitHub/_build/results?buildId=109

 .azure-pipelines.yml | 382 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 382 insertions(+)

diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml
index 6c6b24e..d476d8d 100644
--- a/.azure-pipelines.yml
+++ b/.azure-pipelines.yml
@@ -1,5 +1,12 @@
 variables:
   windows_vm: vs2015-win2012r2
+  ubuntu_vm: ubuntu-18.04
+  ci_runner_image: trini/u-boot-gitlab-ci-runner:bionic-20190912.1-03Oct2019
+  # Add '-u 0' options for Azure pipelines, otherwise we get "permission
+  # denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
+  # since our $(ci_runner_image) user is not root.
+  container_option: -u 0
+  work_dir: /u
 
 jobs:
   - job: tools_only_windows
@@ -36,3 +43,378 @@ jobs:
           MSYSTEM: MSYS
           # Tell MSYS2 not to ‘cd’ our startup directory to HOME
           CHERE_INVOKING: yes
+
+  - job: cppcheck
+    displayName: 'Static code analysis with cppcheck'
+    pool:
+      vmImage: $(ubuntu_vm)
+    container:
+      image: $(ci_runner_image)
+      options: $(container_option)
+    steps:
+      - script: cppcheck --force --quiet --inline-suppr .
+
+  - job: todo
+    displayName: 'Search for TODO within source tree'
+    pool:
+      vmImage: $(ubuntu_vm)
+    container:
+      image: $(ci_runner_image)
+      options: $(container_option)
+    steps:
+      - script: grep -r TODO .
+      - script: grep -r FIXME .
+      - script: grep -r HACK . | grep -v HACKKIT
+
+  - job: sloccount
+    displayName: 'Some statistics about the code base'
+    pool:
+      vmImage: $(ubuntu_vm)
+    container:
+      image: $(ci_runner_image)
+      options: $(container_option)
+    steps:
+      - script: sloccount .
+
+  - job: maintainers
+    displayName: 'Ensure all configs have MAINTAINERS entries'
+    pool:
+      vmImage: $(ubuntu_vm)
+    container:
+      image: $(ci_runner_image)
+      options: $(container_option)
+    steps:
+      - script: |
+          if [ `./tools/genboardscfg.py -f 2>&1 | wc -l` -ne 0 ]; then exit 1; fi
+
+  - job: tools_only
+    displayName: 'Ensure host tools build'
+    pool:
+      vmImage: $(ubuntu_vm)
+    container:
+      image: $(ci_runner_image)
+      options: $(container_option)
+    steps:
+      - script: |
+          make tools-only_config tools-only -j$(nproc)
+
+  - job: envtools
+    displayName: 'Ensure env tools build'
+    pool:
+      vmImage: $(ubuntu_vm)
+    container:
+      image: $(ci_runner_image)
+      options: $(container_option)
+    steps:
+      - script: |
+          make tools-only_config envtools -j$(nproc)
+
+  - job: utils
+    displayName: 'Run binman, buildman, dtoc and patman testsuites'
+    pool:
+      vmImage: $(ubuntu_vm)
+    steps:
+      - script: |
+          cat << EOF > build.sh
+          set -ex
+          cd ${WORK_DIR}
+          EOF
+          cat << "EOF" >> build.sh
+          git config --global user.name "Azure Pipelines"
+          git config --global user.email bmeng.cn at gmail.com
+          export USER=azure
+          virtualenv /tmp/venv
+          . /tmp/venv/bin/activate
+          pip install pyelftools
+          export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/sandbox_spl
+          export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
+          export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}
+          ./tools/buildman/buildman -o /tmp -P sandbox_spl
+          ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test
+          ./tools/buildman/buildman -t
+          ./tools/dtoc/dtoc -t
+          ./tools/patman/patman --test
+          EOF
+          cat build.sh
+          # We cannot use "container" like other jobs above, as buildman
+          # seems to hang forever with pre-configured "container" environment
+          docker run -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/build.sh
+
+  - job: test_py
+    displayName: 'test.py'
+    pool:
+      vmImage: $(ubuntu_vm)
+    strategy:
+      matrix:
+        sandbox:
+          TEST_PY_BD: "sandbox"
+          BUILDMAN: "^sandbox$"
+        sandbox_spl:
+          TEST_PY_BD: "sandbox_spl"
+          TEST_PY_TEST_SPEC: "test_ofplatdata"
+          BUILDMAN: "^sandbox_spl$"
+        sandbox_flattree:
+          TEST_PY_BD: "sandbox_flattree"
+          BUILDMAN: "^sandbox_flattree$"
+        evb_ast2500:
+          TEST_PY_BD: "evb-ast2500"
+          TEST_PY_ID: "--id qemu"
+          BUILDMAN: "^evb-ast2500$"
+        vexpress_ca15_tc2:
+          TEST_PY_BD: "vexpress_ca15_tc2"
+          TEST_PY_ID: "--id qemu"
+          BUILDMAN: "^vexpress_ca15_tc2$"
+        vexpress_ca9x4:
+          TEST_PY_BD: "vexpress_ca9x4"
+          TEST_PY_ID: "--id qemu"
+          BUILDMAN: "^vexpress_ca9x4$"
+        integratorcp_cm926ejs:
+          TEST_PY_BD: "integratorcp_cm926ejs"
+          TEST_PY_ID: "--id qemu"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^integratorcp_cm926ejs$"
+        qemu_arm:
+          TEST_PY_BD: "qemu_arm"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu_arm$"
+        qemu_arm64:
+          TEST_PY_BD: "qemu_arm64"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu_arm64$"
+        qemu_mips:
+          TEST_PY_BD: "qemu_mips"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu_mips$"
+        qemu_mipsel:
+          TEST_PY_BD: "qemu_mipsel"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu_mipsel$"
+        qemu_mips64:
+          TEST_PY_BD: "qemu_mips64"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu_mips64$"
+        qemu_mips64el:
+          TEST_PY_BD: "qemu_mips64el"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu_mips64el$"
+        qemu_ppce500:
+          TEST_PY_BD: "qemu-ppce500"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu-ppce500$"
+        qemu_riscv64:
+          TEST_PY_BD: "qemu-riscv64"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu-riscv64$"
+        qemu_x86:
+          TEST_PY_BD: "qemu-x86"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu-x86$"
+        qemu_x86_64:
+          TEST_PY_BD: "qemu-x86_64"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^qemu-x86_64$"
+        zynq_zc702:
+          TEST_PY_BD: "zynq_zc702"
+          TEST_PY_ID: "--id qemu"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^zynq_zc702$"
+        xilinx_versal_virt:
+          TEST_PY_BD: "xilinx_versal_virt"
+          TEST_PY_ID: "--id qemu"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^xilinx_versal_virt$"
+        xtfpga:
+          TEST_PY_BD: "xtfpga"
+          TEST_PY_ID: "--id qemu"
+          TEST_PY_TEST_SPEC: "not sleep"
+          BUILDMAN: "^xtfpga$"
+    steps:
+      - script: |
+          cat << EOF > test.sh
+          set -ex
+          # make environment variables available as tests are running inside a container
+          export WORK_DIR="${WORK_DIR}"
+          export TEST_PY_BD="${TEST_PY_BD}"
+          export TEST_PY_ID="${TEST_PY_ID}"
+          export TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}"
+          export BUILDMAN="${BUILDMAN}"
+          EOF
+          cat << "EOF" >> test.sh
+          # the below corresponds to .gitlab-ci.yml "before_script"
+          cd ${WORK_DIR}
+          git clone --depth=1 git://github.com/swarren/uboot-test-hooks.git /tmp/uboot-test-hooks
+          ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname`
+          ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname`
+          virtualenv /tmp/venv
+          . /tmp/venv/bin/activate
+          pip install pytest==2.8.7
+          pip install python-subunit
+          pip install coverage
+          grub-mkimage --prefix=\"\" -o ~/grub_x86.efi -O i386-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd
+          grub-mkimage --prefix=\"\" -o ~/grub_x64.efi -O x86_64-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd
+          mkdir ~/grub2-arm
+          cd ~/grub2-arm; wget -O - http://download.opensuse.org/ports/armv7hl/distribution/leap/42.2/repo/oss/suse/armv7hl/grub2-arm-efi-2.02~beta2-87.1.armv7hl.rpm | rpm2cpio | cpio -di
+          mkdir ~/grub2-arm64
+          cd ~/grub2-arm64; wget -O - http://download.opensuse.org/ports/aarch64/distribution/leap/42.2/repo/oss/suse/aarch64/grub2-arm64-efi-2.02~beta2-87.1.aarch64.rpm | rpm2cpio | cpio -di
+          # the below corresponds to .gitlab-ci.yml "script"
+          cd ${WORK_DIR}
+          if [[ "${BUILDMAN}" != "" ]]; then
+              ret=0;
+              tools/buildman/buildman -o /tmp -P -E ${BUILDMAN} ${OVERRIDE} || ret=$?;
+              if [[ $ret -ne 0 && $ret -ne 129 ]]; then
+                  tools/buildman/buildman -o /tmp -sdeP ${BUILDMAN};
+                  exit $ret;
+              fi;
+          fi
+          export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/${TEST_PY_BD};
+          export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:/usr/bin:/bin;
+          export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci;
+          if [[ "${TEST_PY_BD}" != "" ]]; then
+              ./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID} -k "${TEST_PY_TEST_SPEC:-not a_test_which_does_not_exist}" --build-dir "$UBOOT_TRAVIS_BUILD_DIR";
+              ret=$?;
+              if [[ $ret -ne 0 ]]; then
+                  exit $ret;
+              fi;
+          fi
+          # the below corresponds to .gitlab-ci.yml "after_script"
+          rm -rf ~/grub2* /tmp/uboot-test-hooks /tmp/venv
+          EOF
+          cat test.sh
+          # make current directory writeable to uboot user inside the container
+          # as sandbox testing need create files like spi flash images, etc.
+          # (TODO: clean up this in the future)
+          chmod 777 .
+          docker run -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/test.sh
+
+  - job: build_the_world
+    displayName: 'Build the World'
+    pool:
+      vmImage: $(ubuntu_vm)
+    strategy:
+      # Use almost the same target division in .travis.yml, only merged
+      # 4 small build jobs (arc/microblaze/nds32/xtensa) into one.
+      matrix:
+        arc_microblaze_nds32_xtensa:
+          BUILDMAN: "arc microblaze nds32 xtensa"
+        arm11_arm7_arm920t_arm946es:
+          BUILDMAN: "arm11 arm7 arm920t arm946es"
+        arm926ejs:
+          BUILDMAN: "arm926ejs -x freescale,siemens,at91,kirkwood,spear,omap"
+        at91_non_armv7:
+          BUILDMAN: "at91 -x armv7"
+        at91_non_arm926ejs:
+          BUILDMAN: "at91 -x arm926ejs"
+        boundary_engicam_toradex:
+          BUILDMAN: "boundary engicam toradex"
+        arm_bcm:
+          BUILDMAN: "bcm -x mips"
+        nxp_arm32:
+          BUILDMAN: "freescale -x powerpc,m68k,aarch64"
+        nxp_aarch64_ls101x:
+          BUILDMAN: "freescale&aarch64&ls101"
+        nxp_aarch64_ls102x:
+          BUILDMAN: "freescale&aarch64&ls102"
+        nxp_aarch64_ls104x:
+          BUILDMAN: "freescale&aarch64&ls104"
+        nxp_aarch64_ls108x:
+          BUILDMAN: "freescale&aarch64&ls108"
+        nxp_aarch64_ls20xx:
+          BUILDMAN: "freescale&aarch64&ls20"
+        nxp_aarch64_lx216x:
+          BUILDMAN: "freescale&aarch64&lx216"
+        imx6:
+          BUILDMAN: "mx6 -x boundary,engicam,freescale,technexion,toradex"
+        imx:
+          BUILDMAN: "mx -x mx6,freescale,technexion,toradex"
+        keystone2_keystone3:
+          BUILDMAN: "k2 k3"
+        samsung_socfpga:
+          BUILDMAN: "samsung socfpga"
+        spear:
+          BUILDMAN: "spear"
+        sun4i:
+          BUILDMAN: "sun4i"
+        sun5i:
+          BUILDMAN: "sun5i"
+        sun6i:
+          BUILDMAN: "sun6i"
+        sun7i:
+          BUILDMAN: "sun7i"
+        sun8i_32bit:
+          BUILDMAN: "sun8i&armv7"
+        sun8i_64bit:
+          BUILDMAN: "sun8i&aarch64"
+        sun9i:
+          BUILDMAN: "sun9i"
+        sun50i:
+          BUILDMAN: "sun50i"
+        arm_catch_all:
+          BUILDMAN: "arm -x arm11,arm7,arm9,aarch64,at91,bcm,freescale,kirkwood,mvebu,siemens,tegra,uniphier,mx,samsung,sunxi,am33xx,omap,rockchip,toradex,socfpga,k2,k3,zynq"
+        sandbox_x86:
+          BUILDMAN: "sandbox x86"
+        technexion:
+          BUILDMAN: "technexion"
+        kirkwood:
+          BUILDMAN: "kirkwood"
+        mvebu:
+          BUILDMAN: "mvebu"
+        m68k:
+          BUILDMAN: "m68k"
+        mips:
+          BUILDMAN: "mips"
+        non_fsl_ppc:
+          BUILDMAN: "powerpc -x freescale"
+        mpc85xx_freescale:
+          BUILDMAN: "mpc85xx&freescale -x t208xrdb -x t4qds -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x b4860qds -x bsc91*"
+        t208xrdb_corenet_ds:
+          BUILDMAN: "t208xrdb corenet_ds"
+        fsl_ppc:
+          BUILDMAN: "t4qds b4860qds mpc83xx&freescale mpc86xx&freescale"
+        t102x:
+          BUILDMAN: "t102*"
+        p1_p2_rdb_pc:
+          BUILDMAN: "p1_p2_rdb_pc"
+        p1010rdb_bsc91:
+          BUILDMAN: "p1010rdb bsc91"
+        siemens:
+          BUILDMAN: "siemens"
+        tegra:
+          BUILDMAN: "tegra -x toradex"
+        am33xx_no_siemens:
+          BUILDMAN: "am33xx -x siemens"
+        omap:
+          BUILDMAN: "omap"
+        uniphier:
+          BUILDMAN: "uniphier"
+        aarch64_catch_all:
+          BUILDMAN: "aarch64 -x bcm,k3,tegra,ls1,ls2,mvebu,uniphier,sunxi,samsung,rockchip,versal,zynq"
+        rockchip:
+          BUILDMAN: "rockchip"
+        sh:
+          BUILDMAN: "sh -x arm"
+        zynq:
+          BUILDMAN: "zynq&armv7"
+        zynqmp_versal:
+          BUILDMAN: "versal|zynqmp&aarch64"
+        riscv:
+          BUILDMAN: "riscv"
+    steps:
+      - script: |
+          cat << EOF > build.sh
+          set -ex
+          cd ${WORK_DIR}
+          # make environment variables available as tests are running inside a container
+          export BUILDMAN="${BUILDMAN}"
+          EOF
+          cat << "EOF" >> build.sh
+          if [[ "${BUILDMAN}" != "" ]]; then
+              ret=0;
+              tools/buildman/buildman -o /tmp -P -E ${BUILDMAN} ${OVERRIDE} || ret=$?;
+              if [[ $ret -ne 0 && $ret -ne 129 ]]; then
+                  tools/buildman/buildman -o /tmp -sdeP ${BUILDMAN};
+                  exit $ret;
+              fi;
+          fi
+          EOF
+          cat build.sh
+          docker run -v $PWD:$(work_dir) $(ci_runner_image) /bin/bash $(work_dir)/build.sh
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 2/5] tools: buildman: Remove useless mkdir() in Make() in test.py
  2019-10-27 12:28 ` [U-Boot] [PATCH 2/5] tools: buildman: Remove useless mkdir() in Make() in test.py Bin Meng
@ 2019-10-27 12:31   ` Bin Meng
  0 siblings, 0 replies; 13+ messages in thread
From: Bin Meng @ 2019-10-27 12:31 UTC (permalink / raw)
  To: u-boot

On Sun, Oct 27, 2019 at 8:28 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> In the 'Make' function, the codes tries to create a directory
> if current stage is 'build'. But the directory isn't used at
> all anywhere.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> ---
>
>  tools/buildman/test.py | 9 +--------
>  1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/tools/buildman/test.py b/tools/buildman/test.py
> index de02f61..0dd8516 100644
> --- a/tools/buildman/test.py
> +++ b/tools/buildman/test.py
> @@ -22,6 +22,7 @@ import commit
>  import terminal
>  import test_util
>  import toolchain
> +from terminal import Print

Oops, this was added for debugging and should be removed ...

Will remove in v2.

>
>  use_network = True
>
> @@ -156,14 +157,6 @@ class TestBuild(unittest.TestCase):
>              result.return_code = commit.return_code
>              result.stderr = (''.join(commit.error_list)
>                  % {'basedir' : base_dir + '/.bm-work/00/'})
> -        if stage == 'build':
> -            target_dir = None
> -            for arg in args:
> -                if arg.startswith('O='):
> -                    target_dir = arg[2:]
> -
> -            if not os.path.isdir(target_dir):
> -                os.mkdir(target_dir)
>
>          result.combined = result.stdout + result.stderr
>          return result
> --

Regards,
Bin

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 3/5] arm: mvebu: Avoid generating kwbimage.cfg in the source tree
  2019-10-27 12:28 ` [U-Boot] [PATCH 3/5] arm: mvebu: Avoid generating kwbimage.cfg in the source tree Bin Meng
@ 2019-10-27 20:14   ` Chris Packham
  2019-10-28  5:07   ` Stefan Roese
  1 sibling, 0 replies; 13+ messages in thread
From: Chris Packham @ 2019-10-27 20:14 UTC (permalink / raw)
  To: u-boot

Hi Bin,

On Mon, 28 Oct 2019, 1:28 AM Bin Meng, <bmeng.cn@gmail.com> wrote:

> At present some boards generate kwbimage.cfg in the source tree
> during the build. This breaks buildman testing on some systems
> where the source tree is read-only. Update makefile rules to
> generate it in the build tree instead.
>
> Note some other boards have the kwbimage.cfg file written in
> advance, hence we need check if the file exists in the build
> tree first, otherwise we fall back to one in the source tree.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>

Reviewed-by: Chris Packham <judge.packham@gmail.com>

---
>
>  Makefile                             | 15 +++++++++++++--
>  arch/arm/mach-mvebu/Makefile         |  4 ++--
>  board/Marvell/db-88f6281-bp/Makefile |  4 ++--
>  board/Marvell/db-xc3-24g4xg/Makefile |  4 ++--
>  board/mikrotik/crs305-1g-4s/Makefile |  4 ++--
>  5 files changed, 21 insertions(+), 10 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index e78b317..61b94c5 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1276,10 +1276,21 @@ endif
>
>  MKIMAGEFLAGS_u-boot-dtb.img = $(MKIMAGEFLAGS_u-boot.img)
>
> -MKIMAGEFLAGS_u-boot.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
> +# Some boards have the kwbimage.cfg file written in advance, while some
> +# other boards generate it on the fly during the build in the build tree.
> +# Let's check if the file exists in the build tree first, otherwise we
> +# fall back to use the one in the source tree.
> +KWD_CONFIG_FILE = $(shell \
> +       if [ -f $(objtree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) ]; then \
> +               echo -n $(objtree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%); \
> +       else \
> +               echo -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%); \
> +       fi)
> +
> +MKIMAGEFLAGS_u-boot.kwb = -n $(KWD_CONFIG_FILE) \
>         -T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE)
>
> -MKIMAGEFLAGS_u-boot-spl.kwb = -n
> $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
> +MKIMAGEFLAGS_u-boot-spl.kwb = -n $(KWD_CONFIG_FILE) \
>         -T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \
>         $(if $(KEYDIR),-k $(KEYDIR))
>
> diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
> index 8228a17..b739520 100644
> --- a/arch/arm/mach-mvebu/Makefile
> +++ b/arch/arm/mach-mvebu/Makefile
> @@ -58,10 +58,10 @@ KWB_REPLACE += SEC_FUSE_DUMP
>  KWB_CFG_SEC_FUSE_DUMP = a38x
>  endif
>
> -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
> +$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
>                 include/config/auto.conf
>         $(Q)sed -ne '$(foreach V,$(KWB_REPLACE),s/^#@$(V)/$(V)
> $(KWB_CFG_$(V))/;)p' \
> -       <$< >$(dir $<)$(@F)
> +       <$< >$(dir $@)$(@F)
>
>  endif # CONFIG_SPL_BUILD
>  obj-y  += gpio.o
> diff --git a/board/Marvell/db-88f6281-bp/Makefile
> b/board/Marvell/db-88f6281-bp/Makefile
> index e6aa7e3..003e9f6 100644
> --- a/board/Marvell/db-88f6281-bp/Makefile
> +++ b/board/Marvell/db-88f6281-bp/Makefile
> @@ -4,9 +4,9 @@ obj-y   := db-88f6281-bp.o
>  extra-y := kwbimage.cfg
>
>  quiet_cmd_sed = SED     $@
> -      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
> +      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
>
>  SEDFLAGS_kwbimage.cfg = -e "s/^\#@BOOT_FROM.*/BOOT_FROM        $(if
> $(CONFIG_CMD_NAND),nand,spi)/"
> -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
> +$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
>                 include/config/auto.conf
>         $(call if_changed,sed)
> diff --git a/board/Marvell/db-xc3-24g4xg/Makefile
> b/board/Marvell/db-xc3-24g4xg/Makefile
> index 4dd5790..24e8200 100644
> --- a/board/Marvell/db-xc3-24g4xg/Makefile
> +++ b/board/Marvell/db-xc3-24g4xg/Makefile
> @@ -6,9 +6,9 @@ obj-y   := db-xc3-24g4xg.o
>  extra-y        := kwbimage.cfg
>
>  quiet_cmd_sed = SED     $@
> -      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
> +      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
>
>  SEDFLAGS_kwbimage.cfg =-e "s|^BINARY.*|BINARY $(srctree)/$(@D)/binary.0
> 0000005b 00000068|"
> -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
> +$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
>                 include/config/auto.conf
>           $(call if_changed,sed)
> diff --git a/board/mikrotik/crs305-1g-4s/Makefile
> b/board/mikrotik/crs305-1g-4s/Makefile
> index 895331b..c03f534 100644
> --- a/board/mikrotik/crs305-1g-4s/Makefile
> +++ b/board/mikrotik/crs305-1g-4s/Makefile
> @@ -6,9 +6,9 @@ obj-y   := crs305-1g-4s.o
>  extra-y        := kwbimage.cfg
>
>  quiet_cmd_sed = SED     $@
> -      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
> +      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
>
>  SEDFLAGS_kwbimage.cfg =-e "s|^BINARY.*|BINARY $(srctree)/$(@D)/binary.0
> 0000005b 00000068|"
> -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
> +$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
>                 include/config/auto.conf
>           $(call if_changed,sed)
> --
> 2.7.4
>
>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 3/5] arm: mvebu: Avoid generating kwbimage.cfg in the source tree
  2019-10-27 12:28 ` [U-Boot] [PATCH 3/5] arm: mvebu: Avoid generating kwbimage.cfg in the source tree Bin Meng
  2019-10-27 20:14   ` Chris Packham
@ 2019-10-28  5:07   ` Stefan Roese
  1 sibling, 0 replies; 13+ messages in thread
From: Stefan Roese @ 2019-10-28  5:07 UTC (permalink / raw)
  To: u-boot

On 27.10.19 13:28, Bin Meng wrote:
> At present some boards generate kwbimage.cfg in the source tree
> during the build. This breaks buildman testing on some systems
> where the source tree is read-only. Update makefile rules to
> generate it in the build tree instead.
> 
> Note some other boards have the kwbimage.cfg file written in
> advance, hence we need check if the file exists in the build
> tree first, otherwise we fall back to one in the source tree.
> 
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   Makefile                             | 15 +++++++++++++--
>   arch/arm/mach-mvebu/Makefile         |  4 ++--
>   board/Marvell/db-88f6281-bp/Makefile |  4 ++--
>   board/Marvell/db-xc3-24g4xg/Makefile |  4 ++--
>   board/mikrotik/crs305-1g-4s/Makefile |  4 ++--
>   5 files changed, 21 insertions(+), 10 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index e78b317..61b94c5 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1276,10 +1276,21 @@ endif
>   
>   MKIMAGEFLAGS_u-boot-dtb.img = $(MKIMAGEFLAGS_u-boot.img)
>   
> -MKIMAGEFLAGS_u-boot.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
> +# Some boards have the kwbimage.cfg file written in advance, while some
> +# other boards generate it on the fly during the build in the build tree.
> +# Let's check if the file exists in the build tree first, otherwise we
> +# fall back to use the one in the source tree.
> +KWD_CONFIG_FILE = $(shell \
> +	if [ -f $(objtree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) ]; then \
> +		echo -n $(objtree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%); \
> +	else \
> +		echo -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%); \
> +	fi)
> +
> +MKIMAGEFLAGS_u-boot.kwb = -n $(KWD_CONFIG_FILE) \
>   	-T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE)
>   
> -MKIMAGEFLAGS_u-boot-spl.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
> +MKIMAGEFLAGS_u-boot-spl.kwb = -n $(KWD_CONFIG_FILE) \
>   	-T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \
>   	$(if $(KEYDIR),-k $(KEYDIR))
>   
> diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
> index 8228a17..b739520 100644
> --- a/arch/arm/mach-mvebu/Makefile
> +++ b/arch/arm/mach-mvebu/Makefile
> @@ -58,10 +58,10 @@ KWB_REPLACE += SEC_FUSE_DUMP
>   KWB_CFG_SEC_FUSE_DUMP = a38x
>   endif
>   
> -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
> +$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
>   		include/config/auto.conf
>   	$(Q)sed -ne '$(foreach V,$(KWB_REPLACE),s/^#@$(V)/$(V) $(KWB_CFG_$(V))/;)p' \
> -	<$< >$(dir $<)$(@F)
> +	<$< >$(dir $@)$(@F)
>   
>   endif # CONFIG_SPL_BUILD
>   obj-y	+= gpio.o
> diff --git a/board/Marvell/db-88f6281-bp/Makefile b/board/Marvell/db-88f6281-bp/Makefile
> index e6aa7e3..003e9f6 100644
> --- a/board/Marvell/db-88f6281-bp/Makefile
> +++ b/board/Marvell/db-88f6281-bp/Makefile
> @@ -4,9 +4,9 @@ obj-y	:= db-88f6281-bp.o
>   extra-y := kwbimage.cfg
>   
>   quiet_cmd_sed = SED     $@
> -      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
> +      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
>   
>   SEDFLAGS_kwbimage.cfg = -e "s/^\#@BOOT_FROM.*/BOOT_FROM	$(if $(CONFIG_CMD_NAND),nand,spi)/"
> -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
> +$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
>   		include/config/auto.conf
>   	$(call if_changed,sed)
> diff --git a/board/Marvell/db-xc3-24g4xg/Makefile b/board/Marvell/db-xc3-24g4xg/Makefile
> index 4dd5790..24e8200 100644
> --- a/board/Marvell/db-xc3-24g4xg/Makefile
> +++ b/board/Marvell/db-xc3-24g4xg/Makefile
> @@ -6,9 +6,9 @@ obj-y	:= db-xc3-24g4xg.o
>   extra-y	:= kwbimage.cfg
>   
>   quiet_cmd_sed = SED     $@
> -      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
> +      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
>   
>   SEDFLAGS_kwbimage.cfg =-e "s|^BINARY.*|BINARY $(srctree)/$(@D)/binary.0 0000005b 00000068|"
> -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
> +$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
>   		include/config/auto.conf
>   	  $(call if_changed,sed)
> diff --git a/board/mikrotik/crs305-1g-4s/Makefile b/board/mikrotik/crs305-1g-4s/Makefile
> index 895331b..c03f534 100644
> --- a/board/mikrotik/crs305-1g-4s/Makefile
> +++ b/board/mikrotik/crs305-1g-4s/Makefile
> @@ -6,9 +6,9 @@ obj-y	:= crs305-1g-4s.o
>   extra-y	:= kwbimage.cfg
>   
>   quiet_cmd_sed = SED     $@
> -      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $<)$(@F)
> +      cmd_sed = sed $(SEDFLAGS_$(@F)) $< >$(dir $@)$(@F)
>   
>   SEDFLAGS_kwbimage.cfg =-e "s|^BINARY.*|BINARY $(srctree)/$(@D)/binary.0 0000005b 00000068|"
> -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
> +$(obj)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \
>   		include/config/auto.conf
>   	  $(call if_changed,sed)
> 

Viele Grüße,
Stefan

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 5/5] Bring all testings in gitlab and travis CI to Azure Pipelines
  2019-10-27 12:28 ` [U-Boot] [PATCH 5/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
@ 2019-10-28 13:44   ` Tom Rini
  2019-10-28 14:08     ` Bin Meng
  0 siblings, 1 reply; 13+ messages in thread
From: Tom Rini @ 2019-10-28 13:44 UTC (permalink / raw)
  To: u-boot

On Sun, Oct 27, 2019 at 05:28:25AM -0700, Bin Meng wrote:

> This expands current Azure Pipelines Windows host tools build
> testing to cover all the CI testing in gitlab and travis CI.
> 
> Note for some unknown reason, the 'container' cannot be used for
> any jobs that have buildman, for buildman does not exit properly
> and hangs the job forever. As a workaround, we manually call
> docker to run the image to perform the CI tasks.
> 
> A complete run on Azure Pipelines takes about 2 hours and 10
> minutes.
> 
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

Thanks for doing the work.  I will kick things such that we can have
this run automatically, regularly.  My only concern is, are we unable to
have a world build split like on GitLab?  The matrix of "break jobs up
such that it stays under 50 minutes" is one of the pain points to Travis
and I'd like to avoid that with Azure if we can as well.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20191028/7e40ce84/attachment.sig>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 4/5] .travis.yml: Remove the unneeded '&' for ls20xx buildman
  2019-10-27 12:28 ` [U-Boot] [PATCH 4/5] .travis.yml: Remove the unneeded '&' for ls20xx buildman Bin Meng
@ 2019-10-28 13:44   ` Tom Rini
  0 siblings, 0 replies; 13+ messages in thread
From: Tom Rini @ 2019-10-28 13:44 UTC (permalink / raw)
  To: u-boot

On Sun, Oct 27, 2019 at 05:28:24AM -0700, Bin Meng wrote:

> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20191028/16e5364e/attachment.sig>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 5/5] Bring all testings in gitlab and travis CI to Azure Pipelines
  2019-10-28 13:44   ` Tom Rini
@ 2019-10-28 14:08     ` Bin Meng
  2019-10-28 14:15       ` Tom Rini
  0 siblings, 1 reply; 13+ messages in thread
From: Bin Meng @ 2019-10-28 14:08 UTC (permalink / raw)
  To: u-boot

Hi Tom,

On Mon, Oct 28, 2019 at 9:44 PM Tom Rini <trini@konsulko.com> wrote:
>
> On Sun, Oct 27, 2019 at 05:28:25AM -0700, Bin Meng wrote:
>
> > This expands current Azure Pipelines Windows host tools build
> > testing to cover all the CI testing in gitlab and travis CI.
> >
> > Note for some unknown reason, the 'container' cannot be used for
> > any jobs that have buildman, for buildman does not exit properly
> > and hangs the job forever. As a workaround, we manually call
> > docker to run the image to perform the CI tasks.
> >
> > A complete run on Azure Pipelines takes about 2 hours and 10
> > minutes.
> >
> > Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>
> Thanks for doing the work.  I will kick things such that we can have
> this run automatically, regularly.  My only concern is, are we unable to
> have a world build split like on GitLab?  The matrix of "break jobs up
> such that it stays under 50 minutes" is one of the pain points to Travis
> and I'd like to avoid that with Azure if we can as well.
>

I think we can do the same world build split like on GitLab. However I
suspect a complete run will take much more time compared to GitLab.
Based on my testing I see each job is a 2-core VM with 8GiB memory,
not as powerful as current GitLab CI runner machine. Although the free
Azure account can support up to 360 minutes per job, having the same
world build split loses the chance to do more parallelism utilizing
the free 10 jobs.

Regards,
Bin

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [U-Boot] [PATCH 5/5] Bring all testings in gitlab and travis CI to Azure Pipelines
  2019-10-28 14:08     ` Bin Meng
@ 2019-10-28 14:15       ` Tom Rini
  0 siblings, 0 replies; 13+ messages in thread
From: Tom Rini @ 2019-10-28 14:15 UTC (permalink / raw)
  To: u-boot

On Mon, Oct 28, 2019 at 10:08:33PM +0800, Bin Meng wrote:
> Hi Tom,
> 
> On Mon, Oct 28, 2019 at 9:44 PM Tom Rini <trini@konsulko.com> wrote:
> >
> > On Sun, Oct 27, 2019 at 05:28:25AM -0700, Bin Meng wrote:
> >
> > > This expands current Azure Pipelines Windows host tools build
> > > testing to cover all the CI testing in gitlab and travis CI.
> > >
> > > Note for some unknown reason, the 'container' cannot be used for
> > > any jobs that have buildman, for buildman does not exit properly
> > > and hangs the job forever. As a workaround, we manually call
> > > docker to run the image to perform the CI tasks.
> > >
> > > A complete run on Azure Pipelines takes about 2 hours and 10
> > > minutes.
> > >
> > > Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> >
> > Thanks for doing the work.  I will kick things such that we can have
> > this run automatically, regularly.  My only concern is, are we unable to
> > have a world build split like on GitLab?  The matrix of "break jobs up
> > such that it stays under 50 minutes" is one of the pain points to Travis
> > and I'd like to avoid that with Azure if we can as well.
> 
> I think we can do the same world build split like on GitLab. However I
> suspect a complete run will take much more time compared to GitLab.
> Based on my testing I see each job is a 2-core VM with 8GiB memory,
> not as powerful as current GitLab CI runner machine. Although the free
> Azure account can support up to 360 minutes per job, having the same
> world build split loses the chance to do more parallelism utilizing
> the free 10 jobs.

Ah, OK.  In that case, yes, mirroring Travis is a reasonable starting
point and trying to further optimize from there can be done.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20191028/080d68ff/attachment.sig>

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-10-28 14:15 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-27 12:28 [U-Boot] [PATCH 0/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
2019-10-27 12:28 ` [U-Boot] [PATCH 1/5] tools: buildman: Honor output directory when generating boards.cfg Bin Meng
2019-10-27 12:28 ` [U-Boot] [PATCH 2/5] tools: buildman: Remove useless mkdir() in Make() in test.py Bin Meng
2019-10-27 12:31   ` Bin Meng
2019-10-27 12:28 ` [U-Boot] [PATCH 3/5] arm: mvebu: Avoid generating kwbimage.cfg in the source tree Bin Meng
2019-10-27 20:14   ` Chris Packham
2019-10-28  5:07   ` Stefan Roese
2019-10-27 12:28 ` [U-Boot] [PATCH 4/5] .travis.yml: Remove the unneeded '&' for ls20xx buildman Bin Meng
2019-10-28 13:44   ` Tom Rini
2019-10-27 12:28 ` [U-Boot] [PATCH 5/5] Bring all testings in gitlab and travis CI to Azure Pipelines Bin Meng
2019-10-28 13:44   ` Tom Rini
2019-10-28 14:08     ` Bin Meng
2019-10-28 14:15       ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.