name: Run Ci Arduino

on:
  push:
  pull_request:
  repository_dispatch:
    types: [trigger-workflow]

jobs:
  ci-arduino:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Checkout script repository
        uses: actions/checkout@v4
        with:
            repository: Seeed-Studio/ci-arduino
            path: ci


      - name: Setup arduino cli
        uses: arduino/setup-arduino-cli@v2.0.0

      - name: Create a depend.list file
        run: |
          # eg: echo "<repo>" >> depend.list

          echo Bodmer/JPEGDecoder >> depend.list
          echo Bodmer/TJpg_Decoder >> depend.list
          echo Bodmer/TFT_eFEX >> depend.list
          echo Bodmer/TFT_eWidget >> depend.list
          echo bitbank2/PNGdec >> depend.list
          echo bitbank2/bb_spi_lcd >> depend.list
          echo bitbank2/AnimatedGIF >> depend.list
          echo tanakamasayuki/I2C_BM8563 >> depend.list
          echo PaulStoffregen/Time >> depend.list
          echo JChristensen/Timezone >> depend.list
          echo Seeed-Studio/Seeed_Arduino_FS >> depend.list
          echo arduino-libraries/SD >> depend.list
 



      - name: Create a ignore.list file
        run: |
          # eg: echo "<path>,<fqbn>" >> ignore.list

          # xiao m0 RAM is too small
          echo "320 x 240/All_Free_Fonts_Demo,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "320 x 240/Cellular_Automata,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "480 x 320/Cellular_Automata,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "PNG Images/Flash_PNG,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "PNG Images/Flash_transparent_PNG,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Round Display/Arduino_Life,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Round Display/GifPlayer ,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list


          # xiao ra4m1 RAM is too small
          echo "320 x 240/All_Free_Fonts_Demo,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "320 x 240/Cellular_Automata,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "480 x 320/Cellular_Automata,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "PNG Images/Flash_PNG,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "PNG Images/Flash_transparent_PNG,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "Round Display/Arduino_Life,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "Round Display/GifPlayer ,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          

          # no SPIFFS so can't compile
          echo "Smooth Fonts/SPIFFS/Font_Demo_1,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_1,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_1,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_1,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/SPIFFS/Font_Demo_2,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_2,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_2,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_2,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/SPIFFS/Font_Demo_3,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_3,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_3,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_3,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/SPIFFS/Font_Demo_4,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_4,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_4,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Font_Demo_4,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/SPIFFS/Print_Smooth_Font,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Print_Smooth_Font,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Print_Smooth_Font,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Print_Smooth_Font,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/SPIFFS/Smooth_font_gradient,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Smooth_font_gradient,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Smooth_font_gradient,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Smooth_font_gradient,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/SPIFFS/Smooth_font_reading_TFT,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Smooth_font_reading_TFT,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Smooth_font_reading_TFT,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Smooth_font_reading_TFT,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/SPIFFS/Unicode_test,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Unicode_test,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Unicode_test,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/SPIFFS/Unicode_test,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          
          echo "Generic/TFT_SPIFFS_BMP,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Generic/TFT_SPIFFS_BMP,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Generic/TFT_SPIFFS_BMP,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Generic/TFT_SPIFFS_BMP,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "Sprite/Rotated_Sprite_3,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Sprite/Rotated_Sprite_3,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Sprite/Rotated_Sprite_3,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Sprite/Rotated_Sprite_3,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "Generic/On_Off_Button,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Generic/On_Off_Button,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Generic/On_Off_Button,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Generic/On_Off_Button,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "Generic/TFT_Button_Label_Datum,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Generic/TFT_Button_Label_Datum,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Generic/TFT_Button_Label_Datum,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Generic/TFT_Button_Label_Datum,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "320 x 240/Keypad_240x320,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "320 x 240/Keypad_240x320,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "320 x 240/Keypad_240x320,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "320 x 240/Keypad_240x320,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "480 x 320/Keypad_480x320,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "480 x 320/Keypad_480x320,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "480 x 320/Keypad_480x320,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "480 x 320/Keypad_480x320,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "480 x 320/Touch_Controller_Demo,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "480 x 320/Touch_Controller_Demo,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "480 x 320/Touch_Controller_Demo,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "480 x 320/Touch_Controller_Demo,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list


          # no LittleFS.h so can't compile
          echo "Smooth Fonts/FLASH_Array/Print_Smooth_Font,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/FLASH_Array/Print_Smooth_Font,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/FLASH_Array/Print_Smooth_Font,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/FLASH_Array/Print_Smooth_Font,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "Smooth Fonts/LittleFS/Font_Demo_1,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_1,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_1,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_1,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/LittleFS/Font_Demo_2,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_2,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_2,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_2,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/LittleFS/Font_Demo_3,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_3,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_3,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_3,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/LittleFS/Font_Demo_4,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_4,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_4,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/LittleFS/Font_Demo_4,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/LittleFS/Print_Smooth_Font,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/LittleFS/Print_Smooth_Font,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/LittleFS/Print_Smooth_Font,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/LittleFS/Print_Smooth_Font,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/LittleFS/Smooth_font_gradient,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/LittleFS/Smooth_font_gradient,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/LittleFS/Smooth_font_gradient,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/LittleFS/Smooth_font_gradient,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/LittleFS/Smooth_font_reading_TFT,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/LittleFS/Smooth_font_reading_TFT,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/LittleFS/Smooth_font_reading_TFT,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/LittleFS/Smooth_font_reading_TFT,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
         
          echo "Smooth Fonts/LittleFS/Unicode_test,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/LittleFS/Unicode_test,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/LittleFS/Unicode_test,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/LittleFS/Unicode_test,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "PNG Images/LittleFS_PNG,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "PNG Images/LittleFS_PNG,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "PNG Images/LittleFS_PNG,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "PNG Images/LittleFS_PNG,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "PNG Images/LittleFS_PNG_DMA ,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "PNG Images/LittleFS_PNG_DMA ,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "PNG Images/LittleFS_PNG_DMA ,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "PNG Images/LittleFS_PNG_DMA ,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list

          echo "GUI Widgets/Buttons/Button_demo,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "GUI Widgets/Buttons/Button_demo,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "GUI Widgets/Buttons/Button_demo,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "GUI Widgets/Buttons/Button_demo,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list

          echo "GUI Widgets/Sliders/Slider_demo,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "GUI Widgets/Sliders/Slider_demo,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "GUI Widgets/Sliders/Slider_demo,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "GUI Widgets/Sliders/Slider_demo,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list

          # TFT_eFEX library has compatibility issues with ESP32 so can't compile
          echo "Sprite/Rotated_Sprite_3,esp32:esp32:XIAO_ESP32C3" >> ignore.list
          echo "Sprite/Rotated_Sprite_3,esp32:esp32:XIAO_ESP32C6" >> ignore.list
          echo "Sprite/Rotated_Sprite_3,esp32:esp32:XIAO_ESP32S3" >> ignore.list


          # AnimatedGIF has compatibility issues with rp2350 so can't compile
          echo "Round Display/GifPlayer,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list


          # only ESP32 can compile
          echo "Generic/ESP32_SDcard_jpeg,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Generic/ESP32_SDcard_jpeg,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Generic/ESP32_SDcard_jpeg,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Generic/ESP32_SDcard_jpeg,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "Generic/ESP32_SDcard_jpeg,rp2040:rp2040:seeed_xiao_rp2040" >> ignore.list
          echo "Generic/ESP32_SDcard_jpeg,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list
          
          echo "Smooth Fonts/SD_Card/ESP32_Smooth_Font_SD ,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Fonts/SD_Card/ESP32_Smooth_Font_SD ,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Fonts/SD_Card/ESP32_Smooth_Font_SD ,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Fonts/SD_Card/ESP32_Smooth_Font_SD ,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "Smooth Fonts/SD_Card/ESP32_Smooth_Font_SD,rp2040:rp2040:seeed_xiao_rp2040" >> ignore.list
          echo "Smooth Fonts/SD_Card/ESP32_Smooth_Font_SD,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list
         
          echo "Smooth Graphics/Anti-aliased_Clock,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "Smooth Graphics/Anti-aliased_Clock,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "Smooth Graphics/Anti-aliased_Clock,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "Smooth Graphics/Anti-aliased_Clock,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "Smooth Graphics/Anti-aliased_Clock,rp2040:rp2040:seeed_xiao_rp2040" >> ignore.list
          echo "Smooth Graphics/Anti-aliased_Clock,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list
          
          # Skip ePaper examples to speed up compilation
          echo "ePaper/Basic/Bitmap,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "ePaper/Basic/Bitmap,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "ePaper/Basic/Bitmap,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "ePaper/Basic/Bitmap,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "ePaper/Basic/Bitmap,rp2040:rp2040:seeed_xiao_rp2040" >> ignore.list
          echo "ePaper/Basic/Bitmap,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list
          echo "ePaper/Basic/Bitmap,esp32:esp32:XIAO_ESP32C3" >> ignore.list
          echo "ePaper/Basic/Bitmap,esp32:esp32:XIAO_ESP32C6" >> ignore.list
          echo "ePaper/Basic/Bitmap,esp32:esp32:XIAO_ESP32S3" >> ignore.list

          echo "ePaper/Basic/Clock,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "ePaper/Basic/Clock,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "ePaper/Basic/Clock,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "ePaper/Basic/Clock,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "ePaper/Basic/Clock,rp2040:rp2040:seeed_xiao_rp2040" >> ignore.list
          echo "ePaper/Basic/Clock,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list
          echo "ePaper/Basic/Clock,esp32:esp32:XIAO_ESP32C3" >> ignore.list
          echo "ePaper/Basic/Clock,esp32:esp32:XIAO_ESP32C6" >> ignore.list
          echo "ePaper/Basic/Clock,esp32:esp32:XIAO_ESP32S3" >> ignore.list

          echo "ePaper/Basic/Clock_Digital,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "ePaper/Basic/Clock_Digital,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "ePaper/Basic/Clock_Digital,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "ePaper/Basic/Clock_Digital,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "ePaper/Basic/Clock_Digital,rp2040:rp2040:seeed_xiao_rp2040" >> ignore.list
          echo "ePaper/Basic/Clock_Digital,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list
          echo "ePaper/Basic/Clock_Digital,esp32:esp32:XIAO_ESP32C3" >> ignore.list
          echo "ePaper/Basic/Clock_Digital,esp32:esp32:XIAO_ESP32C6" >> ignore.list
          echo "ePaper/Basic/Clock_Digital,esp32:esp32:XIAO_ESP32S3" >> ignore.list

          echo "ePaper/Basic/HelloWorld,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "ePaper/Basic/HelloWorld,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "ePaper/Basic/HelloWorld,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "ePaper/Basic/HelloWorld,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "ePaper/Basic/HelloWorld,rp2040:rp2040:seeed_xiao_rp2040" >> ignore.list
          echo "ePaper/Basic/HelloWorld,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list
          echo "ePaper/Basic/HelloWorld,esp32:esp32:XIAO_ESP32C3" >> ignore.list
          echo "ePaper/Basic/HelloWorld,esp32:esp32:XIAO_ESP32C6" >> ignore.list
          echo "ePaper/Basic/HelloWorld,esp32:esp32:XIAO_ESP32S3" >> ignore.list

          echo "ePaper/Basic/Shape,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "ePaper/Basic/Shape,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "ePaper/Basic/Shape,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "ePaper/Basic/Shape,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "ePaper/Basic/Shape,rp2040:rp2040:seeed_xiao_rp2040" >> ignore.list
          echo "ePaper/Basic/Shape,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list
          echo "ePaper/Basic/Shape,esp32:esp32:XIAO_ESP32C3" >> ignore.list
          echo "ePaper/Basic/Shape,esp32:esp32:XIAO_ESP32C6" >> ignore.list
          echo "ePaper/Basic/Shape,esp32:esp32:XIAO_ESP32S3" >> ignore.list

          echo "ePaper/Sprite/Clock_Digital,Seeeduino:samd:seeed_XIAO_m0" >> ignore.list
          echo "ePaper/Sprite/Clock_Digital,Seeeduino:nrf52:xiaonRF52840" >> ignore.list
          echo "ePaper/Sprite/Clock_Digital,Seeeduino:nrf52:xiaonRF52840Sense" >> ignore.list
          echo "ePaper/Sprite/Clock_Digital,Seeeduino:renesas_uno:XIAO_RA4M1" >> ignore.list
          echo "ePaper/Sprite/Clock_Digital,rp2040:rp2040:seeed_xiao_rp2040" >> ignore.list
          echo "ePaper/Sprite/Clock_Digital,rp2040:rp2040:seeed_xiao_rp2350" >> ignore.list
          echo "ePaper/Sprite/Clock_Digital,esp32:esp32:XIAO_ESP32C3" >> ignore.list
          echo "ePaper/Sprite/Clock_Digital,esp32:esp32:XIAO_ESP32C6" >> ignore.list
          echo "ePaper/Sprite/Clock_Digital,esp32:esp32:XIAO_ESP32S3" >> ignore.list


      - name: Build sketch
        run: |
          ./ci/tools/compile.sh

      - name: Build result
        run: |
            cat build.log
            if [ ${{ github.event_name }} == 'pull_request' ] && [ -f compile.failed ]; then
                exit 1
            fi

      - name: Generate issue
        if: ${{ github.event_name != 'pull_request' }}
        run: ./ci/tools/issue.sh
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          