mirror of
https://gitlab.com/prpl-foundation/prplos/prplos.git
synced 2025-12-20 00:56:07 +08:00
ci: sync with current prplos branch state
Sync CI bits with the current state in prplos branch on commit
9af7fff65169 ("ci: fix build Docker image sdk-x86-64 job").
Signed-off-by: Petr Štetiar <ynezz@true.cz>
This commit is contained in:
committed by
Petr Štetiar
parent
89246ad4a4
commit
68dd0400d6
@@ -4,6 +4,8 @@ variables:
|
||||
include:
|
||||
- local: .gitlab/build.yml
|
||||
- local: .gitlab/cdrouter.yml
|
||||
- local: .gitlab/cdrouter/glinet-b1300.yml
|
||||
- local: .gitlab/cdrouter/turris-omnia.yml
|
||||
- local: .gitlab/coverity.yml
|
||||
- local: .gitlab/docker.yml
|
||||
- local: .gitlab/docker/builder/gitlab.yml
|
||||
@@ -26,87 +28,35 @@ stages:
|
||||
- cdrouter
|
||||
- coverity
|
||||
|
||||
.build test intel_mips prpl:
|
||||
.build test intel_mips prpl webui:
|
||||
extends: .build test config
|
||||
|
||||
build test ipq40xx prpl:
|
||||
build test ipq40xx prpl webui:
|
||||
extends: .build test config
|
||||
|
||||
build test mvebu prpl:
|
||||
build test mvebu prpl webui:
|
||||
extends: .build test config
|
||||
|
||||
coverity scan ipq40xx prpl:
|
||||
extends: .coverity scan config
|
||||
build test x86_64 prpl webui:
|
||||
extends: .build test config
|
||||
variables:
|
||||
CI_COVERITY_COMPILER_TEMPLATE_LIST: >
|
||||
arm-openwrt-linux-gcc
|
||||
arm-openwrt-linux-muslgnueabi-gcc
|
||||
CI_BUILD_CONFIG: >
|
||||
+DEVEL +BUILD_LOG +SDK +IB +IB_STANDALONE
|
||||
|
||||
.run test NEC WX3000HP with system on NAND:
|
||||
.run test NEC WX3000HP NAND:
|
||||
needs:
|
||||
- build test intel_mips prpl
|
||||
- job: build test intel_mips prpl webui
|
||||
optional: true
|
||||
extends: .nec-wx3000hp testbed
|
||||
|
||||
run test Gl.iNet B1300 with system on initramfs:
|
||||
run test Gl.iNet B1300 initramfs:
|
||||
needs:
|
||||
- build test ipq40xx prpl
|
||||
- job: build test ipq40xx prpl webui
|
||||
optional: true
|
||||
extends: .glinet-b1300 testbed
|
||||
|
||||
run test Turris Omnia with system on initramfs:
|
||||
run test Turris Omnia initramfs:
|
||||
needs:
|
||||
- build test mvebu prpl
|
||||
- job: build test mvebu prpl webui
|
||||
optional: true
|
||||
extends: .turris-omnia testbed
|
||||
|
||||
.CDRouter CDRouter-Top-100 package on NEC WX3000HP with system on NAND:
|
||||
needs:
|
||||
- build test intel_mips prpl
|
||||
extends:
|
||||
- .nec-wx3000hp testbed
|
||||
- .cdrouter
|
||||
variables:
|
||||
LABGRID_TARGET: "$DUT_BOARD-firstboot"
|
||||
|
||||
CDRouter CDRouter-Top-100 package on Gl.iNet B1300 with system on initramfs:
|
||||
needs:
|
||||
- build test ipq40xx prpl
|
||||
extends:
|
||||
- .glinet-b1300 testbed
|
||||
- .cdrouter
|
||||
|
||||
CDRouter CDRouter-Top-100 package on Turris Omnia with system on initramfs:
|
||||
needs:
|
||||
- build test mvebu prpl
|
||||
extends:
|
||||
- .turris-omnia testbed
|
||||
- .cdrouter
|
||||
|
||||
.CDRouter CDRouter-TR-069 package on NEC WX3000HP with system on NAND:
|
||||
allow_failure: true
|
||||
needs:
|
||||
- build test intel_mips prpl
|
||||
extends:
|
||||
- .nec-wx3000hp testbed
|
||||
- .cdrouter
|
||||
|
||||
CDRouter CDRouter-TR-069 package on Gl.iNet B1300 with system on NOR:
|
||||
allow_failure: true
|
||||
needs:
|
||||
- build test ipq40xx prpl
|
||||
extends:
|
||||
- .glinet-b1300 testbed
|
||||
- .cdrouter
|
||||
variables:
|
||||
LABGRID_TARGET: glinet-b1300-nor
|
||||
TFTP_IMAGE_FILENAME: openwrt-ipq40xx-generic-glinet_gl-b1300-squashfs-sysupgrade.bin
|
||||
|
||||
CDRouter CDRouter-TR-069 package on Turris Omnia with system on eMMC:
|
||||
allow_failure: true
|
||||
needs:
|
||||
- build test mvebu prpl
|
||||
extends:
|
||||
- .turris-omnia testbed
|
||||
- .cdrouter
|
||||
variables:
|
||||
LABGRID_TARGET: turris-omnia-emmc
|
||||
TFTP_IMAGE_FILENAME: openwrt-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img.gz
|
||||
TFTP_IMAGE_UNPACK_COMMAND: "gunzip --force $TESTBED_TFTP_PATH/$TFTP_IMAGE_FILENAME || true"
|
||||
|
||||
@@ -7,23 +7,32 @@
|
||||
- if: '$CI_COMMIT_BRANCH == $CI_DESIGNATED_BRANCH'
|
||||
- when: manual
|
||||
variables:
|
||||
TEST_CONFIG: generic
|
||||
CDROUTER_TEST_CONFIG: generic
|
||||
DUT_SLEEP_AFTER_BOOT: 20
|
||||
CDROUTER_LAN_INTERFACE: eth1
|
||||
CDROUTER_WAN_INTERFACE: eth2
|
||||
CDROUTER_ETH0_MAC_ADDRESS: 00:03:2d:49:2e:d8
|
||||
CDROUTER_ETH0_MAC_ADDRESS_TESTBED_02: 00:03:2d:49:2e:c8
|
||||
|
||||
before_script:
|
||||
- sudo etherwake -i $TESTBED_MNG_INTERFACE $CDROUTER_ETH0_MAC_ADDRESS 2> /dev/null
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
|
||||
sudo etherwake -i $TESTBED_MNG_INTERFACE $CDROUTER_ETH0_MAC_ADDRESS 2> /dev/null
|
||||
else
|
||||
sudo etherwake -i $TESTBED_MNG_INTERFACE $CDROUTER_ETH0_MAC_ADDRESS_TESTBED_02 2> /dev/null
|
||||
fi
|
||||
- sudo ip link set $TESTBED_LAN_INTERFACE up 2> /dev/null
|
||||
- sudo ip link set $TESTBED_WAN_INTERFACE up 2> /dev/null
|
||||
- sleep 10
|
||||
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
- mkdir -p ~/.ssh; chmod 700 ~/.ssh
|
||||
- ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
|
||||
- chmod 644 ~/.ssh/known_hosts
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
|
||||
eval $(ssh-agent -s)
|
||||
echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
|
||||
chmod 644 ~/.ssh/known_hosts
|
||||
fi
|
||||
|
||||
- >
|
||||
if [ -n "$TFTP_IMAGE_DOWNLOAD_URL" ]; then
|
||||
@@ -38,6 +47,12 @@
|
||||
echo "Running $TFTP_IMAGE_UNPACK_COMMAND"
|
||||
eval "$TFTP_IMAGE_UNPACK_COMMAND"
|
||||
fi
|
||||
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
|
||||
export TB_CONFIG=".testbed/labgrid/testbed-02.yaml"
|
||||
fi
|
||||
|
||||
- .gitlab/scripts/testbed-device.py --target $LABGRID_TARGET boot_into shell
|
||||
- sudo ip link set $TESTBED_WAN_INTERFACE down 2> /dev/null
|
||||
- >
|
||||
@@ -46,21 +61,22 @@
|
||||
--network lan
|
||||
--remote-host $TARGET_LAN_TEST_HOST
|
||||
|
||||
- >
|
||||
retry_count=3;
|
||||
while [ $retry_count -gt 0 ]; do
|
||||
echo "Waiting for SSH availability on $TARGET_LAN_IP"
|
||||
ssh-keyscan "$TARGET_LAN_IP" 2>&1 | grep -q "$TARGET_LAN_IP" && break
|
||||
retry_count="$(( retry_count - 1 ))"
|
||||
sleep 5
|
||||
done
|
||||
- echo "Waiting for SSH connection availability with ${DUT_SSH_CONNECT_TIMEOUT}sec timeout, with $DUT_SSH_CONNECT_ATTEMPTS attempts..."
|
||||
- time ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectionAttempts=$DUT_SSH_CONNECT_ATTEMPTS -o ConnectTimeout=$DUT_SSH_CONNECT_TIMEOUT root@$TARGET_LAN_IP 'exit 0'
|
||||
|
||||
- ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null
|
||||
- ssh root@$TARGET_LAN_IP "cat /var/log/messages" > syslog-$LABGRID_TARGET.txt 2> /dev/null || true
|
||||
- ssh root@$TARGET_LAN_IP "ubus call system board" | tee system-$LABGRID_TARGET.json
|
||||
|
||||
- scp .gitlab/mockups/tr181-mockups.tar.gz root@${TARGET_LAN_IP}:/tmp/
|
||||
- ssh root@$TARGET_LAN_IP "tar xzf /tmp/tr181-mockups.tar.gz -C / && /etc/init.d/tr181-mockups start"
|
||||
- >
|
||||
for dut_init_script in $DUT_INIT_SCRIPTS;
|
||||
do echo "Running $dut_init_script"; /bin/sh "$dut_init_script";
|
||||
done
|
||||
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
|
||||
export CDROUTER_API_TOKEN="$CDROUTER_API_TOKEN_TESTBED_02"
|
||||
fi
|
||||
|
||||
- .gitlab/scripts/testbed-cdrouter.py package_stop
|
||||
- .gitlab/scripts/testbed-cdrouter.py wait_for_netif $CDROUTER_LAN_INTERFACE
|
||||
@@ -71,14 +87,19 @@
|
||||
script:
|
||||
- sleep $DUT_SLEEP_AFTER_BOOT
|
||||
|
||||
- export TEST_PACKAGE="$(echo $CI_JOB_NAME | sed 's/CDRouter \(.*\) package on .*/\1/')"
|
||||
- .gitlab/scripts/testbed-cdrouter.py config_import $TEST_CONFIG
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
|
||||
export CDROUTER_API_TOKEN="$CDROUTER_API_TOKEN_TESTBED_02"
|
||||
fi
|
||||
|
||||
- export TEST_PACKAGE="$(echo $CI_JOB_NAME | sed 's/\(\w\) .*/\1/')"
|
||||
- .gitlab/scripts/testbed-cdrouter.py config_import $CDROUTER_TEST_CONFIG
|
||||
- .gitlab/scripts/testbed-cdrouter.py package_import $TEST_PACKAGE.gz
|
||||
- >
|
||||
.gitlab/scripts/testbed-cdrouter.py
|
||||
package_run $TEST_PACKAGE
|
||||
--device generic
|
||||
--configuration $TEST_CONFIG
|
||||
--configuration $CDROUTER_TEST_CONFIG
|
||||
--system-info system-$LABGRID_TARGET.json
|
||||
|
||||
after_script:
|
||||
@@ -89,16 +110,30 @@
|
||||
cat cdrouter-results/final.txt &&
|
||||
.gitlab/scripts/cdrouter-pretty-failures.awk cdrouter-results/*.txt
|
||||
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
- mkdir -p ~/.ssh; chmod 700 ~/.ssh
|
||||
- ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
|
||||
- chmod 644 ~/.ssh/known_hosts
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
|
||||
eval $(ssh-agent -s)
|
||||
echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
|
||||
chmod 644 ~/.ssh/known_hosts
|
||||
fi
|
||||
|
||||
- sudo ip link set $TESTBED_LAN_INTERFACE up 2> /dev/null
|
||||
- sudo ip link set $TESTBED_WAN_INTERFACE up 2> /dev/null
|
||||
- sleep 5
|
||||
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
|
||||
export TB_CONFIG=".testbed/labgrid/testbed-02.yaml"
|
||||
fi
|
||||
|
||||
- >
|
||||
ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=15 root@$TARGET_LAN_IP 'exit 0' || {
|
||||
.gitlab/scripts/testbed-device.py --target $LABGRID_TARGET console_dump_system_state
|
||||
.gitlab/scripts/testbed-device.py --target $LABGRID_TARGET console_recover_ssh_access
|
||||
} || true
|
||||
|
||||
- ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null
|
||||
- >
|
||||
ssh root@$TARGET_LAN_IP exit && {
|
||||
@@ -113,6 +148,10 @@
|
||||
- .gitlab/scripts/testbed-device.py --target $LABGRID_TARGET power off
|
||||
- mv console_$LABGRID_TARGET console_$LABGRID_TARGET.txt || true
|
||||
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
|
||||
export CDROUTER_API_TOKEN="$CDROUTER_API_TOKEN_TESTBED_02"
|
||||
fi
|
||||
- .gitlab/scripts/testbed-cdrouter.py package_stop
|
||||
|
||||
artifacts:
|
||||
|
||||
63
.gitlab/cdrouter/glinet-b1300.yml
Normal file
63
.gitlab/cdrouter/glinet-b1300.yml
Normal file
@@ -0,0 +1,63 @@
|
||||
.glinet-cdrouter: &glinet_cdrouter
|
||||
needs:
|
||||
- job: build test ipq40xx prpl webui
|
||||
optional: true
|
||||
extends:
|
||||
- .glinet-b1300 testbed
|
||||
- .cdrouter
|
||||
|
||||
CDRouter-Top-100+mDNS Gl.iNet initramfs:
|
||||
<<: *glinet_cdrouter
|
||||
|
||||
CDRouter-Top-100+mDNS Gl.iNet VLAN WAN/LAN initramfs:
|
||||
<<: *glinet_cdrouter
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: vlan
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
|
||||
|
||||
CDRouter-Top-100+mDNS Gl.iNet PPPoE WAN initramfs:
|
||||
<<: *glinet_cdrouter
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: ppp
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
|
||||
|
||||
|
||||
.glinet-cdrouter-ipv6: &glinet_cdrouter_ipv6
|
||||
<<: *glinet_cdrouter
|
||||
allow_failure: true
|
||||
rules:
|
||||
- if: '$TFTP_IMAGE_DOWNLOAD_URL =~ $TFTP_IMAGE_FILENAME_PATTERN'
|
||||
when: always
|
||||
- if: '$TFTP_IMAGE_DOWNLOAD_URL'
|
||||
when: never
|
||||
- when: manual
|
||||
|
||||
CDRouter-IPv6-Top-100+mDNS Gl.iNet initramfs:
|
||||
<<: *glinet_cdrouter_ipv6
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: generic-ipv6
|
||||
|
||||
CDRouter-IPv6-Top-100+mDNS Gl.iNet VLAN WAN/LAN initramfs:
|
||||
<<: *glinet_cdrouter_ipv6
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: vlan-ipv6
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
|
||||
|
||||
CDRouter-TR-069 Gl.iNet NOR:
|
||||
<<: *glinet_cdrouter
|
||||
variables:
|
||||
LABGRID_TARGET: glinet-b1300-nor
|
||||
TFTP_IMAGE_FILENAME: openwrt-ipq40xx-generic-glinet_gl-b1300-squashfs-sysupgrade.bin
|
||||
TFTP_IMAGE_FILENAME_PATTERN: /.*openwrt-ipq40xx-generic-glinet_gl-b1300-squashfs-sysupgrade.bin/
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh
|
||||
|
||||
CDRouter-IPv6-Top-100+mDNS Gl.iNet PPPoE WAN initramfs:
|
||||
<<: *glinet_cdrouter_ipv6
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: ppp-ipv6
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
|
||||
64
.gitlab/cdrouter/turris-omnia.yml
Normal file
64
.gitlab/cdrouter/turris-omnia.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
.turris-cdrouter: &turris_cdrouter
|
||||
needs:
|
||||
- job: build test mvebu prpl webui
|
||||
optional: true
|
||||
extends:
|
||||
- .turris-omnia testbed
|
||||
- .cdrouter
|
||||
|
||||
CDRouter-Top-100+mDNS Turris initramfs:
|
||||
<<: *turris_cdrouter
|
||||
|
||||
CDRouter-Top-100+mDNS Turris VLAN WAN/LAN initramfs:
|
||||
<<: *turris_cdrouter
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: vlan
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
|
||||
|
||||
CDRouter-Top-100+mDNS Turris PPPoE WAN initramfs:
|
||||
<<: *turris_cdrouter
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: ppp
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
|
||||
|
||||
|
||||
.turris-cdrouter-ipv6: &turris_cdrouter_ipv6
|
||||
<<: *turris_cdrouter
|
||||
allow_failure: true
|
||||
rules:
|
||||
- if: '$TFTP_IMAGE_DOWNLOAD_URL =~ $TFTP_IMAGE_FILENAME_PATTERN'
|
||||
when: always
|
||||
- if: '$TFTP_IMAGE_DOWNLOAD_URL'
|
||||
when: never
|
||||
- when: manual
|
||||
|
||||
CDRouter-IPv6-Top-100+mDNS Turris initramfs:
|
||||
<<: *turris_cdrouter_ipv6
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: generic-ipv6
|
||||
|
||||
CDRouter-IPv6-Top-100+mDNS Turris VLAN WAN/LAN initramfs:
|
||||
<<: *turris_cdrouter_ipv6
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: vlan-ipv6
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
|
||||
|
||||
CDRouter-IPv6-Top-100+mDNS Turris PPPoE WAN initramfs:
|
||||
<<: *turris_cdrouter_ipv6
|
||||
variables:
|
||||
CDROUTER_TEST_CONFIG: ppp-ipv6
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
|
||||
|
||||
CDRouter-TR-069 Turris eMMC:
|
||||
<<: *turris_cdrouter
|
||||
variables:
|
||||
LABGRID_TARGET: turris-omnia-emmc
|
||||
TFTP_IMAGE_FILENAME: openwrt-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img.gz
|
||||
TFTP_IMAGE_FILENAME_PATTERN: /.*openwrt-mvebu-cortexa9-cznic_turris-omnia-sysupgrade.img.gz/
|
||||
TFTP_IMAGE_UNPACK_COMMAND: "gunzip --force $TESTBED_TFTP_PATH/$TFTP_IMAGE_FILENAME || true"
|
||||
DUT_INIT_SCRIPTS: |
|
||||
.gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh
|
||||
@@ -1,6 +1,6 @@
|
||||
.build Docker image sdk-intel_mips-xrx500:
|
||||
stage: docker SDK
|
||||
needs: ["build test intel_mips prpl"]
|
||||
needs: ["build test intel_mips prpl webui"]
|
||||
variables:
|
||||
DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk
|
||||
DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
build Docker image sdk-ipq40xx-generic:
|
||||
stage: docker SDK
|
||||
needs: ["build test ipq40xx prpl"]
|
||||
needs: ["build test ipq40xx prpl webui"]
|
||||
variables:
|
||||
DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk
|
||||
DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH
|
||||
@@ -40,7 +40,7 @@ deploy Docker image sdk-ipq40xx-generic:
|
||||
|
||||
build Docker image sdk-mvebu-cortexa9:
|
||||
stage: docker SDK
|
||||
needs: ["build test mvebu prpl"]
|
||||
needs: ["build test mvebu prpl webui"]
|
||||
variables:
|
||||
DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk
|
||||
DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH
|
||||
@@ -56,3 +56,23 @@ deploy Docker image sdk-mvebu-cortexa9:
|
||||
stage: docker SDK deploy
|
||||
extends: .deploy Docker image
|
||||
needs: ["test Docker image sdk-mvebu-cortexa9"]
|
||||
|
||||
|
||||
build Docker image sdk-x86-64:
|
||||
stage: docker SDK
|
||||
needs: ["build test x86_64 prpl webui"]
|
||||
variables:
|
||||
DOCKER_DOCKERFILE_PATH: .gitlab/docker/sdk
|
||||
DOCKER_BUILD_EXTRA_ARGS: --build-arg DESIGNATED_BRANCH=$CI_DESIGNATED_BRANCH
|
||||
extends: .build Docker image
|
||||
before_script:
|
||||
- tar xf bin/targets/x86/64/openwrt-sdk-x86-64_gcc*.Linux-x86_64.tar.xz --strip=1 -C .gitlab/docker/sdk
|
||||
|
||||
test Docker image sdk-x86-64:
|
||||
extends: .test Docker SDK image
|
||||
needs: ["build Docker image sdk-x86-64"]
|
||||
|
||||
deploy Docker image sdk-x86-64:
|
||||
stage: docker SDK deploy
|
||||
extends: .deploy Docker image
|
||||
needs: ["test Docker image sdk-x86-64"]
|
||||
|
||||
@@ -28,14 +28,15 @@ RUN \
|
||||
RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
|
||||
ENV LANG=en_US.utf8
|
||||
|
||||
ENV LABGRID_COMMIT=e1da2a319314
|
||||
RUN git clone --branch wip/testbed-next https://gitlab.com/prpl-foundation/prplOS/labgrid
|
||||
ENV LABGRID_COMMIT=0e1ef80ca803
|
||||
RUN git clone --branch wip/testbed https://gitlab.com/prpl-foundation/prplOS/labgrid
|
||||
WORKDIR labgrid
|
||||
RUN git reset --hard $LABGRID_COMMIT
|
||||
|
||||
RUN \
|
||||
pip3 install -U pip && \
|
||||
pip3 install -r requirements.txt && \
|
||||
pip3 install -r modbus-requirements.txt && \
|
||||
python3 setup.py install && \
|
||||
rm -fr /labgrid
|
||||
|
||||
|
||||
Binary file not shown.
9
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
Normal file
9
.gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
ssh root@$TARGET_LAN_IP "ubus -t 200 wait_for PPP"
|
||||
ssh root@$TARGET_LAN_IP "ubus -t 200 wait_for DHCPv4"
|
||||
ssh root@$TARGET_LAN_IP "ubus -t 200 wait_for IP"
|
||||
ssh root@$TARGET_LAN_IP "ubus call DHCPv4.Client.1 _set '{\"parameters\":{\"Enable\":0}}'"
|
||||
ssh root@$TARGET_LAN_IP "ubus call PPP.Interface.1 _set '{\"parameters\":{\"Enable\":1}}'"
|
||||
ssh root@$TARGET_LAN_IP "ubus call IP.Interface.2 _set '{\"parameters\":{\"LowerLayers\":\"Device.PPP.Interface.1.\"}}'"
|
||||
ssh root@$TARGET_LAN_IP "ubus call IP.Interface.2.IPv4Address.1 _set '{\"parameters\":{\"AddressingType\":\"IPCP\"}}'"
|
||||
4
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
Normal file
4
.gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
.gitlab/scripts/testbed-device.py --target "$LABGRID_TARGET" init_vlans
|
||||
true
|
||||
4
.gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh
Normal file
4
.gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
scp .gitlab/mockups/tr181-mockups.tar.gz root@${TARGET_LAN_IP}:/tmp/
|
||||
ssh root@$TARGET_LAN_IP "tar xzf /tmp/tr181-mockups.tar.gz -C / && /etc/init.d/tr181-mockups start"
|
||||
@@ -240,20 +240,10 @@ class JiraHelper:
|
||||
self.login()
|
||||
|
||||
def login(self):
|
||||
cert_data = None
|
||||
args = self.args
|
||||
|
||||
with open(args.private_key, "r", errors="ignore") as cert_file:
|
||||
cert_data = cert_file.read()
|
||||
|
||||
oauth_dict = {
|
||||
"access_token": args.access_token,
|
||||
"access_token_secret": args.access_token_secret,
|
||||
"consumer_key": args.consumer_key,
|
||||
"key_cert": cert_data,
|
||||
}
|
||||
|
||||
self.jira = JIRA({"server": args.instance_url}, oauth=oauth_dict)
|
||||
self.jira = JIRA(
|
||||
args.instance_url, basic_auth=(args.api_username, args.api_token)
|
||||
)
|
||||
|
||||
def create_or_update_issue(self, failure_type, failure_details):
|
||||
args = self.args
|
||||
@@ -378,24 +368,17 @@ def main():
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--access-token",
|
||||
"--api-username",
|
||||
type=str,
|
||||
default=os.environ.get("JIRA_ACCESS_TOKEN"),
|
||||
help="Jira access token (default: %(default)s)",
|
||||
default=os.environ.get("JIRA_API_USERNAME"),
|
||||
help="Jira API username",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--access-token-secret",
|
||||
"--api-token",
|
||||
type=str,
|
||||
default=os.environ.get("JIRA_ACCESS_TOKEN_SECRET"),
|
||||
help="Jira access token secret",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--consumer-key",
|
||||
type=str,
|
||||
default=os.environ.get("JIRA_CONSUMER_KEY"),
|
||||
help="Jira consumer key",
|
||||
default=os.environ.get("JIRA_API_TOKEN"),
|
||||
help="Jira API token",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
@@ -405,13 +388,6 @@ def main():
|
||||
help="Jira instance URL (default: %(default)s)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--private-key",
|
||||
type=str,
|
||||
default=os.environ.get("JIRA_PRIVATE_KEY"),
|
||||
help="Jira private key",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--project",
|
||||
type=str,
|
||||
|
||||
@@ -4,18 +4,234 @@ import argparse
|
||||
import os
|
||||
import sys
|
||||
import logging
|
||||
import json
|
||||
import time
|
||||
|
||||
from labgrid import Environment, StepReporter
|
||||
from labgrid.driver import ExecutionError
|
||||
from labgrid.consoleloggingreporter import ConsoleLoggingReporter
|
||||
|
||||
|
||||
class OpenWrtConsoleShell:
|
||||
def __init__(self, args, shell):
|
||||
self.args = args
|
||||
self.shell = shell
|
||||
|
||||
def run(self, cmd):
|
||||
result = None
|
||||
|
||||
try:
|
||||
logging.info(f"executing: {cmd}")
|
||||
result = self.shell.run_check(cmd)
|
||||
except ExecutionError as e:
|
||||
stdout = " ".join(e.stdout)
|
||||
stderr = " ".join(e.stderr)
|
||||
logging.error(f"failed: '{e.msg}' stdout='{stdout}' stderr='{stderr}'")
|
||||
return None, (e.msg, e.stdout, e.stderr)
|
||||
|
||||
if len(result) > 0:
|
||||
logging.info("result:\n" + "\n".join(result) + "\n" + "-" * 80)
|
||||
|
||||
return result
|
||||
|
||||
def ubus_call(self, cmd):
|
||||
result = None
|
||||
|
||||
cmd = f"ubus call {cmd}"
|
||||
try:
|
||||
logging.info(f"executing: {cmd}")
|
||||
result = self.shell.run_check(cmd)
|
||||
except ExecutionError as e:
|
||||
stdout = " ".join(e.stdout).replace("\t", "")
|
||||
stderr = " ".join(e.stderr)
|
||||
logging.error(f"failed: {e.msg} stdout='{stdout}' stderr='{stderr}'")
|
||||
return None, e.stdout[-1], (e.msg, e.stdout, e.stderr)
|
||||
|
||||
result = json.loads(" ".join(result))
|
||||
logging.info(f"result: {result}")
|
||||
return result
|
||||
|
||||
|
||||
class UbusTR181:
|
||||
def __init__(self, args, shell):
|
||||
self.args = args
|
||||
self.shell = shell
|
||||
|
||||
def api_call(self, method, path, parameters=None):
|
||||
cmd = f"{path} {method}"
|
||||
if parameters:
|
||||
p = json.dumps({"parameters": parameters})
|
||||
cmd += f" '{p}'"
|
||||
|
||||
return self.shell.ubus_call(cmd)
|
||||
|
||||
def get(self, path, parameters=None):
|
||||
return self.api_call("_get", path, parameters)
|
||||
|
||||
def set(self, path, parameters):
|
||||
return self.api_call("_set", path, parameters)
|
||||
|
||||
def add(self, path, parameters):
|
||||
return self.api_call("_add", path, parameters)
|
||||
|
||||
def remove(self, path, parameters=None):
|
||||
return self.api_call("_del", path, parameters)
|
||||
|
||||
def call(self, path, method, parameters):
|
||||
cmd = f"{path} {method}"
|
||||
if parameters:
|
||||
p = json.dumps(parameters)
|
||||
cmd += f" '{p}'"
|
||||
|
||||
return self.shell.ubus_call(cmd)
|
||||
|
||||
|
||||
class TestbedDevice:
|
||||
def __init__(self, args):
|
||||
self.args = args
|
||||
self.shell = None
|
||||
self.env = Environment(config_file=self.args.config)
|
||||
ConsoleLoggingReporter.start(args.console_logpath)
|
||||
self.target = self.env.get_target(args.target)
|
||||
|
||||
def init_shell(self):
|
||||
if self.shell:
|
||||
return
|
||||
|
||||
self.shell_driver = self.target.get_driver("ShellDriver")
|
||||
self.shell = OpenWrtConsoleShell(self.args, self.shell_driver)
|
||||
|
||||
def init_swconfig_glinet(self):
|
||||
self.shell.run("swconfig dev switch0 vlan 1 set vid 201")
|
||||
self.shell.run("swconfig dev switch0 vlan 1 set ports '0t 3t 4t'")
|
||||
|
||||
self.shell.run("swconfig dev switch0 vlan 2 set vid 101")
|
||||
self.shell.run("swconfig dev switch0 vlan 2 set ports '0t 5t'")
|
||||
|
||||
self.shell.run("swconfig dev switch0 vlan 1 show")
|
||||
self.shell.run("swconfig dev switch0 vlan 2 show")
|
||||
|
||||
self.shell.run(
|
||||
"""
|
||||
uci add network switch_vlan &&
|
||||
uci set network.@switch_vlan[-1]=switch_vlan &&
|
||||
uci set network.@switch_vlan[-1].device='switch0' &&
|
||||
uci set network.@switch_vlan[-1].vlan='2' &&
|
||||
uci set network.@switch_vlan[-1].vid='101' &&
|
||||
uci set network.@switch_vlan[-1].ports='0t 5t' &&
|
||||
uci set network.@switch_vlan[0].vid='201' &&
|
||||
uci set network.@switch_vlan[0].ports='3t 4t 0t' &&
|
||||
uci commit network
|
||||
"""
|
||||
)
|
||||
|
||||
def _init_swconfig(self):
|
||||
if self.board_name.startswith("glinet"):
|
||||
self.init_swconfig_glinet()
|
||||
|
||||
def _init_wan_vlan(self):
|
||||
self.shell.run("ubus -t 60 wait_for X_PRPL-COM_WANManager.WAN")
|
||||
self.ubus_tr181.set("X_PRPL-COM_WANManager.WAN.2.Intf.1", {"VlanID": 101})
|
||||
self.ubus_tr181.call(
|
||||
"X_PRPL-COM_WANManager", "setWANMode", {"WANMode": "demo_vlanmode"}
|
||||
)
|
||||
|
||||
def _init_lan_vlan(self):
|
||||
bridge_lan_ports = {
|
||||
"cznic,turris-omnia": "Bridging.Bridge.1.Port.5",
|
||||
"EASY350 ANYWAN (GRX350) Axepoint Asurada model": "Bridging.Bridge.1.Port.5",
|
||||
}
|
||||
bridge_vlan_port = bridge_lan_ports.get(
|
||||
self.board_name, "Bridging.Bridge.1.Port.2"
|
||||
)
|
||||
|
||||
self.ubus_tr181.set("Bridging.Bridge.1", {"Standard": "802.1Q-2005"})
|
||||
self.ubus_tr181.add(
|
||||
"Bridging.Bridge.1.VLAN",
|
||||
{"Alias": "vlan201", "Name": "vlan201", "VLANID": 201, "Enable": 1},
|
||||
)
|
||||
self.ubus_tr181.set(
|
||||
f"{bridge_vlan_port}",
|
||||
{
|
||||
"AcceptableFrameTypes": "AdmitOnlyVLANTagged",
|
||||
"PVID": "201",
|
||||
"Type": "CustomerVLANPort",
|
||||
"Enable": 1,
|
||||
},
|
||||
)
|
||||
self.ubus_tr181.add(
|
||||
"Bridging.Bridge.1.VLANPort",
|
||||
{
|
||||
"Alias": "LAN",
|
||||
"Name": "vlan201",
|
||||
"Port": f"Device.{bridge_vlan_port}.",
|
||||
"VLAN": "Device.Bridging.Bridge.1.VLAN.1.",
|
||||
"Enable": 1,
|
||||
},
|
||||
)
|
||||
|
||||
def init_vlans(self):
|
||||
self.init_shell()
|
||||
|
||||
system_info = self.shell.ubus_call("system board")
|
||||
if not system_info:
|
||||
logging.error("Unable to determine running DUT board!")
|
||||
return
|
||||
|
||||
self.board_name = system_info["board_name"]
|
||||
logging.info(f"Running on {self.board_name} board")
|
||||
|
||||
self.ubus_tr181 = UbusTR181(self.args, self.shell)
|
||||
self._init_wan_vlan()
|
||||
self._init_lan_vlan()
|
||||
self._init_swconfig()
|
||||
|
||||
logging.info(
|
||||
"Let the system apply the new configuration, waiting 15 seconds..."
|
||||
)
|
||||
time.sleep(15)
|
||||
|
||||
self.ubus_tr181.get("Ethernet.VLANTermination")
|
||||
self.shell.run("(cat /proc/vlan101 || cat /proc/net/vlan/vlan101) 2> /dev/null")
|
||||
self.shell.run("(cat /proc/vlan201 || cat /proc/net/vlan/vlan201) 2> /dev/null")
|
||||
self.shell.run("ip address show vlan101")
|
||||
self.shell.run("ip address show vlan201")
|
||||
self.shell.run("brctl show")
|
||||
self.shell.run("ip route show")
|
||||
|
||||
def console_dump_system_state(self):
|
||||
self.init_shell()
|
||||
|
||||
self.shell.ubus_call("system board")
|
||||
|
||||
self.shell.run("df -h || df")
|
||||
self.shell.run("free -h || free")
|
||||
self.shell.run("ps auxfw || ps w")
|
||||
self.shell.run("cat /etc/config/network")
|
||||
self.shell.run("brctl show")
|
||||
self.shell.run("ip route show")
|
||||
self.shell.run("ip address show")
|
||||
self.shell.run("ip link show")
|
||||
self.shell.run("iptables-save")
|
||||
self.shell.run("ip6tables-save")
|
||||
self.shell.run("cat /var/log/messages || logread")
|
||||
|
||||
self.ubus_tr181 = UbusTR181(self.args, self.shell)
|
||||
self.ubus_tr181.call("IP", "_get", {"depth": 100})
|
||||
self.ubus_tr181.call("NetDev", "_get", {"depth": 100})
|
||||
self.ubus_tr181.call("NetModel", "_get", {"depth": 100})
|
||||
self.ubus_tr181.call("Bridging", "_get", {"depth": 100})
|
||||
self.ubus_tr181.call("Firewall", "_get", {"depth": 100})
|
||||
|
||||
def console_recover_ssh_access(self):
|
||||
self.init_shell()
|
||||
self.shell.run("iptables -P INPUT ACCEPT")
|
||||
self.shell.run("iptables -L INPUT")
|
||||
self.shell.run("/etc/init.d/dropbear restart; sleep 5")
|
||||
self.shell.run("logread | grep dropbear | tail -10")
|
||||
self.shell.run("netstat -nlp | grep :22")
|
||||
self.shell.run("ping -c1 192.168.1.1; ping -c1 192.168.1.2")
|
||||
|
||||
def boot_into(self):
|
||||
strategy = self.target.get_driver("UBootStrategy")
|
||||
dest = self.args.destination
|
||||
@@ -117,6 +333,22 @@ def main():
|
||||
)
|
||||
subparser.set_defaults(func=TestbedDevice.check_network)
|
||||
|
||||
subparser = subparsers.add_parser(
|
||||
"init_vlans", help="initialize VLAN configuration"
|
||||
)
|
||||
subparser.set_defaults(func=TestbedDevice.init_vlans)
|
||||
|
||||
subparser = subparsers.add_parser(
|
||||
"console_dump_system_state", help="dump system state using serial console"
|
||||
)
|
||||
subparser.set_defaults(func=TestbedDevice.console_dump_system_state)
|
||||
|
||||
subparser = subparsers.add_parser(
|
||||
"console_recover_ssh_access",
|
||||
help="try to recover SSH access using serial console",
|
||||
)
|
||||
subparser.set_defaults(func=TestbedDevice.console_recover_ssh_access)
|
||||
|
||||
args = parser.parse_args()
|
||||
if args.verbose >= 1:
|
||||
StepReporter.start()
|
||||
|
||||
@@ -6,6 +6,8 @@ stages:
|
||||
- build
|
||||
|
||||
.build feed with SDK:
|
||||
tags:
|
||||
- package-builder
|
||||
stage: build
|
||||
image: $CI_SDK_IMAGE
|
||||
variables:
|
||||
@@ -26,10 +28,6 @@ stages:
|
||||
|
||||
- >
|
||||
for feed in $CI_SDK_INSTALL_FEEDS ci; do
|
||||
sleep_interval="$(( (RANDOM % 60) + 1 ))"
|
||||
echo "Waiting for $sleep_interval seconds..."
|
||||
sleep "${sleep_interval}s"
|
||||
|
||||
./scripts/feeds update "$feed" ;
|
||||
./scripts/feeds install -a -p "$feed" ;
|
||||
done 2>&1 | tee logs/build.log
|
||||
@@ -104,6 +102,11 @@ stages:
|
||||
CI_SDK_BUILD_PACKAGES: |
|
||||
please-provide
|
||||
CI_SDK_PACKAGE_JOBS_TEMPLATE: |
|
||||
{% if env['CI_SDK_PIPELINE_SOURCE'] %}
|
||||
workflow:
|
||||
rules:
|
||||
- if: $$CI_PIPELINE_SOURCE == "{{ env['CI_SDK_PIPELINE_SOURCE'] }}"
|
||||
{% endif %}
|
||||
include:
|
||||
- remote: https://gitlab.com/prpl-foundation/prplos/prplos/-/raw/$CI_DESIGNATED_BRANCH/.gitlab/sdk.yml
|
||||
{% for sdk in env['CI_SDK_TARGETS'].rstrip().split("\n") %}
|
||||
@@ -168,7 +171,18 @@ stages:
|
||||
variables:
|
||||
CI_SDK_IMAGE: registry.gitlab.com/prpl-foundation/prplos/prplos/$CI_DESIGNATED_BRANCH/sdk-mvebu-cortexa9:latest
|
||||
|
||||
.build feed with ath79-generic-22.03-SNAPSHOT SDK:
|
||||
.build feed with x86-64 SDK:
|
||||
extends: .build feed with SDK
|
||||
variables:
|
||||
CI_SDK_IMAGE: registry.gitlab.com/prpl-foundation/prplos/prplos/$CI_DESIGNATED_BRANCH/sdk-x86-64:latest
|
||||
|
||||
.build feed with ath79-generic-19.07.7 SDK:
|
||||
extends: .build feed with OpenWrt SDK
|
||||
variables:
|
||||
CI_SDK_IMAGE: openwrt/sdk:ath79-generic-22.03-SNAPSHOT
|
||||
CI_SDK_IMAGE: openwrtorg/sdk:ath79-generic-19.07.7
|
||||
|
||||
.build feed with x86-64-22.03.2 SDK:
|
||||
extends: .build feed with OpenWrt SDK
|
||||
variables:
|
||||
CI_SDK_BEFORE_COMPILE_COMMAND: sudo apt-get update; sudo apt-get install -y python3-yaml
|
||||
CI_SDK_IMAGE: openwrt/sdk:x86-64-22.03.2
|
||||
|
||||
@@ -11,10 +11,16 @@
|
||||
TESTBED_LAN_INTERFACE: enp2s0
|
||||
TESTBED_WAN_INTERFACE: enp3s0
|
||||
TESTBED_TFTP_PATH: /var/lib/tftpboot
|
||||
TFTP_IMAGE_PATH: bin/targets/$DUT_ARCH/$DUT_SUBTARGET
|
||||
TFTP_IMAGE_PATH: bin/targets/$DUT_TARGET/$DUT_SUBTARGET
|
||||
PACKAGE_DIR: bin/packages
|
||||
DUT_ARCH_PACKAGES_PATH: $PACKAGE_DIR/${DUT_ARCH}_${DUT_CPU_TYPE}_${DUT_CPU_SUBTYPE}
|
||||
TARGET_LAN_IP: 192.168.1.1
|
||||
TARGET_LAN_TEST_HOST: 192.168.1.2
|
||||
DUT_SLEEP_AFTER_BOOT: 90
|
||||
DUT_SSH_CONNECT_TIMEOUT: 30
|
||||
DUT_SSH_CONNECT_ATTEMPTS: 3
|
||||
DUT_TR181_WAN_INTERFACE: Device.Ethernet.Link.2.
|
||||
DUT_TR181_LAN_INTERFACE: Device.Ethernet.Link.3.
|
||||
CRAM_REMOTE_COMMAND: ssh root@$TARGET_LAN_IP
|
||||
CRAM_TEST_SUITE: |
|
||||
.gitlab/tests/cram/generic/acceleration-plan-components
|
||||
@@ -29,11 +35,14 @@
|
||||
- sudo ip link set $TESTBED_WAN_INTERFACE up 2> /dev/null
|
||||
- sleep 10
|
||||
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
- mkdir -p ~/.ssh; chmod 700 ~/.ssh
|
||||
- ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
|
||||
- chmod 644 ~/.ssh/known_hosts
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
|
||||
eval $(ssh-agent -s)
|
||||
echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
|
||||
chmod 644 ~/.ssh/known_hosts
|
||||
fi
|
||||
|
||||
- >
|
||||
if [ -n "$TFTP_IMAGE_DOWNLOAD_URL" ]; then
|
||||
@@ -48,6 +57,12 @@
|
||||
echo "Running $TFTP_IMAGE_UNPACK_COMMAND"
|
||||
eval "$TFTP_IMAGE_UNPACK_COMMAND"
|
||||
fi
|
||||
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
|
||||
export TB_CONFIG=".testbed/labgrid/testbed-02.yaml"
|
||||
fi
|
||||
|
||||
- .gitlab/scripts/testbed-device.py --target $LABGRID_TARGET boot_into shell
|
||||
- >
|
||||
.gitlab/scripts/testbed-device.py
|
||||
@@ -55,14 +70,8 @@
|
||||
--network lan
|
||||
--remote-host $TARGET_LAN_TEST_HOST
|
||||
|
||||
- >
|
||||
retry_count=3;
|
||||
while [ $retry_count -gt 0 ]; do
|
||||
echo "Waiting for SSH availability on $TARGET_LAN_IP"
|
||||
ssh-keyscan "$TARGET_LAN_IP" 2>&1 | grep -q "$TARGET_LAN_IP" && break
|
||||
retry_count="$(( retry_count - 1 ))"
|
||||
sleep 5
|
||||
done
|
||||
- echo "Waiting for SSH connection availability with ${DUT_SSH_CONNECT_TIMEOUT}sec timeout, with $DUT_SSH_CONNECT_ATTEMPTS attempts..."
|
||||
- time ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectionAttempts=$DUT_SSH_CONNECT_ATTEMPTS -o ConnectTimeout=$DUT_SSH_CONNECT_TIMEOUT root@$TARGET_LAN_IP 'exit 0'
|
||||
|
||||
- ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null
|
||||
- ssh root@$TARGET_LAN_IP "cat /var/log/messages" > syslog-$LABGRID_TARGET.txt 2> /dev/null || true
|
||||
@@ -82,11 +91,25 @@
|
||||
true
|
||||
}
|
||||
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
- mkdir -p ~/.ssh; chmod 700 ~/.ssh
|
||||
- ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
|
||||
- chmod 644 ~/.ssh/known_hosts
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-01; then
|
||||
eval $(ssh-agent -s)
|
||||
echo "$TESTBED_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
ssh-keyscan $TESTBED_UART_RELAY_HOST > ~/.ssh/known_hosts 2> /dev/null
|
||||
chmod 644 ~/.ssh/known_hosts
|
||||
fi
|
||||
|
||||
- >
|
||||
if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then
|
||||
export TB_CONFIG=".testbed/labgrid/testbed-02.yaml"
|
||||
fi
|
||||
|
||||
- >
|
||||
ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=15 root@$TARGET_LAN_IP 'exit 0' || {
|
||||
.gitlab/scripts/testbed-device.py --target $LABGRID_TARGET console_dump_system_state
|
||||
.gitlab/scripts/testbed-device.py --target $LABGRID_TARGET console_recover_ssh_access
|
||||
} || true
|
||||
|
||||
- ssh-keyscan $TARGET_LAN_IP >> ~/.ssh/known_hosts 2> /dev/null
|
||||
- >
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
.glinet-b1300 testbed:
|
||||
extends: .testbed true.cz
|
||||
variables:
|
||||
DUT_ARCH: ipq40xx
|
||||
DUT_ARCH: arm
|
||||
DUT_TARGET: ipq40xx
|
||||
DUT_SUBTARGET: generic
|
||||
DUT_BOARD: glinet-b1300
|
||||
DUT_WAN_INTERFACE: wan
|
||||
DUT_CPU_TYPE: cortex-a7
|
||||
DUT_CPU_SUBTYPE: neon-vfpv4
|
||||
LABGRID_TARGET: glinet-b1300-initramfs
|
||||
TFTP_IMAGE_FILENAME: openwrt-ipq40xx-generic-glinet_gl-b1300-initramfs-fit-zImage.itb
|
||||
TFTP_IMAGE_FILENAME_PATTERN: /.*openwrt-ipq40xx-generic-glinet_gl-b1300-initramfs-fit-zImage.itb/
|
||||
tags:
|
||||
- dut-glinet-b1300
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
.nec-wx3000hp testbed:
|
||||
extends: .testbed true.cz
|
||||
variables:
|
||||
DUT_ARCH: intel_mips
|
||||
DUT_ARCH: mips
|
||||
DUT_TARGET: intel_mips
|
||||
DUT_SUBTARGET: xrx500
|
||||
DUT_BOARD: nec-wx3000hp
|
||||
DUT_CPU_TYPE: 24kc
|
||||
DUT_CPU_SUBTYPE: nomips16
|
||||
LABGRID_TARGET: nec-wx3000hp-nand
|
||||
TFTP_IMAGE_FILENAME: AX3000_1600_ETH_11AXUCI_ASURADA-squashfs-fullimage.img
|
||||
TFTP_IMAGE_FILENAME_PATTERN: /.*AX3000_1600_ETH_11AXUCI_ASURADA-squashfs-fullimage.img/
|
||||
tags:
|
||||
- dut-nec-wx3000hp
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
.turris-omnia testbed:
|
||||
extends: .testbed true.cz
|
||||
variables:
|
||||
DUT_ARCH: mvebu
|
||||
DUT_ARCH: arm
|
||||
DUT_TARGET: mvebu
|
||||
DUT_SUBTARGET: cortexa9
|
||||
DUT_BOARD: turris-omnia
|
||||
DUT_CPU_TYPE: cortex-a9
|
||||
DUT_CPU_SUBTYPE: vfpv3-d16
|
||||
DUT_WAN_INTERFACE: eth2
|
||||
LABGRID_TARGET: turris-omnia-initramfs
|
||||
TFTP_IMAGE_FILENAME: openwrt-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin
|
||||
TFTP_IMAGE_FILENAME_PATTERN: /.*openwrt-mvebu-cortexa9-cznic_turris-omnia-initramfs-kernel.bin/
|
||||
tags:
|
||||
- dut-turris-omnia
|
||||
|
||||
@@ -332,7 +332,7 @@ SECTION "Base Configuration" {
|
||||
# testvar lanMask 255.255.255.0
|
||||
# testvar lanDomainName qacafe.com
|
||||
# testvar lanMtu default
|
||||
# testvar lanHostname mydut
|
||||
testvar lanHostname prplOS
|
||||
# testvar lanGuestMode no
|
||||
|
||||
SECTION "ARP Settings" {
|
||||
@@ -679,7 +679,7 @@ SECTION "Base Configuration" {
|
||||
testvar firewallTcpOpenPorts "50805"
|
||||
# testvar firewallTcpClosedPorts 2323
|
||||
# testvar firewallUdpOpenPorts 1234
|
||||
# testvar firewallUdpClosedPorts 113
|
||||
testvar firewallUdpClosedPorts 68
|
||||
# testvar firewallOutBlockedTcpPorts 1234
|
||||
# testvar firewallOutBlockedUdpPorts 1234
|
||||
# testvar firewallOutBlockedIpProtos 0
|
||||
@@ -1292,7 +1292,7 @@ SECTION "CDRouter IPv6 Add-On" {
|
||||
SECTION "IPv6 LAN" {
|
||||
|
||||
# testvar ipv6LanMode autoconf
|
||||
# testvar ipv6LanIp 3001:dddd::%eui64%
|
||||
testvar ipv6LanIp 3001:dddd::1
|
||||
# testvar ipv6LanPrivacyAddresses no
|
||||
# testvar ipv6LanPrefixLen 64
|
||||
# testvar ipv6MaxLanClients 32
|
||||
|
||||
2677
.testbed/cdrouter/configurations/generic-ipv6
Normal file
2677
.testbed/cdrouter/configurations/generic-ipv6
Normal file
File diff suppressed because it is too large
Load Diff
2677
.testbed/cdrouter/configurations/ppp
Normal file
2677
.testbed/cdrouter/configurations/ppp
Normal file
File diff suppressed because it is too large
Load Diff
2677
.testbed/cdrouter/configurations/ppp-ipv6
Normal file
2677
.testbed/cdrouter/configurations/ppp-ipv6
Normal file
File diff suppressed because it is too large
Load Diff
2677
.testbed/cdrouter/configurations/vlan
Normal file
2677
.testbed/cdrouter/configurations/vlan
Normal file
File diff suppressed because it is too large
Load Diff
2677
.testbed/cdrouter/configurations/vlan-ipv6
Normal file
2677
.testbed/cdrouter/configurations/vlan-ipv6
Normal file
File diff suppressed because it is too large
Load Diff
2677
.testbed/cdrouter/configurations/vlan-ppp
Normal file
2677
.testbed/cdrouter/configurations/vlan-ppp
Normal file
File diff suppressed because it is too large
Load Diff
2677
.testbed/cdrouter/configurations/vlan-ppp-ipv6
Normal file
2677
.testbed/cdrouter/configurations/vlan-ppp-ipv6
Normal file
File diff suppressed because it is too large
Load Diff
BIN
.testbed/cdrouter/packages/CDRouter-IPv6-Top-100+mDNS.gz
Normal file
BIN
.testbed/cdrouter/packages/CDRouter-IPv6-Top-100+mDNS.gz
Normal file
Binary file not shown.
BIN
.testbed/cdrouter/packages/CDRouter-Top-100+mDNS.gz
Normal file
BIN
.testbed/cdrouter/packages/CDRouter-Top-100+mDNS.gz
Normal file
Binary file not shown.
63
.testbed/labgrid/testbed-02.yaml
Normal file
63
.testbed/labgrid/testbed-02.yaml
Normal file
@@ -0,0 +1,63 @@
|
||||
targets:
|
||||
|
||||
glinet-b1300-initramfs:
|
||||
resources:
|
||||
ModbusTCPCoil:
|
||||
host: quido.testbed-02.vpn.true.cz
|
||||
coil: 7
|
||||
write_multiple_coils: True
|
||||
RawSerialPort:
|
||||
port: "/dev/glinet-b1300"
|
||||
drivers:
|
||||
ModbusCoilDriver: {}
|
||||
DigitalOutputPowerDriver: {}
|
||||
SerialDriver: {}
|
||||
ShellDriver:
|
||||
console_ready: Please press Enter to activate this console.
|
||||
prompt: 'root@[\w()]+:[^ ]+ '
|
||||
login_prompt: built-in shell (ash)
|
||||
await_login_timeout: 15
|
||||
username: kingbanik
|
||||
UBootDriver:
|
||||
prompt: '\(IPQ40xx\) # '
|
||||
password: 'gl'
|
||||
password_prompt: 'Hit "gl" key to stop booting'
|
||||
init_commands:
|
||||
- setenv bootdelay 0
|
||||
- setenv serverip 192.168.1.2
|
||||
- setenv ipaddr 192.168.1.1
|
||||
boot_command_delay: 5
|
||||
boot_timeout: 90
|
||||
boot_command: tftpboot 0x88000000 openwrt-ipq40xx-generic-glinet_gl-b1300-initramfs-fit-zImage.itb && bootm 0x88000000
|
||||
UBootStrategy: {}
|
||||
|
||||
glinet-b1300-nor:
|
||||
resources:
|
||||
ModbusTCPCoil:
|
||||
host: quido.testbed-02.vpn.true.cz
|
||||
coil: 7
|
||||
write_multiple_coils: True
|
||||
RawSerialPort:
|
||||
port: "/dev/glinet-b1300"
|
||||
drivers:
|
||||
ModbusCoilDriver: {}
|
||||
DigitalOutputPowerDriver: {}
|
||||
SerialDriver: {}
|
||||
ShellDriver:
|
||||
console_ready: Please press Enter to activate this console.
|
||||
prompt: 'root@[\w()]+:[^ ]+ '
|
||||
login_prompt: built-in shell (ash)
|
||||
await_login_timeout: 15
|
||||
username: kingbanik
|
||||
UBootDriver:
|
||||
prompt: '\(IPQ40xx\) # '
|
||||
password: 'gl'
|
||||
password_prompt: 'Hit "gl" key to stop booting'
|
||||
init_commands:
|
||||
- setenv bootdelay 0
|
||||
- setenv serverip 192.168.1.2
|
||||
- setenv ipaddr 192.168.1.1
|
||||
boot_command_delay: 5
|
||||
boot_timeout: 180
|
||||
boot_command: tftpboot 0x84000000 openwrt-ipq40xx-generic-glinet_gl-b1300-squashfs-sysupgrade.bin && sf probe && sf erase 0x180000 0x1e80000 && sf write 0x84000000 0x180000 $filesize && bootipq
|
||||
UBootStrategy: {}
|
||||
Reference in New Issue
Block a user