examples-linux-standalone.yaml 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. # Copyright (c) 2020 Project CHIP Authors
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. name: Build example - Linux Standalone
  15. on:
  16. push:
  17. pull_request:
  18. merge_group:
  19. concurrency:
  20. group: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }}
  21. cancel-in-progress: true
  22. env:
  23. CHIP_NO_LOG_TIMESTAMPS: true
  24. jobs:
  25. linux_standalone:
  26. name: Linux Standalone
  27. runs-on: ubuntu-latest
  28. if: github.actor != 'restyled-io[bot]'
  29. container:
  30. image: ghcr.io/project-chip/chip-build:1
  31. volumes:
  32. - "/tmp/bloat_reports:/tmp/bloat_reports"
  33. steps:
  34. - name: Checkout
  35. uses: actions/checkout@v4
  36. - name: Checkout submodules & Bootstrap
  37. uses: ./.github/actions/checkout-submodules-and-bootstrap
  38. with:
  39. platform: linux
  40. - name: Set up environment for size reports
  41. uses: ./.github/actions/setup-size-reports
  42. if: ${{ !env.ACT }}
  43. with:
  44. gh-context: ${{ toJson(github) }}
  45. - name: Build Standalone cert tool
  46. run: |
  47. ./scripts/run_in_build_env.sh \
  48. "./scripts/build/build_examples.py \
  49. --target linux-x64-chip-cert \
  50. build"
  51. - name: Build minmdns example with platform dns
  52. run: |
  53. ./scripts/run_in_build_env.sh \
  54. "./scripts/build/build_examples.py \
  55. --target linux-x64-address-resolve-tool-platform-mdns-ipv6only \
  56. build"
  57. - name: Build example Standalone chip tool
  58. run: |
  59. ./scripts/run_in_build_env.sh \
  60. "./scripts/build/build_examples.py \
  61. --target linux-x64-chip-tool \
  62. build"
  63. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  64. linux debug chip-tool \
  65. out/linux-x64-chip-tool/chip-tool \
  66. /tmp/bloat_reports/
  67. - name: Build example Standalone Shell
  68. run: |
  69. ./scripts/run_in_build_env.sh \
  70. "./scripts/build/build_examples.py \
  71. --target linux-x64-shell \
  72. build"
  73. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  74. linux debug shell \
  75. out/linux-x64-shell/chip-shell \
  76. /tmp/bloat_reports/
  77. - name: Build example Standalone All Clusters Server
  78. run: |
  79. ./scripts/run_in_build_env.sh \
  80. "./scripts/build/build_examples.py \
  81. --target linux-x64-all-clusters \
  82. build"
  83. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  84. linux debug all-clusters-app \
  85. out/linux-x64-all-clusters/chip-all-clusters-app \
  86. /tmp/bloat_reports/
  87. - name: Clean out build output
  88. run: rm -rf ./out
  89. - name: Build example Standalone All Clusters Minimal Server
  90. run: |
  91. ./scripts/run_in_build_env.sh \
  92. "./scripts/build/build_examples.py \
  93. --target linux-x64-all-clusters-minimal \
  94. build"
  95. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  96. linux debug all-clusters-minimal-app \
  97. out/linux-x64-all-clusters-minimal/chip-all-clusters-minimal-app \
  98. /tmp/bloat_reports/
  99. - name: Build example TV app
  100. run: |
  101. ./scripts/run_in_build_env.sh \
  102. "./scripts/build/build_examples.py \
  103. --target linux-x64-tv-app \
  104. build"
  105. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  106. linux debug tv-app \
  107. out/linux-x64-tv-app/chip-tv-app \
  108. /tmp/bloat_reports/
  109. - name: Build example Standalone TV Casting App
  110. run: |
  111. ./scripts/run_in_build_env.sh \
  112. "./scripts/build/build_examples.py \
  113. --target linux-x64-tv-casting-app \
  114. build"
  115. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  116. linux debug tv-casting-app \
  117. out/linux-x64-tv-casting-app/chip-tv-casting-app \
  118. /tmp/bloat_reports/
  119. - name: Build example lighting app with RPCs and UI
  120. run: |
  121. ./scripts/run_in_build_env.sh \
  122. "./scripts/build/build_examples.py \
  123. --target linux-x64-light-rpc-with-ui \
  124. build"
  125. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  126. linux debug+rpc+ui lighting-app \
  127. out/linux-x64-light-rpc-with-ui/chip-lighting-app \
  128. /tmp/bloat_reports/
  129. - name: Clean out build output
  130. run: rm -rf ./out
  131. - name: Build example Standalone Bridge
  132. run: |
  133. ./scripts/run_in_build_env.sh \
  134. "./scripts/build/build_examples.py \
  135. --target linux-x64-bridge \
  136. build"
  137. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  138. linux debug bridge-app \
  139. out/linux-x64-bridge/chip-bridge-app \
  140. /tmp/bloat_reports/
  141. - name: Build example OTA Provider
  142. run: |
  143. ./scripts/run_in_build_env.sh \
  144. "./scripts/build/build_examples.py \
  145. --target linux-x64-ota-provider \
  146. build"
  147. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  148. linux debug ota-provider-app \
  149. out/linux-x64-ota-provider/chip-ota-provider-app \
  150. /tmp/bloat_reports/
  151. - name: Build example OTA Requestor
  152. run: |
  153. ./scripts/run_in_build_env.sh \
  154. "./scripts/build/build_examples.py \
  155. --target linux-x64-ota-requestor \
  156. build"
  157. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  158. linux debug ota-requestor-app \
  159. out/linux-x64-ota-requestor/chip-ota-requestor-app \
  160. /tmp/bloat_reports/
  161. - name: Clean out build output
  162. run: rm -rf ./out
  163. - name: Build example Standalone Lock App
  164. run: |
  165. ./scripts/run_in_build_env.sh \
  166. "./scripts/build/build_examples.py \
  167. --target linux-x64-lock-no-thread \
  168. build"
  169. .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
  170. linux debug lock-app \
  171. out/linux-x64-lock-no-thread/chip-lock-app \
  172. /tmp/bloat_reports/
  173. - name: Build example contact sensor with UI
  174. run: |
  175. ./scripts/run_in_build_env.sh \
  176. "./scripts/build/build_examples.py \
  177. --target linux-x64-contact-sensor-no-ble-with-ui \
  178. build"
  179. - name: Uploading Size Reports
  180. uses: ./.github/actions/upload-size-reports
  181. if: ${{ !env.ACT }}
  182. with:
  183. platform-name: Linux-Standalone