This is an automated email from the ASF dual-hosted git repository.

sjanc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git

commit 22f5f88f3ad0b5eaeabcf73e14e3c6492d4d6856
Author: Szymon Janc <[email protected]>
AuthorDate: Fri Oct 16 22:01:21 2026 +0200

    ci: Clone only needed repositories in commands test
    
    newt upgrade cloned all apache-mynewt-core dependencies, about 5 GB,
    three times per run. Replace the project.yml created by newt new with
    one that allows only repositories needed to build the test targets.
    The initial upgrade takes 42 seconds instead of 262 locally.
    
    Do not download all repositories again with a shallow clone, the
    sysinit test covers shallow clones now. Remove apache-mynewt-nimble
    instead of apache-mynewt-mcumgr, which is no longer cloned for
    apache-mynewt-core master, to test that a missing repository is
    downloaded again, and check that it was.
    
    Assisted-by: Claude:claude-opus-5-5
---
 .github/newt_commands/project.yml   | 40 +++++++++++++++++++++++++++++++++++++
 .github/workflows/test_commands.yml |  6 +++---
 2 files changed, 43 insertions(+), 3 deletions(-)

diff --git a/.github/newt_commands/project.yml 
b/.github/newt_commands/project.yml
new file mode 100644
index 00000000..ab2d881e
--- /dev/null
+++ b/.github/newt_commands/project.yml
@@ -0,0 +1,40 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+project.name: "newt_commands"
+
+project.repositories:
+    - apache-mynewt-core
+
+repository.apache-mynewt-core:
+    type: github
+    vers: 0.0.0
+    user: apache
+    repo: mynewt-core
+
+# apache-mynewt-core depends on many repositories, clone only those needed
+# to build the targets used by the tests.
+project.repositories.allowed:
+    - apache-mynewt-core
+    - apache-mynewt-nimble
+    - arm-CMSIS_5
+    - mbedtls
+    - mcuboot
+    - nordic-nrfx
+    - tinycbor
diff --git a/.github/workflows/test_commands.yml 
b/.github/workflows/test_commands.yml
index 7c3d8207..46440e17 100644
--- a/.github/workflows/test_commands.yml
+++ b/.github/workflows/test_commands.yml
@@ -56,6 +56,7 @@ jobs:
              newt help
              newt version
              newt new project
+             cp .github/newt_commands/project.yml project/
              cp -r .github/targets/nordic_pca10056_btshell project/targets
              cd project/
              newt upgrade -v --escape=false apache-mynewt-core 
apache-mynewt-nimble
@@ -83,11 +84,10 @@ jobs:
              newt target cmake nordic_pca10056_btshell
              newt target dep nordic_pca10056_btshell
              newt target revdep nordic_pca10056_btshell
-             rm -rf repos
-             newt upgrade --shallow=1
              newt upgrade -v
-             rm -rf repos/apache-mynewt-mcumgr
+             rm -rf repos/apache-mynewt-nimble
              newt upgrade -v
+             test -d repos/apache-mynewt-nimble/nimble
       - name: Test commands 2
         if: matrix.os == 'ubuntu-latest'
         run: |

Reply via email to