Separate out java tests into separate workflow (#26844)
* Separate out java tests into separate workflow
* Fix naming to no clash with old name.
---------
Co-authored-by: Andrei Litvin <andreilitvin@google.com>
diff --git a/.github/workflows/java-tests.yaml b/.github/workflows/java-tests.yaml
new file mode 100644
index 0000000..33d267e
--- /dev/null
+++ b/.github/workflows/java-tests.yaml
@@ -0,0 +1,229 @@
+# Copyright (c) 2023 Project CHIP Authors
+#
+# Licensed 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: Java Tests
+
+on:
+ push:
+ pull_request:
+ merge_group:
+ workflow_dispatch:
+
+concurrency:
+ group: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name ==
+ 'pull_request' && github.event.number) || (github.event_name ==
+ 'workflow_dispatch' && github.run_number) || github.sha }}
+ cancel-in-progress: true
+
+env:
+ CHIP_NO_LOG_TIMESTAMPS: true
+ # XXX: Workaround for https://github.com/actions/cache/issues/1141
+ SEGMENT_DOWNLOAD_TIMEOUT_MINS: 3
+
+jobs:
+ java_tests_linux:
+ name: Linux
+ timeout-minutes: 130
+
+ env:
+ TSAN_OPTIONS: "halt_on_error=1 suppressions=scripts/tests/chiptest/tsan-linux-suppressions.txt"
+ JAVA_PATH: /usr/lib/jvm/java-8-openjdk-amd64
+
+ if: github.actor != 'restyled-io[bot]'
+ runs-on: ubuntu-latest
+
+ container:
+ image: connectedhomeip/chip-build-java:0.7.3
+ options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0
+ net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0"
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Checkout submodules
+ run: scripts/checkout_submodules.py --allow-changing-global-git-config --shallow --platform linux
+ - name: Try to ensure the directories for core dumping exist and we
+ can write them.
+ run: |
+ mkdir /tmp/cores || true
+ sysctl -w kernel.core_pattern=/tmp/cores/core.%u.%p.%t || true
+ mkdir objdir-clone || true
+
+ - name: Bootstrap cache
+ uses: actions/cache@v3
+ timeout-minutes: 10
+ with:
+ key: ${{ runner.os }}-env-${{ hashFiles('scripts/setup/*', 'third_party/pigweed/**') }}
+ path: |
+ .environment
+ build_overrides/pigweed_environment.gni
+ - name: Bootstrap
+ timeout-minutes: 10
+ run: bash scripts/bootstrap.sh
+ - name: Uploading bootstrap logs
+ uses: actions/upload-artifact@v3
+ if: ${{ always() && !env.ACT }}
+ with:
+ name: bootstrap-logs-linux-${{ matrix.build_variant }}${{ matrix.chip_tool }}
+ path: |
+ .environment/gn_out/.ninja_log
+ .environment/pigweed-venv/*.log
+
+ - name: Build Java Matter Controller and all clusters app
+ timeout-minutes: 50
+ run: |
+ scripts/run_in_build_env.sh './scripts/build_python.sh --install_wheel build-env'
+ ./scripts/run_in_build_env.sh \
+ "./scripts/build/build_examples.py \
+ --target linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test \
+ --target linux-x64-java-matter-controller \
+ build \
+ "
+ - name: Run Discover Commissionables Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "discover" \
+ --tool-args "commissionables" \
+ --factoryreset \
+ '
+ - name: Run Pairing Onnetwork Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "pairing" \
+ --tool-args "onnetwork-long --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
+ --factoryreset \
+ '
+ - name: Run IM Invoke Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "im" \
+ --tool-args "onnetwork-long-im-invoke --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
+ --factoryreset \
+ '
+ - name: Run IM Read Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "im" \
+ --tool-args "onnetwork-long-im-read --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
+ --factoryreset \
+ '
+ - name: Run IM Write Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "im" \
+ --tool-args "onnetwork-long-im-write --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
+ --factoryreset \
+ '
+ - name: Run IM Subscribe Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "im" \
+ --tool-args "onnetwork-long-im-subscribe --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
+ --factoryreset \
+ '
+ - name: Run Pairing AlreadyDiscovered Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "pairing" \
+ --tool-args "already-discovered --nodeid 1 --setup-pin-code 20202021 --address ::1 --port 5540 -t 1000" \
+ --factoryreset \
+ '
+ - name: Run Pairing Address-PaseOnly Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "pairing" \
+ --tool-args "address-paseonly --nodeid 1 --setup-pin-code 20202021 --address ::1 --port 5540 -t 1000" \
+ --factoryreset \
+ '
+ - name: Run Pairing SetupQRCode Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "pairing" \
+ --tool-args "code --nodeid 1 --setup-payload MT:-24J0AFN00KA0648G00 --discover-once 1 --use-only-onnetwork-discovery 0 -t 1000" \
+ --factoryreset \
+ '
+ - name: Run Pairing ManualCode Test
+ timeout-minutes: 10
+ run: |
+ scripts/run_in_build_env.sh \
+ './scripts/tests/run_java_test.py \
+ --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
+ --app-args "--discriminator 3840 --interface-id -1" \
+ --tool-path out/linux-x64-java-matter-controller \
+ --tool-cluster "pairing" \
+ --tool-args "code --nodeid 1 --setup-payload 34970112332 --discover-once 1 --use-only-onnetwork-discovery 0 -t 1000" \
+ --factoryreset \
+ '
+ - name: Uploading core files
+ uses: actions/upload-artifact@v3
+ if: ${{ failure() && !env.ACT }}
+ with:
+ name: crash-core-linux-java-controller
+ path: /tmp/cores/
+ # Cores are big; don't hold on to them too long.
+ retention-days: 5
+ - name: Uploading objdir for debugging
+ uses: actions/upload-artifact@v3
+ if: ${{ failure() && !env.ACT }}
+ with:
+ name: crash-objdir-linux-java-controller
+ path: objdir-clone/
+ # objdirs are big; don't hold on to them too long.
+ retention-days: 5
+
diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index dcf34d4..70c0fb9 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -524,201 +524,6 @@
# objdirs are big; don't hold on to them too long.
retention-days: 5
- java_tests_linux:
- name: Java Tests - Linux
- timeout-minutes: 130
-
- env:
- TSAN_OPTIONS: "halt_on_error=1 suppressions=scripts/tests/chiptest/tsan-linux-suppressions.txt"
- JAVA_PATH: /usr/lib/jvm/java-8-openjdk-amd64
-
- if: github.actor != 'restyled-io[bot]'
- runs-on: ubuntu-latest
-
- container:
- image: connectedhomeip/chip-build-java:0.7.3
- options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0
- net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0"
-
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: Checkout submodules
- run: scripts/checkout_submodules.py --allow-changing-global-git-config --shallow --platform linux
- - name: Try to ensure the directories for core dumping exist and we
- can write them.
- run: |
- mkdir /tmp/cores || true
- sysctl -w kernel.core_pattern=/tmp/cores/core.%u.%p.%t || true
- mkdir objdir-clone || true
-
- - name: Bootstrap cache
- uses: actions/cache@v3
- timeout-minutes: 10
- with:
- key: ${{ runner.os }}-env-${{ hashFiles('scripts/setup/*', 'third_party/pigweed/**') }}
- path: |
- .environment
- build_overrides/pigweed_environment.gni
- - name: Bootstrap
- timeout-minutes: 10
- run: bash scripts/bootstrap.sh
- - name: Uploading bootstrap logs
- uses: actions/upload-artifact@v3
- if: ${{ always() && !env.ACT }}
- with:
- name: bootstrap-logs-linux-${{ matrix.build_variant }}${{ matrix.chip_tool }}
- path: |
- .environment/gn_out/.ninja_log
- .environment/pigweed-venv/*.log
-
- - name: Build Java Matter Controller and all clusters app
- timeout-minutes: 50
- run: |
- scripts/run_in_build_env.sh './scripts/build_python.sh --install_wheel build-env'
- ./scripts/run_in_build_env.sh \
- "./scripts/build/build_examples.py \
- --target linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test \
- --target linux-x64-java-matter-controller \
- build \
- "
- - name: Run Discover Commissionables Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "discover" \
- --tool-args "commissionables" \
- --factoryreset \
- '
- - name: Run Pairing Onnetwork Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "pairing" \
- --tool-args "onnetwork-long --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
- --factoryreset \
- '
- - name: Run IM Invoke Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "im" \
- --tool-args "onnetwork-long-im-invoke --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
- --factoryreset \
- '
- - name: Run IM Read Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "im" \
- --tool-args "onnetwork-long-im-read --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
- --factoryreset \
- '
- - name: Run IM Write Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "im" \
- --tool-args "onnetwork-long-im-write --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
- --factoryreset \
- '
- - name: Run IM Subscribe Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "im" \
- --tool-args "onnetwork-long-im-subscribe --nodeid 1 --setup-pin-code 20202021 --discriminator 3840 -t 1000" \
- --factoryreset \
- '
- - name: Run Pairing AlreadyDiscovered Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "pairing" \
- --tool-args "already-discovered --nodeid 1 --setup-pin-code 20202021 --address ::1 --port 5540 -t 1000" \
- --factoryreset \
- '
- - name: Run Pairing Address-PaseOnly Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "pairing" \
- --tool-args "address-paseonly --nodeid 1 --setup-pin-code 20202021 --address ::1 --port 5540 -t 1000" \
- --factoryreset \
- '
- - name: Run Pairing SetupQRCode Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "pairing" \
- --tool-args "code --nodeid 1 --setup-payload MT:-24J0AFN00KA0648G00 --discover-once 1 --use-only-onnetwork-discovery 0 -t 1000" \
- --factoryreset \
- '
- - name: Run Pairing ManualCode Test
- timeout-minutes: 10
- run: |
- scripts/run_in_build_env.sh \
- './scripts/tests/run_java_test.py \
- --app out/linux-x64-all-clusters-ipv6only-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app \
- --app-args "--discriminator 3840 --interface-id -1" \
- --tool-path out/linux-x64-java-matter-controller \
- --tool-cluster "pairing" \
- --tool-args "code --nodeid 1 --setup-payload 34970112332 --discover-once 1 --use-only-onnetwork-discovery 0 -t 1000" \
- --factoryreset \
- '
- - name: Uploading core files
- uses: actions/upload-artifact@v3
- if: ${{ failure() && !env.ACT }}
- with:
- name: crash-core-linux-java-controller
- path: /tmp/cores/
- # Cores are big; don't hold on to them too long.
- retention-days: 5
- - name: Uploading objdir for debugging
- uses: actions/upload-artifact@v3
- if: ${{ failure() && !env.ACT }}
- with:
- name: crash-objdir-linux-java-controller
- path: objdir-clone/
- # objdirs are big; don't hold on to them too long.
- retention-days: 5
-
repl_tests_darwin:
name: REPL Tests - Darwin
timeout-minutes: 120