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

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

commit 15c4ac6fd53ece00a7d302f74b01db4d8a231795
Author: Michal Gorecki <michal.gore...@codecoup.pl>
AuthorDate: Fri Aug 30 13:43:25 2024 +0200

    ci: Add ambiguous config test
---
 .github/targets/ambiguous_fail/pkg.yml       |  5 +++
 .github/targets/ambiguous_fail/syscfg.yml    | 10 +++++
 .github/targets/ambiguous_fail/target.yml    |  3 ++
 .github/targets/ambiguous_success/pkg.yml    |  5 +++
 .github/targets/ambiguous_success/syscfg.yml | 10 +++++
 .github/targets/ambiguous_success/target.yml |  3 ++
 .github/workflows/test_ambiguous_cfg.yml     | 66 ++++++++++++++++++++++++++++
 7 files changed, 102 insertions(+)

diff --git a/.github/targets/ambiguous_fail/pkg.yml 
b/.github/targets/ambiguous_fail/pkg.yml
new file mode 100644
index 00000000..dba5fd24
--- /dev/null
+++ b/.github/targets/ambiguous_fail/pkg.yml
@@ -0,0 +1,5 @@
+pkg.name: "targets/ambiguous_fail"
+pkg.type: target
+pkg.description: 
+pkg.author: 
+pkg.homepage: 
diff --git a/.github/targets/ambiguous_fail/syscfg.yml 
b/.github/targets/ambiguous_fail/syscfg.yml
new file mode 100644
index 00000000..0ff26b6a
--- /dev/null
+++ b/.github/targets/ambiguous_fail/syscfg.yml
@@ -0,0 +1,10 @@
+syscfg.vals:
+    SHELL_PROMPT_MODULE: 1
+    SHELL_TASK: 1
+
+syscfg.vals.SHELL_PROMPT_MODULE:
+    CONSOLE_IMPLEMENTATION: stub
+
+# This should fail
+syscfg.vals.SHELL_TASK:
+    CONSOLE_IMPLEMENTATION: full
diff --git a/.github/targets/ambiguous_fail/target.yml 
b/.github/targets/ambiguous_fail/target.yml
new file mode 100644
index 00000000..2d850208
--- /dev/null
+++ b/.github/targets/ambiguous_fail/target.yml
@@ -0,0 +1,3 @@
+target.app: "@apache-mynewt-nimble/apps/btshell"
+target.bsp: "@apache-mynewt-core/hw/bsp/nordic_pca10056"
+target.build_profile: optimized
diff --git a/.github/targets/ambiguous_success/pkg.yml 
b/.github/targets/ambiguous_success/pkg.yml
new file mode 100644
index 00000000..f4f8c20d
--- /dev/null
+++ b/.github/targets/ambiguous_success/pkg.yml
@@ -0,0 +1,5 @@
+pkg.name: "targets/ambiguous_success"
+pkg.type: target
+pkg.description: 
+pkg.author: 
+pkg.homepage: 
diff --git a/.github/targets/ambiguous_success/syscfg.yml 
b/.github/targets/ambiguous_success/syscfg.yml
new file mode 100644
index 00000000..c9935d56
--- /dev/null
+++ b/.github/targets/ambiguous_success/syscfg.yml
@@ -0,0 +1,10 @@
+syscfg.vals:
+    SHELL_PROMPT_MODULE: 1
+    SHELL_TASK: 1
+
+syscfg.vals.SHELL_PROMPT_MODULE:
+    CONSOLE_IMPLEMENTATION: stub
+
+# This should not fail as it sets the same value as previous conditional config
+syscfg.vals.SHELL_TASK:
+    CONSOLE_IMPLEMENTATION: stub
diff --git a/.github/targets/ambiguous_success/target.yml 
b/.github/targets/ambiguous_success/target.yml
new file mode 100644
index 00000000..2d850208
--- /dev/null
+++ b/.github/targets/ambiguous_success/target.yml
@@ -0,0 +1,3 @@
+target.app: "@apache-mynewt-nimble/apps/btshell"
+target.bsp: "@apache-mynewt-core/hw/bsp/nordic_pca10056"
+target.build_profile: optimized
diff --git a/.github/workflows/test_ambiguous_cfg.yml 
b/.github/workflows/test_ambiguous_cfg.yml
new file mode 100644
index 00000000..c2d4f505
--- /dev/null
+++ b/.github/workflows/test_ambiguous_cfg.yml
@@ -0,0 +1,66 @@
+#
+# 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.
+#
+
+name: Test ambiguous config
+
+on: [push, pull_request]
+
+jobs:
+  test_ambiguous_cfg:
+    name: other
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [ubuntu-latest, windows-latest, macos-latest]
+    runs-on: ${{ matrix.os }}
+    steps:
+      - uses: actions/checkout@v3
+      - uses: actions/setup-go@v3
+        with:
+          go-version: 'stable'
+      - uses: 
carlosperate/arm-none-eabi-gcc-action@48db4484a55750df7a0ccca63347fcdea6534d78
+        with:
+          release: '12.2.Rel1'
+      - name: Install Dependencies
+        if: matrix.os == 'ubuntu-latest'
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y gcc-multilib
+      - name: Build newt
+        working-directory: newt
+        shell: bash
+        run: |
+          go version
+          go build
+          echo  ${GITHUB_WORKSPACE}/newt >> $GITHUB_PATH
+      - name: Test ambiguous cfg (success)
+        shell: bash
+        run: |
+          newt new project
+          cp -r .github/targets/ambiguous_success project/targets
+          cd project/
+          newt upgrade -v
+          newt build ambiguous_success
+      - name: Test ambiguous cfg (fail)
+        shell: bash
+        run: |
+          cp -r .github/targets/ambiguous_fail project/targets
+          cd project/
+          ! newt build ambiguous_fail &> tmp.txt
+          grep "Error: Setting CONSOLE_IMPLEMENTATION collision - two 
conditions true:" tmp.txt -q

Reply via email to