4848 env : ${{fromJSON(needs.set_env.outputs.env)}}
4949
5050 strategy :
51+ fail-fast : false
5152 matrix :
5253
5354 board :
9899 - { board: esp32c3, platform-version: 2.0.0 }
99100
100101
101- fail-fast : false
102+
102103
103104 steps :
104105 - name : Checkout
@@ -108,33 +109,38 @@ jobs:
108109
109110 - name : Prepare variables for arduino-test-compile
110111 run : |
112+ # prepare some associative arrays to receive matrix-specific env vars
111113 declare -A board_urls
112114 declare -A cli_args
113115 declare -A fbqn_extras
114116
117+ # assign package URLs (per platform)
115118 board_urls[esp32]=${{env.esp32_board_url}}
116119 board_urls[esp8266]=${{env.esp8266_board_url}}
117120 board_urls[Seeeduino]=${{env.Seeeduino_board_url}}
118121 board_urls[rp2040]=${{env.rp2040_board_url}}
119122
123+ # assign optional cli args (per platform)
120124 cli_args[rp2040]="${{env.rp2040_cli_args}}"
121125
126+ # assign optional extra FQBN info (per board)
122127 fbqn_extras[d1_mini]="${{env.d1_mini_fbqn_extra}}"
123128
124- platform_name=${{matrix.platform}}
129+ # collect the index names that will be used to populate the associative array
125130 board_name=${{matrix.board}}
131+ platform_name=${{matrix.platform}}
126132
127- board_url=${board_urls[$platform_name]}
128- board_args=${cli_args[$platform_name]}
129- fqbn_extra=${fbqn_extras[$board_name]}
130-
131- platform=${{matrix.platform}}:${{matrix.archi}}@${{matrix.platform-version}}
132- fbqn=${{matrix.platform}}:${{matrix.archi}}:${{matrix.board}}${fqbn_extra}
133+ # populate values for the next step
134+ arduino_platform_url=${board_urls[$platform_name]}
135+ arduino_cli_args=${cli_args[$platform_name]}
136+ arduino_board_fqbn=${{matrix.platform}}:${{matrix.archi}}:${{matrix.board}}${fbqn_extras[$board_name]}
137+ arduino_platform=${{matrix.platform}}:${{matrix.archi}}@${{matrix.platform-version}}
133138
134- echo "ARDUINO_PLATFORM=$platform" >> $GITHUB_ENV
135- echo "ARDUINO_PLATFORM_URL=$board_url" >> $GITHUB_ENV
136- echo "ARDUINO_CLI_ARGS=$board_args" >> $GITHUB_ENV
137- echo "ARDUINO_BOARD_FQBN=$fbqn" >> $GITHUB_ENV
139+ # export to env
140+ echo "ARDUINO_PLATFORM=$arduino_platform" >> $GITHUB_ENV
141+ echo "ARDUINO_PLATFORM_URL=$arduino_platform_url" >> $GITHUB_ENV
142+ echo "ARDUINO_CLI_ARGS=$arduino_cli_args" >> $GITHUB_ENV
143+ echo "ARDUINO_BOARD_FQBN=$arduino_board_fqbn" >> $GITHUB_ENV
138144
139145
140146 - name : Compile example
@@ -146,7 +152,6 @@ jobs:
146152 platform-url : ${{env.ARDUINO_PLATFORM_URL}}
147153 required-libraries : ArduinoJson
148154 extra-arduino-cli-args : ${{env.ARDUINO_CLI_ARGS}}
149- # extra-arduino-cli-args: ${{ matrix.cli-args }}
150155 # build-properties: ${{ toJson(matrix.build-properties) }}
151156 sketch-names : ${{ env.SKETCH_NAME }}
152157 # sketches-exclude: ${{ matrix.sketches-exclude }}
0 commit comments