(CommandList children: [ (C {(set)} {(-euo)} {(pipefail)}) (If arms: [ (if_arm cond: [ (Sentence child: (Subshell child: (Pipeline children: [ (C {(grep)} {(-r)} {(KJ_DBG)} {(src/) (Lit_Other '*')}) (C {(egrep)} {(-v)} {(SQ <'/(debug(-test)?|exception)[.]'>)}) ] negated: F ) spids: [13 32] ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(SQ <'*** Error: There are instances of KJ_DBG in the code.'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[44])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 35] ) ] spids: [16777215 52] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(egrep)} {(-r)} {(SQ <'TODO\\(now\\)'>)} {(src/) (Lit_Other '*')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(SQ <'*** Error: There are release-blocking TODOs in the code.'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[78])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 69] ) ] spids: [16777215 86] ) (C {(make)} {(clean)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (x) (CommandSubPart command_list: (CommandList children:[(C {(git)} {(status)} {(--porcelain)})]) left_token: <Left_CommandSub '$('> spids: [100 106] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ (x))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('Please commit changes to git before releasing.'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[128])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 119] ) ] spids: [16777215 136] ) (C {(.)} {(branch.conf)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(rev-parse)} {(--abbrev-ref)} {(HEAD)})] ) left_token: <Left_CommandSub '$('> spids: [164 172] ) } {(Lit_Other '=')} {(master)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CHANNEL) op:Equal rhs:{(dev)} spids:[184])] spids: [184] ) ] spids: [16777215 181] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$IS_STABLE')} {(Lit_Other '=')} {(true)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CHANNEL) op:Equal rhs:{(stable)} spids:[203])] spids: [203] ) ] spids: [187 200] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CHANNEL) op:Equal rhs:{(beta)} spids:[209])] spids: [209] ) ] spids: [206 212] ) (C {(echo)} {(DQ ('**** Determining next build number for ') ($ VSub_Name '$CHANNEL') (' channel ****'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LAST_BUILD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(curl)} {(-fs)} {(https) (Lit_Other ':') (//install.sandstorm.io/) ($ VSub_Name '$CHANNEL')} ) ] ) left_token: <Left_CommandSub '$('> spids: [225 234] ) } spids: [224] ) ] spids: [224] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithBinary op_id: Arith_Slash left: (ArithVarRef name:LAST_BUILD) right: (ArithWord w:{(Lit_Digits 1000)}) ) right: (ArithVarRef name:BRANCH_NUMBER) ) ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} {(DQ ('ERROR: ') ($ VSub_Name '$CHANNEL') (' has already moved past this branch!'))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[266])] ) (SimpleCommand words: [{(echo)} {(DQ (' I refuse to replace it with an older branch.'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[276])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 255] ) ] spids: [16777215 284] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASE_BUILD) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Star left: (ArithVarRef name:BRANCH_NUMBER) right: (ArithWord w:{(Lit_Digits 1000)}) ) spids: [288 297] ) } spids: [287] ) ] spids: [287] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUILD) op: Equal rhs: { (ArithSubPart anode: (TernaryOp cond: (ArithBinary op_id: Arith_Great left: (ArithVarRef name:BASE_BUILD) right: (ArithVarRef name:LAST_BUILD) ) true_expr: (ArithVarRef name:BASE_BUILD) false_expr: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:LAST_BUILD) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [300 321] ) } spids: [299] ) ] spids: [299] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUILD_MINOR) op: Equal rhs: { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Percent left: (ArithWord w:{($ VSub_Name '$BUILD')}) right: (ArithWord w:{(Lit_Digits 1000)}) ) spids: [325 334] ) ) } spids: [323] ) ] spids: [323] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DISPLAY_VERSION) op: Equal rhs: {(DQ (${ VSub_Name BRANCH_NUMBER) (.) (${ VSub_Name BUILD_MINOR))} spids: [337] ) ] spids: [337] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TAG_NAME) op: Equal rhs: {(DQ (v) (${ VSub_Name DISPLAY_VERSION))} spids: [348] ) ] spids: [348] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SIGNING_KEY_ID) op: Equal rhs: {(160D2D577518B58D94C9800B63F227499DA8CCBD)} spids: [356] ) ] spids: [356] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXPECTED_CHANGELOG) op: Equal rhs: { (DQ ('### ') ($ VSub_Name '$TAG_NAME') (' (') (CommandSubPart command_list: (CommandList children:[(C {(date)} {(SQ <'+%Y-%m-%d'>)})]) left_token: <Left_CommandSub '$('> spids: [368 374] ) (')') ) } spids: [363] ) ] spids: [363] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(head)} {(-n)} {(1)} {(CHANGELOG.md)})] ) left_token: <Left_CommandSub '$('> spids: [383 391] ) ) } right: {(DQ ($ VSub_Name '$EXPECTED_CHANGELOG')) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('Changelog not updated. First line should be:'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[413])] ) (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name '$EXPECTED_CHANGELOG'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[423])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 404] ) ] spids: [16777215 431] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARBALL) op: Equal rhs: {(sandstorm-) ($ VSub_Name '$BUILD') (.tar.xz)} spids: [446] ) ] spids: [446] ) (C {(echo)} {(DQ ('**** Building build ') ($ VSub_Name '$BUILD') (' ****'))}) (C {(make)} {(Lit_VarLike 'BUILD=') ($ VSub_Name '$BUILD')}) (C {(echo)} {(DQ ('**** Tagging this commit ****'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_REVISION) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(bundle/git-revision)} spids: [487] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [486 489] ) ) } spids: [484] ) ] spids: [484] ) (C {(git)} {(tag)} {(-u)} {($ VSub_Name '$SIGNING_KEY_ID')} {(DQ ($ VSub_Name '$TAG_NAME'))} {(DQ ($ VSub_Name '$GIT_REVISION'))} {(-m)} {(DQ ('Release Sandstorm ') (${ VSub_Name DISPLAY_VERSION))} ) (C {(git)} {(push)} {(origin)} {(DQ ($ VSub_Name '$TAG_NAME'))}) (C {(echo)} {(DQ ('**** Pushing build ') ($ VSub_Name '$BUILD') (' ****'))}) (C {(rm)} {(-f)} {($ VSub_Name '$TARBALL') (.sig)} {($ VSub_Name '$TARBALL') (.update-sig)} {(install.sh.sig)} ) (C {(gpg)} {(-u)} {($ VSub_Name '$SIGNING_KEY_ID')} {(--digest-algo)} {(SHA512)} {(--detach-sig)} {($ VSub_Name '$TARBALL')} ) (C {(gpg)} {(-u)} {($ VSub_Name '$SIGNING_KEY_ID')} {(--digest-algo)} {(SHA512)} {(--detach-sig)} {(install.sh)} ) (SimpleCommand words: [ {(tmp/sandstorm/update-tool)} {(sign)} {(TildeSubPart prefix:'') (/.sandstorm-update-keyring)} {($ VSub_Name '$TARBALL')} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {($ VSub_Name '$TARBALL') (.update-sig)} spids: [606] ) ] ) (SimpleCommand words: [{(echo)} {($ VSub_Name '$BUILD')}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(tmp/) ($ VSub_Name '$CHANNEL')} spids: [616] ) ] ) (C {(gce-ss)} {(copy-files)} {($ VSub_Name '$TARBALL')} {(fe) (Lit_Other ':') (/var/www/dl.sandstorm.io)} ) (C {(gce-ss)} {(copy-files)} {($ VSub_Name '$TARBALL') (.sig)} {(fe) (Lit_Other ':') (/var/www/dl.sandstorm.io)} ) (C {(gce-ss)} {(copy-files)} {($ VSub_Name '$TARBALL') (.update-sig)} {(fe) (Lit_Other ':') (/var/www/dl.sandstorm.io)} ) (C {(gce-ss)} {(copy-files)} {(tmp/) ($ VSub_Name '$CHANNEL')} {(fe) (Lit_Other ':') (/var/www/install.sandstorm.io)} ) (C {(gce-ss)} {(copy-files)} {(install.sh)} {(fe) (Lit_Other ':') (/var/www/install.sandstorm.io)}) (C {(gce-ss)} {(copy-files)} {(install.sh.sig)} {(fe) (Lit_Other ':') (/var/www/install.sandstorm.io)} ) (C {(gce-ss)} {(ssh)} {(alpha)} {(--command)} {(SQ <'sudo service sandstorm update dev'>)}) ] )