BLE Examples Test #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################################################################### | |
# | |
# Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by | |
# Analog Devices, Inc.), | |
# Copyright (C) 2023-2024 Analog Devices, Inc. | |
# | |
# 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: BLE Examples Test | |
# Cancels workflows in progress that are in the same PR | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on push or pull request events but only for the "main" branch | |
#push: | |
# branches: [ "main" ] | |
pull_request: | |
branches: ["main"] | |
types: [opened, reopened, synchronize, ready_for_review] # When to run the workflow on PR | |
paths-ignore: | |
# Any files in a docs directory anywhere in the repository. | |
- "**/docs/**" | |
- "**/Documentation/**" | |
# Any README.md file anywhere in the repository. | |
- "**/README.md" | |
# Any .pdf file anywhere in the repository. | |
- "**/*.pdf" | |
# Any .yml file anywhere in the repository. | |
# can comment this out when testing changes to THIS yml file | |
- "**/*.yml" | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
env: | |
LOCK_MAX32655_B2: false | |
LOCK_MAX32655_B1: false | |
LOCK_MAX32665_B1: false | |
# defaults: | |
# run: | |
# shell: bash -leo pipefail {0} | |
#---------------------------------------------------------------------------------------------- | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
BLE_Tests: | |
# The type of runner that the job will run on | |
runs-on: [self-hosted] | |
if: github.event.pull_request.draft == false | |
#---------------------------------------------------------------------------------------------- | |
# De inits submodules and cleans repo | |
steps: | |
- name: Test1 | |
run: | | |
echo $CI_BOARD_CONFIG | |
printenv | |
# # Clean and remove any local modifications | |
# - name: Clean | |
# continue-on-error: true | |
# run: | | |
# # Remove local modifications | |
# set +e | |
# # Attempt to clean the repo | |
# git scorch | |
# git clean -ffdx | |
# git reset --hard | |
# retval=$? | |
# # Remove everything if this fails | |
# if [[ $retval -ne 0 ]] | |
# then | |
# rm -rf * | |
# fi | |
# set -e | |
# # give launcher script permission to execute | |
# cd .github/workflows/scripts | |
# chmod +x test_launcher.sh | |
# chmod +x mass_erase_board.sh | |
# #---------------------------------------------------------------------------------------------- | |
# # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
# - uses: actions/checkout@v4 | |
# with: | |
# submodules: false | |
# fetch-depth: 0 | |
# #---------------------------------------------------------------------------------------------- | |
# #------------------------------| MAX32655 |---------------------------------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# - name: Check MAX32655 | |
# id: MAX32655 | |
# env: | |
# MAX32655_BLE_FILES_CHANGED: false | |
# MAX32655_EXAMPLES_TO_TEST: () | |
# MAX32655_RUN_ALL_TEST: false | |
# MAX32655_DATS_CONNECTED_TEST: false | |
# MAX32655_OTAS_CONNECTED_TEST: false | |
# run: | | |
# # BLE examples to watch | |
# declare -a watched_examples=( | |
# # underscore in filter to ignore the BLE5_ctr examples | |
# Examples/MAX32655/Bluetooth/BLE_* | |
# Examples/MAX32655/Bluetooth/Bootloader | |
# ) | |
# # Other directories to watch | |
# declare -a watched_other=( | |
# #To test changes this workflow push a commit with this uncommented | |
# #.github/workflows/ | |
# .github/workflows/ci-tests/Examples_tests | |
# Libraries/libs.mk | |
# # Bluetooth | |
# Libraries/BlePhy/MAX32655 | |
# Libraries/Cordio | |
# # Board specific | |
# Libraries/Boards/MAX32655 | |
# # Libraries | |
# Libraries/CMSIS/Device/Maxim/MAX32655 | |
# Libraries/PeriphDrivers/libPeriphDriver.mk | |
# Libraries/PeriphDrivers/periphdriver.mk | |
# Libraries/PeriphDrivers/max32655_files.mk | |
# # AES | |
# Libraries/PeriphDrivers/Source/AES/aes_me17.c | |
# Libraries/PeriphDrivers/Source/AES/aes_revb_regs.h | |
# Libraries/PeriphDrivers/Source/AES/aes_revb.c | |
# Libraries/PeriphDrivers/Source/AES/aes_revb.h | |
# Libraries/PeriphDrivers/Source/AES/aeskeys_revb_regs.h | |
# # Flash controller | |
# Libraries/PeriphDrivers/Source/FLC/flc_common.c | |
# Libraries/PeriphDrivers/Source/FLC/flc_common.h | |
# Libraries/PeriphDrivers/Source/FLC/flc_me17.c | |
# Libraries/PeriphDrivers/Source/FLC/flc_reva.c | |
# Libraries/PeriphDrivers/Source/FLC/flc_reva.h | |
# # GPIO | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_common.c | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_common.h | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_me17.c | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_reva.c | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_reva.h | |
# # LowPower | |
# Libraries/PeriphDrivers/Source/LP/lp_me17.c | |
# # Simo | |
# Libraries/PeriphDrivers/Source/SIMO/simo_me17.c | |
# Libraries/PeriphDrivers/Source/SIMO/simo_reva_regs.h | |
# Libraries/PeriphDrivers/Source/SIMO/simo_.c | |
# Libraries/PeriphDrivers/Source/SIMO/simo_.h | |
# # System | |
# Libraries/PeriphDrivers/Source/SYS/mxc_assert.c | |
# Libraries/PeriphDrivers/Source/SYS/mxc_delay.c | |
# Libraries/PeriphDrivers/Source/SYS/mxc_lock.c | |
# Libraries/PeriphDrivers/Source/SYS/mxc_table.c | |
# Libraries/PeriphDrivers/Source/SYS/pins_me17.c | |
# Libraries/PeriphDrivers/Source/SYS/sys_me17.c | |
# # Timer | |
# Libraries/PeriphDrivers/Source/TMR/tmr_common.c | |
# Libraries/PeriphDrivers/Source/TMR/tmr_common.h | |
# Libraries/PeriphDrivers/Source/TMR/tmr_me17.c | |
# Libraries/PeriphDrivers/Source/TMR/tmr_revb_regs.h | |
# Libraries/PeriphDrivers/Source/TMR/tmr_revb.c | |
# Libraries/PeriphDrivers/Source/TMR/tmr_revb.h | |
# # True Random Number Generator | |
# Libraries/PeriphDrivers/Source/TRNG/trng_me17.c | |
# Libraries/PeriphDrivers/Source/TRNG/trng_revb_regs.h | |
# Libraries/PeriphDrivers/Source/TRNG/trng_revb.c | |
# Libraries/PeriphDrivers/Source/TRNG/trng_revb.h | |
# # UART | |
# Libraries/PeriphDrivers/Source/UART/uart_common.c | |
# Libraries/PeriphDrivers/Source/UART/uart_common.h | |
# Libraries/PeriphDrivers/Source/UART/uart_me17.c | |
# Libraries/PeriphDrivers/Source/UART/uart_revb_regs.h | |
# Libraries/PeriphDrivers/Source/UART/uart_revb.c | |
# Libraries/PeriphDrivers/Source/UART/uart_revb.h | |
# # WakeUp Timer | |
# Libraries/PeriphDrivers/Source/WUT/wut_me17.c | |
# Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h | |
# Libraries/PeriphDrivers/Source/WUT/wut_reva.c | |
# Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h ) | |
# # Directories to ignore | |
# declare -a ignored=( | |
# Libraries/Cordio/docs | |
# Documentation | |
# ) | |
# # Create an associative array for ignored() | |
# declare -A aignored=() | |
# for ignore in "${ignored[@]}"; do aignored["${ignore%/}"]=1; done | |
# # Copy the working directory list, skipping entries in ignored() | |
# declare -a results_other=() | |
# for watch in "${watched_other[@]}"; do test -v aignored["${watch%/}"] || results_other+=("${watch%/}"); done | |
# # Copy the working directory list, skipping entries in ignored() | |
# declare -a results_examples=() | |
# for watch in "${watched_examples[@]}"; do test -v aignored["${watch%/}"] || results_examples+=("${watch%/}"); done | |
# # Print the resulting array, separated by newlines, in sorted order | |
# printf "\r\n-------- Watched Examples ------------\r\n\r\n" | |
# printf '%s\n' "${results_examples[@]}" | sort | |
# printf "\r\n-----------------------------------\r\n" | |
# # Print the resulting array, separated by newlines, in sorted order | |
# printf "\r\n-------- Watched Other ------------\r\n\r\n" | |
# printf '%s\n' "${results_other[@]}" | sort | |
# printf "\r\n-----------------------------------\r\n" | |
# #Get the diff from main | |
# CHANGE_FILES=$(git diff --ignore-submodules --name-only remotes/origin/main) | |
# # Assume we want to actually run the workflow if no files changed | |
# if [[ "$CHANGE_FILES" != "" ]]; then | |
# # Check if ALL test are required due to 'OTHER' non BLE example directory modified | |
# for watch_file in "${results_other[@]}"; do | |
# if [[ "$CHANGE_FILES" == *"$watch_file"* ]]; then | |
# MAX32655_RUN_ALL_TEST=true | |
# echo "MAX32655_RUN_ALL_TEST=true" >> $GITHUB_ENV | |
# echo "Enabled all tests to run because $watch_file was modified" | |
# fi | |
# done | |
# # Check to see which examples have been modified to only test those | |
# for watch_file in "${results_examples[@]}"; do | |
# if [[ "$CHANGE_FILES" == *"$watch_file"* ]]; then | |
# MAX32655_BLE_FILES_CHANGED=true | |
# echo "MAX32655_BLE_FILES_CHANGED=true" >> $GITHUB_ENV | |
# example_to_test=$(basename "$watch_file") | |
# # Store list of examples that need to be tested | |
# examples_list+=($example_to_test) | |
# echo "Enabled example tests to run because $watch_file was modified" | |
# # If dats/c or OTAC/s were modified we should also test the connected functionality | |
# if [[ $example_to_test == "BLE_dats" ]] || [[ $example_to_test == "BLE_datc" ]]; then | |
# MAX32655_DATS_CONNECTED_TEST=true | |
# echo "MAX32655_DATS_CONNECTED_TEST=true" >> $GITHUB_ENV | |
# echo "Enabled Datsc connected test" | |
# fi | |
# if [[ $example_to_test == "BLE_otas" ]] || [[ $example_to_test == "BLE_otac" ]]; then | |
# MAX32655_OTAS_CONNECTED_TEST=true | |
# echo "MAX32655_OTAS_CONNECTED_TEST=true" >> $GITHUB_ENV | |
# echo "Enabled OTA connected test" | |
# fi | |
# fi | |
# done | |
# # Save examples list to env varaible available across steps | |
# echo "MAX32655_EXAMPLES_TO_TEST=${examples_list[@]}" >> $GITHUB_ENV | |
# else | |
# # Assume we want to actually run the workflow if no files changed | |
# MAX32655_RUN_ALL_TEST=true | |
# echo "MAX32655_RUN_ALL_TEST=true" >> $GITHUB_ENV | |
# echo "Assuming you want all tests to run" | |
# fi | |
# # Lock main board and DUT if any connected test is required otherwise just lock DUT | |
# if [[ $MAX32655_OTAS_CONNECTED_TEST == 'true' ]] || [[ $MAX32655_DATS_CONNECTED_TEST == 'true' ]] || [[ $MAX32655_RUN_ALL_TEST == 'true' ]]; then | |
# echo "LOCK_MAX32655_B1=true" >> $GITHUB_ENV | |
# echo "LOCK_MAX32655_B2=true" >> $GITHUB_ENV | |
# elif [[ $MAX32655_BLE_FILES_CHANGED == 'true' ]]; then | |
# echo "LOCK_MAX32655_B2=true" >> $GITHUB_ENV | |
# else | |
# echo "no tests enabled, NOT locking anything at this step" | |
# fi | |
# #---------------------------------------------------------------------------------------------- | |
# #------------------------------| MAX32665 |---------------------------------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# # Checks if changes have been made to require a test on ME14 | |
# - name: Check MAX32665 | |
# id: MAX32665 | |
# env: | |
# MAX32665_BLE_FILES_CHANGED: false | |
# MAX32665_EXAMPLES_TO_TEST: () | |
# MAX32665_RUN_ALL_TEST: false | |
# MAX32665_DATS_CONNECTED_TEST: false | |
# MAX32665_OTAS_CONNECTED_TEST: false | |
# run: | | |
# # BLE examples to watch | |
# declare -a watched_examples=( | |
# # underscore in filter to ignore the BLE5_ctr examples | |
# Examples/MAX32665/Bluetooth/BLE_* | |
# Examples/MAX32665/Bluetooth/Bootloader | |
# ) | |
# # Other directories to watch | |
# declare -a watched_other=( | |
# #To test changes this workflow push a commit with this uncommented | |
# #.github/workflows/ | |
# .github/workflows/ci-tests/Examples_tests | |
# Libraries/libs.mk | |
# # Bluetooth | |
# Libraries/BlePhy/MAX32665 | |
# Libraries/Cordio | |
# # Board specific | |
# Libraries/Boards/MAX32665 | |
# # Libraries | |
# Libraries/CMSIS/Device/Maxim/MAX32665 | |
# Libraries/PeriphDrivers/libPeriphDriver.mk | |
# Libraries/PeriphDrivers/periphdriver.mk | |
# Libraries/PeriphDrivers/max32665_files.mk | |
# # Flash controller | |
# Libraries/PeriphDrivers/Source/FLC/flc_common.c | |
# Libraries/PeriphDrivers/Source/FLC/flc_common.h | |
# Libraries/PeriphDrivers/Source/FLC/flc_me14.c | |
# Libraries/PeriphDrivers/Source/FLC/flc_reva.c | |
# Libraries/PeriphDrivers/Source/FLC/flc_reva.h | |
# # GPIO | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_common.c | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_common.h | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_me14.c | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_reva.c | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_reva.h | |
# # LowPower | |
# Libraries/PeriphDrivers/Source/LP/lp_me14.c | |
# # Simo | |
# Libraries/PeriphDrivers/Source/SIMO/simo_me14.c | |
# Libraries/PeriphDrivers/Source/SIMO/simo_reva_regs.h | |
# Libraries/PeriphDrivers/Source/SIMO/simo_.c | |
# Libraries/PeriphDrivers/Source/SIMO/simo_.h | |
# # System | |
# Libraries/PeriphDrivers/Source/SYS/mxc_assert.c | |
# Libraries/PeriphDrivers/Source/SYS/mxc_delay.c | |
# Libraries/PeriphDrivers/Source/SYS/mxc_lock.c | |
# Libraries/PeriphDrivers/Source/SYS/mxc_table.c | |
# Libraries/PeriphDrivers/Source/SYS/pins_me14.c | |
# Libraries/PeriphDrivers/Source/SYS/sys_me14.c | |
# # Timer | |
# Libraries/PeriphDrivers/Source/TMR/tmr_common.c | |
# Libraries/PeriphDrivers/Source/TMR/tmr_common.h | |
# Libraries/PeriphDrivers/Source/TMR/tmr_me14.c | |
# Libraries/PeriphDrivers/Source/TMR/tmr_reva_regs.h | |
# Libraries/PeriphDrivers/Source/TMR/tmr_reva.c | |
# Libraries/PeriphDrivers/Source/TMR/tmr_reva.h | |
# # TPU | |
# Libraries/PeriphDrivers/Source/TPU/tpu_me14.c | |
# Libraries/PeriphDrivers/Source/TPU/tpu_reva_regs.h | |
# Libraries/PeriphDrivers/Source/TPU/tpu_reva.c | |
# Libraries/PeriphDrivers/Source/TPU/tpu_reva.h | |
# # True Random Number Generator | |
# Libraries/PeriphDrivers/Source/TRNG/trng_me14.c | |
# Libraries/PeriphDrivers/Source/TRNG/trng_revb_regs.h | |
# Libraries/PeriphDrivers/Source/TRNG/trng_revb.c | |
# Libraries/PeriphDrivers/Source/TRNG/trng_revb.h | |
# # UART | |
# Libraries/PeriphDrivers/Source/UART/uart_common.c | |
# Libraries/PeriphDrivers/Source/UART/uart_common.h | |
# Libraries/PeriphDrivers/Source/UART/uart_me14.c | |
# Libraries/PeriphDrivers/Source/UART/uart_reva_regs.h | |
# Libraries/PeriphDrivers/Source/UART/uart_reva.c | |
# Libraries/PeriphDrivers/Source/UART/uart_reva.h | |
# # WakeUp Timer | |
# Libraries/PeriphDrivers/Source/WUT/wut_me14.c | |
# Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h | |
# Libraries/PeriphDrivers/Source/WUT/wut_reva.c | |
# Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h ) | |
# # Directories to ignore | |
# declare -a ignored=( | |
# Libraries/Cordio/docs | |
# Documentation | |
# ) | |
# # Create an associative array for ignored() | |
# declare -A aignored=() | |
# for ignore in "${ignored[@]}"; do aignored["${ignore%/}"]=1; done | |
# # Copy the working directory list, skipping entries in ignored() | |
# declare -a results_other=() | |
# for watch in "${watched_other[@]}"; do test -v aignored["${watch%/}"] || results_other+=("${watch%/}"); done | |
# # Copy the working directory list, skipping entries in ignored() | |
# declare -a results_examples=() | |
# for watch in "${watched_examples[@]}"; do test -v aignored["${watch%/}"] || results_examples+=("${watch%/}"); done | |
# # Print the resulting array, separated by newlines, in sorted order | |
# printf "\r\n-------- Watched Examples ------------\r\n\r\n" | |
# printf '%s\n' "${results_examples[@]}" | sort | |
# printf "\r\n-----------------------------------\r\n" | |
# # Print the resulting array, separated by newlines, in sorted order | |
# printf "\r\n-------- Watched Other ------------\r\n\r\n" | |
# printf '%s\n' "${results_other[@]}" | sort | |
# printf "\r\n-----------------------------------\r\n" | |
# #Get the diff from main | |
# CHANGE_FILES=$(git diff --ignore-submodules --name-only remotes/origin/main) | |
# # Assume we want to actually run the workflow if no files changed | |
# if [[ "$CHANGE_FILES" != "" ]]; then | |
# # Check if ALL test are required due to 'OTHER' non BLE example directory modified | |
# for watch_file in "${results_other[@]}"; do | |
# if [[ "$CHANGE_FILES" == *"$watch_file"* ]]; then | |
# MAX32665_RUN_ALL_TEST=true | |
# echo "MAX32665_RUN_ALL_TEST=true" >> $GITHUB_ENV | |
# echo "Enabled all tests to run because $watch_file was modified" | |
# fi | |
# done | |
# # Check to see which examples have been modified to only test those | |
# for watch_file in "${results_examples[@]}"; do | |
# if [[ "$CHANGE_FILES" == *"$watch_file"* ]]; then | |
# MAX32665_BLE_FILES_CHANGED=true | |
# echo "MAX32665_BLE_FILES_CHANGED=true" >> $GITHUB_ENV | |
# example_to_test=$(basename "$watch_file") | |
# # Store list of examples that need to be tested | |
# examples_list+=($example_to_test) | |
# echo "Enabled example tests to run because $watch_file was modified" | |
# # If dats/c or OTAC/s were modified we should also test the connected functionality | |
# if [[ $example_to_test == "BLE_dats" ]] || [[ $example_to_test == "BLE_datc" ]]; then | |
# MAX32665_DATS_CONNECTED_TEST=true | |
# echo "MAX32665_DATS_CONNECTED_TEST=true" >> $GITHUB_ENV | |
# echo "Enabled Datsc connected test" | |
# fi | |
# if [[ $example_to_test == "BLE_otas" ]] || [[ $example_to_test == "BLE_otac" ]]; then | |
# MAX32665_OTAS_CONNECTED_TEST=true | |
# echo "MAX32665_OTAS_CONNECTED_TEST=true" >> $GITHUB_ENV | |
# echo "Enabled OTA connected test" | |
# fi | |
# fi | |
# done | |
# # Save examples list to env varaible available across steps | |
# echo "MAX32665_EXAMPLES_TO_TEST=${examples_list[@]}" >> $GITHUB_ENV | |
# else | |
# # Assume we want to actually run the workflow if no files changed | |
# MAX32665_RUN_ALL_TEST=true | |
# echo "MAX32665_RUN_ALL_TEST=true" >> $GITHUB_ENV | |
# fi | |
# # Lock main board and DUT if any connected test is required otherwise just lock DUT | |
# if [[ $MAX32665_OTAS_CONNECTED_TEST == 'true' ]] || [[ $MAX32665_DATS_CONNECTED_TEST == 'true' ]] || [[ $MAX32665_RUN_ALL_TEST == 'true' ]]; then | |
# echo "LOCK_MAX32655_B1=true" >> $GITHUB_ENV | |
# echo "LOCK_MAX32665_B1=true" >> $GITHUB_ENV | |
# elif [[ $MAX32665_BLE_FILES_CHANGED == 'true' ]]; then | |
# echo "LOCK_MAX32665_B1=true" >> $GITHUB_ENV | |
# else | |
# echo "no tests enabled, NOT locking anything at this step" | |
# fi | |
# #---------------------------------------------------------------------------------------------- | |
# #------------------------------| MAX32690 |---------------------------------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# # Checks if changes have been made to require a test on ME14 | |
# - name: Check MAX32690 | |
# id: MAX32690 | |
# env: | |
# MAX32690_BLE_FILES_CHANGED: false | |
# MAX32690_EXAMPLES_TO_TEST: () | |
# MAX32690_RUN_ALL_TEST: false | |
# MAX32690_DATS_CONNECTED_TEST: false | |
# MAX32690_OTAS_CONNECTED_TEST: false | |
# run: | | |
# # BLE examples to watch | |
# declare -a watched_examples=( | |
# # underscore in filter to ignore the BLE5_ctr examples | |
# Examples/MAX32690/Bluetooth/BLE_* | |
# Examples/MAX32690/Bluetooth/Bootloader | |
# ) | |
# # Other directories to watch | |
# declare -a watched_other=( | |
# #To test changes this workflow push a commit with this uncommented | |
# #.github/workflows/ | |
# .github/workflows/ci-tests/Examples_tests | |
# Libraries/libs.mk | |
# # Bluetooth | |
# Libraries/BlePhy/MAX32690 | |
# Libraries/Cordio | |
# # Board specific | |
# Libraries/Boards/MAX32690 | |
# # Libraries | |
# Libraries/CMSIS/Device/Maxim/MAX32690 | |
# Libraries/PeriphDrivers/libPeriphDriver.mk | |
# Libraries/PeriphDrivers/periphdriver.mk | |
# Libraries/PeriphDrivers/max32690_files.mk | |
# # AES | |
# Libraries/PeriphDrivers/Source/AES/aes_me18.c | |
# Libraries/PeriphDrivers/Source/AES/aes_revb_regs.h | |
# Libraries/PeriphDrivers/Source/AES/aes_revb.c | |
# Libraries/PeriphDrivers/Source/AES/aes_revb.h | |
# Libraries/PeriphDrivers/Source/AES/aeskeys_revb_regs.h | |
# # Flash controller | |
# Libraries/PeriphDrivers/Source/FLC/flc_common.c | |
# Libraries/PeriphDrivers/Source/FLC/flc_common.h | |
# Libraries/PeriphDrivers/Source/FLC/flc_me18.c | |
# Libraries/PeriphDrivers/Source/FLC/flc_reva.c | |
# Libraries/PeriphDrivers/Source/FLC/flc_reva.h | |
# # GPIO | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_common.c | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_common.h | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_me18.c | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_reva.c | |
# Libraries/PeriphDrivers/Source/GPIO/gpio_reva.h | |
# # LowPower | |
# Libraries/PeriphDrivers/Source/LP/lp_me18.c | |
# # System | |
# Libraries/PeriphDrivers/Source/SYS/mxc_assert.c | |
# Libraries/PeriphDrivers/Source/SYS/mxc_delay.c | |
# Libraries/PeriphDrivers/Source/SYS/mxc_lock.c | |
# Libraries/PeriphDrivers/Source/SYS/mxc_table.c | |
# Libraries/PeriphDrivers/Source/SYS/pins_me18.c | |
# Libraries/PeriphDrivers/Source/SYS/sys_me18.c | |
# # Timer | |
# Libraries/PeriphDrivers/Source/TMR/tmr_common.c | |
# Libraries/PeriphDrivers/Source/TMR/tmr_common.h | |
# Libraries/PeriphDrivers/Source/TMR/tmr_me18.c | |
# Libraries/PeriphDrivers/Source/TMR/tmr_revb_regs.h | |
# Libraries/PeriphDrivers/Source/TMR/tmr_revb.c | |
# Libraries/PeriphDrivers/Source/TMR/tmr_revb.h | |
# # True Random Number Generator | |
# Libraries/PeriphDrivers/Source/CTB/ctb_common.c | |
# Libraries/PeriphDrivers/Source/CTB/ctb_common.h | |
# Libraries/PeriphDrivers/Source/CTB/ctb_me18.c | |
# Libraries/PeriphDrivers/Source/CTB/ctb_reva_regs.h | |
# Libraries/PeriphDrivers/Source/CTB/ctb_reva.c | |
# Libraries/PeriphDrivers/Source/CTB/ctb_reva.h | |
# Libraries/PeriphDrivers/Source/CTB/trng_reva_regs.h | |
# # UART | |
# Libraries/PeriphDrivers/Source/UART/uart_common.c | |
# Libraries/PeriphDrivers/Source/UART/uart_common.h | |
# Libraries/PeriphDrivers/Source/UART/uart_me18.c | |
# Libraries/PeriphDrivers/Source/UART/uart_revb_regs.h | |
# Libraries/PeriphDrivers/Source/UART/uart_revb.c | |
# Libraries/PeriphDrivers/Source/UART/uart_revb.h | |
# # WakeUp Timer | |
# Libraries/PeriphDrivers/Source/WUT/wut_me18.c | |
# Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h | |
# Libraries/PeriphDrivers/Source/WUT/wut_reva.c | |
# Libraries/PeriphDrivers/Source/WUT/wut_reva_regs.h ) | |
# # Directories to ignore | |
# declare -a ignored=( | |
# Libraries/Cordio/docs | |
# Documentation | |
# ) | |
# # Create an associative array for ignored() | |
# declare -A aignored=() | |
# for ignore in "${ignored[@]}"; do aignored["${ignore%/}"]=1; done | |
# # Copy the working directory list, skipping entries in ignored() | |
# declare -a results_other=() | |
# for watch in "${watched_other[@]}"; do test -v aignored["${watch%/}"] || results_other+=("${watch%/}"); done | |
# # Copy the working directory list, skipping entries in ignored() | |
# declare -a results_examples=() | |
# for watch in "${watched_examples[@]}"; do test -v aignored["${watch%/}"] || results_examples+=("${watch%/}"); done | |
# # Print the resulting array, separated by newlines, in sorted order | |
# printf "\r\n-------- Watched Examples ------------\r\n\r\n" | |
# printf '%s\n' "${results_examples[@]}" | sort | |
# printf "\r\n-----------------------------------\r\n" | |
# # Print the resulting array, separated by newlines, in sorted order | |
# printf "\r\n-------- Watched Other ------------\r\n\r\n" | |
# printf '%s\n' "${results_other[@]}" | sort | |
# printf "\r\n-----------------------------------\r\n" | |
# #Get the diff from main | |
# CHANGE_FILES=$(git diff --ignore-submodules --name-only remotes/origin/main) | |
# # Assume we want to actually run the workflow if no files changed | |
# if [[ "$CHANGE_FILES" != "" ]]; then | |
# # Check if ALL test are required due to 'OTHER' non BLE example directory modified | |
# for watch_file in "${results_other[@]}"; do | |
# if [[ "$CHANGE_FILES" == *"$watch_file"* ]]; then | |
# MAX32690_RUN_ALL_TEST=true | |
# echo "MAX32690_RUN_ALL_TEST=true" >> $GITHUB_ENV | |
# echo "Enabled all tests to run because $watch_file was modified" | |
# fi | |
# done | |
# # Check to see which examples have been modified to only test those | |
# for watch_file in "${results_examples[@]}"; do | |
# if [[ "$CHANGE_FILES" == *"$watch_file"* ]]; then | |
# MAX32690_BLE_FILES_CHANGED=true | |
# echo "MAX32690_BLE_FILES_CHANGED=true" >> $GITHUB_ENV | |
# example_to_test=$(basename "$watch_file") | |
# # Store list of examples that need to be tested | |
# examples_list+=($example_to_test) | |
# echo "Enabled example tests to run because $watch_file was modified" | |
# # If dats/c or OTAC/s were modified we should also test the connected functionality | |
# if [[ $example_to_test == "BLE_dats" ]] || [[ $example_to_test == "BLE_datc" ]]; then | |
# MAX32690_DATS_CONNECTED_TEST=true | |
# echo "MAX32690_DATS_CONNECTED_TEST=true" >> $GITHUB_ENV | |
# echo "Enabled Datsc connected test" | |
# fi | |
# if [[ $example_to_test == "BLE_otas" ]] || [[ $example_to_test == "BLE_otac" ]]; then | |
# MAX32690_OTAS_CONNECTED_TEST=true | |
# echo "MAX32690_OTAS_CONNECTED_TEST=true" >> $GITHUB_ENV | |
# echo "Enabled OTA connected test" | |
# fi | |
# fi | |
# done | |
# # Save examples list to env varaible available across steps | |
# echo "MAX32690_EXAMPLES_TO_TEST=${examples_list[@]}" >> $GITHUB_ENV | |
# else | |
# # Assume we want to actually run the workflow if no files changed | |
# MAX32690_RUN_ALL_TEST=true | |
# echo "MAX32690_RUN_ALL_TEST=true" >> $GITHUB_ENV | |
# fi | |
# # Lock main board and DUT if any connected test is required otherwise just lock DUT | |
# if [[ $MAX32690_OTAS_CONNECTED_TEST == 'true' ]] || [[ $MAX32690_DATS_CONNECTED_TEST == 'true' ]] || [[ $MAX32690_RUN_ALL_TEST == 'true' ]]; then | |
# echo "LOCK_MAX32655_B1=true" >> $GITHUB_ENV | |
# echo "LOCK_MAX32690_B1=true" >> $GITHUB_ENV | |
# elif [[ $MAX32690_BLE_FILES_CHANGED == 'true' ]]; then | |
# echo "LOCK_MAX32690_B1=true" >> $GITHUB_ENV | |
# else | |
# echo "no tests enabled, NOT locking anything at this step" | |
# fi | |
# #---------------------------------------------------------------------------------------------- | |
# #------------------------------| Lock all required boards at once |----------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# - name: Lock Boards | |
# if: env.LOCK_MAX32655_B1 == 'true' || env.LOCK_MAX32655_B2 == 'true' || env.LOCK_MAX32665_B1 == 'true' || env.LOCK_MAX32690_B1 == 'true' | |
# id: lock_boards | |
# run: | | |
# printenv | |
# resource_manager.py -l max32655_board1 max32655_board2 max32665_board1 max32690_board_w1 -t 3600 | |
# #---------------------------------------------------------------------------------------------- | |
# #------------------------------| Erase all required boards at once |----------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# - name: Erase Boards | |
# if: steps.lock_boards.outcome == 'success' | |
# id: erase_boards | |
# run: | | |
# echo $OPENOCD_PATH | |
# ocderase max32655_board1 | |
# ocderase max32655_board2 | |
# ocderase max32665_board1 | |
# ocderase max32690_board_w1 | |
# #---------------------------------------------------------------------------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# #------------------------------| Test all required boards at once |----------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# - name: Test OTAS MAX32655 | |
# # if: env.MAX32655_OTAS_CONNECTED_TEST = 'true' | |
# uses: Analog-Devices-MSDK/btm-ci-scripts/actions/otas-test@main | |
# with: | |
# board_client: 'max32655_board1' | |
# board_server: 'max32655_board2' | |
# - name: Test OTAS MAX32665 | |
# # if: env.MAX32655_OTAS_CONNECTED_TEST = 'true' | |
# uses: Analog-Devices-MSDK/btm-ci-scripts/actions/otas-test@main | |
# with: | |
# board_client: 'max32665_board1' | |
# board_server: 'max32655_board2' | |
# - name: Test OTAS MAX32690 | |
# # if: env.MAX32655_OTAS_CONNECTED_TEST = 'true' | |
# uses: Analog-Devices-MSDK/btm-ci-scripts/actions/otas-test@main | |
# with: | |
# board_client: 'max32690_board_w1' | |
# board_server: 'max32655_board2' | |
# # - name: Test MAX32655 #name used for display purposes on github webpage | |
# # if: steps.lock_boards.outcome == 'success' && env.LOCK_MAX32655_B2 == 'true' | |
# # id: Test_MAX32655 #id used to reference this step in other parts of the yml | |
# # run: | | |
# # echo | |
# # echo | |
# # echo "Examples to be tested : ${examples_to_test[@]}" | |
# # echo "MAX32655_RUN_ALL_TEST : $MAX32655_RUN_ALL_TEST" | |
# # echo "MAX32655_DATS_CONNECTED_TEST : $MAX32655_DATS_CONNECTED_TEST " | |
# # echo "MAX32655_OTAS_CONNECTED_TEST : $MAX32655_OTAS_CONNECTED_TEST" | |
# # echo "MAX32655_BLE_FILES_CHANGED : $MAX32655_BLE_FILES_CHANGED " | |
# # echo "LOCK_MAX32655_B2 : $LOCK_MAX32655_B2 " | |
# # BOARD_SERVER="max32690_board_w1" | |
# # BOARD_CLIENT="max32690_b1" | |
# # DATC_DIR=Examples/MAX32690/Bluetooth/BLE_datc | |
# # DATS_DIR=Examples/MAX32690/Bluetooth/BLE_dats | |
# # OTAS_DIR=Examples/MAX32690/Bluetooth/BLE_otas | |
# # OTAC_DIR=Examples/MAX32690/Bluetooth/BLE_otac | |
# # make -C $DATC_DIR | |
# # make -C $DATS_DIR | |
# # make -C $OTAS_DIR | |
# # make -C $OTAC_DIR | |
# # DATS_FILE=$DATS_DIR/build/max32690.elf | |
# # DATC_FILE=$DATC_DIR/build/max32690.elf | |
# # OTAS_FILE=$OTAS_DIR/build/max32690.elf | |
# # OTAC_FILE=$OTAC_DIR/build/max32690.elf | |
# # echo "Testing all examples" | |
# # set +e | |
# # connectedTests=$(datsc_connected.py $BOARD_SERVER $BOARD_CLIENT $DATS_DIR $DATC_DIR) | |
# # let "testResult=$?" | |
# # if [ "$testResult" -ne "0" ]; then | |
# # # update failed test count | |
# # let "numOfFailedTests+=$testResult" | |
# # fi | |
# # otasTest=$(otas_connected.py $BOARD_SERVER $BOARD_CLIENT $OTAS_DIR $OTAC_DIR) | |
# # let "testResult=$?" | |
# # if [ "$testResult" -ne "0" ]; then | |
# # # update failed test count | |
# # let "numOfFailedTests+=$testResult" | |
# # fi | |
# # set -e | |
# # echo "==============================================================================" | |
# # echo "==============================================================================" | |
# # if [[ $numOfFailedTests -ne 0 ]]; then | |
# # printf "Test completed with $numOfFailedTests failed tests located in: \r\n $failedTestList" | |
# # else | |
# # echo "Relax! ALL TESTS PASSED" | |
# # fi | |
# # echo | |
# # echo "==============================================================================" | |
# # echo "==============================================================================" | |
# # echo | |
# # exit $numOfFailedTests | |
# #---------------------------------------------------------------------------------------------- | |
# # - name: Test MAX32665 #name used for display purposes on github webpage | |
# # if: steps.lock_boards.outcome == 'success' && env.LOCK_MAX32665_B1 == 'true' | |
# # id: Test_MAX32665 #id used to reference this step in other parts of the yml | |
# # run: | | |
# # FILE=/home/$USER/Workspace/Resource_Share/boards_config.json | |
# # dut_uart=$(/usr/bin/python3 -c "import sys, json; print(json.load(open('$FILE'))['max32665_board1']['uart1'])") | |
# # dut_serial=$(/usr/bin/python3 -c "import sys, json; print(json.load(open('$FILE'))['max32665_board1']['daplink'])") | |
# # examples_to_test=(${MAX32665_EXAMPLES_TO_TEST[@]}) | |
# # echo | |
# # echo | |
# # echo "Examples to be tested : ${examples_to_test[@]}" | |
# # echo "MAX32665_RUN_ALL_TEST : $MAX32665_RUN_ALL_TEST" | |
# # echo "MAX32665_DATS_CONNECTED_TEST : $MAX32665_DATS_CONNECTED_TEST " | |
# # echo "MAX32665_OTAS_CONNECTED_TEST : $MAX32665_OTAS_CONNECTED_TEST" | |
# # echo "MAX32665_BLE_FILES_CHANGED : $MAX32665_BLE_FILES_CHANGED " | |
# # echo "LOCK_MAX32665_B1 : $LOCK_MAX32665_B1 " | |
# # cd .github/workflows/scripts | |
# # if [[ $MAX32665_RUN_ALL_TEST == 'true' ]]; then | |
# # echo "Testing all examples" | |
# # set +e | |
# # ./test_launcher.sh max32665 $dut_uart $dut_serial "all" | |
# # let "testResult=$?" | |
# # if [ "$testResult" -ne "0" ]; then | |
# # # update failed test count | |
# # let "numOfFailedTests+=$testResult" | |
# # fi | |
# # set -e | |
# # else | |
# # if [[ $MAX32665_BLE_FILES_CHANGED == 'true' ]]; then | |
# # #------non connected tests--------- | |
# # for example in "${examples_to_test[@]}"; do | |
# # # launch single tests | |
# # echo "Running $example test on MAX32665" | |
# # set +e | |
# # ./test_launcher.sh max32665 $dut_uart $dut_serial $example | |
# # let "testResult=$?" | |
# # if [ "$testResult" -ne "0" ]; then | |
# # # update failed test count | |
# # let "numOfFailedTests+=$testResult" | |
# # failedTestList+="| $example" | |
# # fi | |
# # set -e | |
# # done | |
# # #------connected tests--------- | |
# # if [[ $MAX32665_DATS_CONNECTED_TEST == 'true' ]]; then | |
# # #conencted test launcher | |
# # echo "Testing MAX32665_DATS_CONNECTED_TEST" | |
# # set +e | |
# # ./test_launcher.sh max32665 $dut_uart $dut_serial "dats" | |
# # let "testResult=$?" | |
# # if [ "$testResult" -ne "0" ]; then | |
# # # update failed_test count | |
# # let "numOfFailedTests+=$testResult" | |
# # failedTestList+="| MAX32665 Dats/c" | |
# # fi | |
# # set -e | |
# # fi | |
# # #------connected tests--------- | |
# # if [[ $MAX32665_OTAS_CONNECTED_TEST == 'true' ]]; then | |
# # #conencted test launcher | |
# # echo "Testing MAX32665_OTAS_CONNECTED_TEST" | |
# # set +e | |
# # #call test here | |
# # #***************** uncomment actual test here ************* | |
# # ./test_launcher.sh max32665 $dut_uart $dut_serial "ota" | |
# # let "testResult=$?" | |
# # if [ "$testResult" -ne "0" ]; then | |
# # # update failed test count | |
# # let "numOfFailedTests+=$testResult" | |
# # failedTestList+="| MAX32665 OTAS/C" | |
# # fi | |
# # set -e | |
# # fi | |
# # else | |
# # echo "Skipping all tests" | |
# # fi | |
# # echo "==============================================================================" | |
# # echo "==============================================================================" | |
# # if [[ $numOfFailedTests -ne 0 ]]; then | |
# # printf "Test completed with $numOfFailedTests failed tests located in: \r\n $failedTestList" | |
# # else | |
# # echo "Relax! ALL TESTS PASSED" | |
# # fi | |
# # echo | |
# # echo "==============================================================================" | |
# # echo "==============================================================================" | |
# # echo | |
# # fi | |
# # exit $numOfFailedTests | |
# #---------------------------------------------------------------------------------------------- | |
# # - name: Test MAX32690 #name used for display purposes on github webpage | |
# # if: steps.lock_boards.outcome == 'success' && env.LOCK_MAX32690_B1 == 'true' | |
# # id: Test_MAX32690 #id used to reference this step in other parts of the yml | |
# # run: | | |
# # echo "Examples to be tested : ${examples_to_test[@]}" | |
# # echo "MAX32690_RUN_ALL_TEST : $MAX32690_RUN_ALL_TEST" | |
# # echo "MAX32690_DATS_CONNECTED_TEST : $MAX32690_DATS_CONNECTED_TEST " | |
# # echo "MAX32690_OTAS_CONNECTED_TEST : $MAX32690_OTAS_CONNECTED_TEST" | |
# # echo "MAX32690_BLE_FILES_CHANGED : $MAX32690_BLE_FILES_CHANGED " | |
# # echo "LOCK_MAX32690_B1 : $LOCK_MAX32690_B1 " | |
# # BOARD_SERVER="max32690_board_w1" | |
# # BOARD_CLIENT="max32690_b1" | |
# # DATC_DIR=Examples/MAX32690/Bluetooth/BLE_datc | |
# # DATS_DIR=Examples/MAX32690/Bluetooth/BLE_dats | |
# # OTAS_DIR=Examples/MAX32690/Bluetooth/BLE_otas | |
# # OTAC_DIR=Examples/MAX32690/Bluetooth/BLE_otac | |
# # make -C $DATC_DIR | |
# # make -C $DATS_DIR | |
# # make -C $OTAS_DIR | |
# # make -C $OTAC_DIR | |
# # DATS_FILE=$DATS_DIR/build/max32690.elf | |
# # DATC_FILE=$DATC_DIR/build/max32690.elf | |
# # OTAS_FILE=$OTAS_DIR/build/max32690.elf | |
# # OTAC_FILE=$OTAC_DIR/build/max32690.elf | |
# # echo "Testing all examples" | |
# # set +e | |
# # connectedTests=$(datsc_connected.py $BOARD_SERVER $BOARD_CLIENT $DATS_DIR $DATC_DIR) | |
# # let "testResult=$?" | |
# # if [ "$testResult" -ne "0" ]; then | |
# # # update failed test count | |
# # let "numOfFailedTests+=$testResult" | |
# # fi | |
# # otasTest=$(otas_connected.py $BOARD_SERVER $BOARD_CLIENT $OTAS_DIR $OTAC_DIR) | |
# # let "testResult=$?" | |
# # if [ "$testResult" -ne "0" ]; then | |
# # # update failed test count | |
# # let "numOfFailedTests+=$testResult" | |
# # fi | |
# # set -e | |
# # echo "==============================================================================" | |
# # echo "==============================================================================" | |
# # if [[ $numOfFailedTests -ne 0 ]]; then | |
# # printf "Test completed with $numOfFailedTests failed tests located in: \r\n $failedTestList" | |
# # else | |
# # echo "Relax! ALL TESTS PASSED" | |
# # fi | |
# # echo | |
# # echo "==============================================================================" | |
# # echo "==============================================================================" | |
# # echo | |
# # fi | |
# # exit $numOfFailedTests | |
# #---------------------------------------------------------------------------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# #------------------------------| Erase & Unlock all required boards at once |----------------------------- | |
# #---------------------------------------------------------------------------------------------- | |
# - name: Clean up | |
# if: ${{ always() && steps.lock_boards.outcome == 'success'}} | |
# run: | | |
# git clean -ffdx | |
# git reset --hard | |
# ocderase max32655_board1 | |
# ocderase max32655_board2 | |
# ocderase max32665_board1 | |
# ocderase max32690_board_w1 | |
# - name: Unlock Boards | |
# if: ${{ always() && steps.lock_boards.outcome == 'success'}} | |
# run: | | |
# echo $SHELL | |
# ls /usr/bin | grep resource | |
# which resource_manager.py | |
# resource_manager.py -u max32655_board1 max32655_board2 max32665_board1 max32690_board_w1 | |
# #---------------------------------------------------------------------------------------------- | |
# # Save test reports | |
# - uses: actions/upload-artifact@v3 | |
# if: failure() | |
# with: | |
# name: failure-report | |
# path: .github/workflows/ci-tests/Examples_tests/results/ |