(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:COMMIT_RANGE)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name COMMIT_RANGE>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: 
                      {
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(git)} {(merge-base)} {(origin/master)} {(HEAD)})]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [130 138]
                        ) (DQ (..))
                      }
                  )
                spids: [127 142]
              )
            }
          spids: [126]
        )
      ]
      spids: [126]
    )
    (C {(cd)} 
      {
        (DQ 
          (CommandSubPart
            command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(--show-toplevel)})])
            left_token: <Left_CommandSub "$(">
            spids: [151 157]
          )
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:files) op:Equal rhs:{(ArrayLiteralPart)} spids:[164])]
      spids: [164]
    )
    (ForEach
      iter_name: file
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [(C {(git)} {(diff)} {(--name-only)} {(${ VSub_Name COMMIT_RANGE)})]
              )
            left_token: <Left_CommandSub "$(">
            spids: [174 185]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files)
                  op: PlusEqual
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [(C {(bazel)} {(query)} {($ VSub_Name "$file")})]
                                )
                              left_token: <Left_CommandSub "$(">
                              spids: [193 199]
                            )
                          }
                        ]
                      )
                    }
                  spids: [191]
                )
              ]
              spids: [191]
            )
            (C {(echo)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(bazel)} {(query)} {($ VSub_Name "$file")})]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [205 211]
                )
              }
            )
          ]
          spids: [188 213]
        )
      spids: [173 186]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:buildables)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(bazel)} {(query)} {(--keep_going)} {(--noshow_progress)} 
                        {
                          (DQ ("kind(.*_binary, rdeps(//..., set(") 
                            (BracedVarSub
                              token: <VSub_Name files>
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [237 242]
                            ) (")))")
                          )
                        }
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [220 245]
              )
            }
          spids: [219]
        )
      ]
      spids: [219]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (LogicalNot
                      child: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name "$buildables")})
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ("Building binaries"))})
            (C {(bazel)} {(build)} {($ VSub_Name "$buildables")})
          ]
          spids: [-1 263]
        )
      ]
      spids: [-1 279]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tests)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(bazel)} {(query)} {(--keep_going)} {(--noshow_progress)} 
                        {
                          (DQ ("kind(test, rdeps(//..., set(") 
                            (BracedVarSub
                              token: <VSub_Name files>
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [300 305]
                            ) ("))) except attr('tags', 'manual', //...)")
                          )
                        }
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [283 308]
              )
            }
          spids: [282]
        )
      ]
      spids: [282]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: (LogicalNot child:(BoolUnary op_id:BoolUnary_z child:{($ VSub_Name "$tests")}))
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("Running tests"))}) (C {(bazel)} {(test)} {($ VSub_Name "$tests")})]
          spids: [-1 326]
        )
      ]
      spids: [-1 342]
    )
  ]
)