package Ġorg . no sphere . gradle . github . actions Ċ Ċ import Ġorg . gradle . internal . os . Operating System Ċ import Ġorg . hamcrest . Core Matchers . contains String Ċ import Ġorg . hamcrest . Core Matchers . not Ċ import Ġorg . junit . Assert . assertThat Ċ import Ġorg . junit . Ass ume . assume False Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . Parameterized Ċ import Ġorg . no sphere . gradle . github . Abstract Plugin Test Ċ Ċ // ĠNote Ġthat Ġtests Ġthat Ġdeal Ġwith Ġbuild Ġscans Ġdon 't Ġassert Ġthe Ġtags Ġand Ġcustom Ġvalues Ġcontent Ċ // Ġbut Ġpub lishes Ġa Ġscan Ġso Ġit Ġcan Ġbe Ġchecked Ġby Ġhand Ċ // ĠTODO Ġfind Ġout Ġhow Ġto Ġassert Ġbuild Ġscan Ġtagging Ċ // ĠTODO Ġun ignore Ġbuild - sc ans Ġtests Ġon Ġwindows Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠGithub Actions Plugin Test ( test Matrix : ĠTest Matrix ) Ġ: ĠAbstract Plugin Test ( test Matrix ) Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` s ays Ġ* not * Ġrunning Ġa Ġgithub Ġaction Ġwhen Ġappropriate `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwith Build Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" org . no sphere . gradle . github . actions ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġgithub Actions . running . get () Ġ== Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbuild ( empty Environment , Ġ" github Actions ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` s ays Ġrunning Ġa Ġgithub Ġaction Ġwhen Ġappropriate `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwith Build Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" org . no sphere . gradle . github . actions ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġgithub Actions . running . get () Ġ== Ġtrue ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbuild ( github Action Environment , Ġ" github Actions ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġuse Ġenvironment Ġat Ġconfiguration Ġtime `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwith Build Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" org . no sphere . gradle . github . actions ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgithub Actions . environment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" home : Ġ${ '$ ' }{ home . get (). as File }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" workflow : Ġ${ '$ ' }{ workflow . get () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" action : Ġ${ '$ ' }{ action . get () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" actor : Ġ${ '$ ' }{ actor . get () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" repository : Ġ${ '$ ' }{ repository . get () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" eventName : Ġ${ '$ ' }{ eventName . get () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" event Path : Ġ${ '$ ' }{ event Path . get (). as File }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" workspace : Ġ${ '$ ' }{ workspace . get (). as File }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" sha : Ġ${ '$ ' }{ sha . get () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ref : Ġ${ '$ ' }{ ref . get () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbuild ( github Action Environment , Ġ" help ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" home : Ġ$ home Test Value ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" workflow : Ġworkflow ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" action : Ġsome / action ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" actor : Ġoct oc at ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" repository : Ġoct oc at / hello - world ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" eventName : Ġwebhook ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" event Path : Ġ$ event Path Test Value ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" workspace : Ġ$ workspace Test Value ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" sha : Ġf fac 5 3 7 e 6 cb bf 9 3 4 b 0 8 7 4 5 a 3 7 8 9 3 2 7 2 2 df 2 8 7 a 5 3 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" ref : Ġrefs / heads / feature - branch - 1 .")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( test Matrix . configuration Cache ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild ( github Action Environment , Ġ" help ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" Re using Ġconfiguration Ġcache ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild ( github Action Environment Ġ+ Ġ(" GITHUB _ ACT OR " Ġto Ġ" tac ot co "), Ġ" help ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput , Ġcontains String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Calcul ating Ġtask Ġgraph Ġas Ġconfiguration Ġcache Ġcannot Ġbe Ġreused Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" because Ġenvironment Ġvariable Ġ' GITHUB _ ACT OR ' Ġhas Ġchanged ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` report Ġtasks Ġdisplays Ġenvironment Ġand Ġbuild Ġscan Ġconfiguration `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwith Build Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" org . no sphere . gradle . github . actions ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbuild ( github Action Environment , Ġ" github Actions ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" home Ġ= Ġ$ home Test Value ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" workflow Ġ= Ġworkflow ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" action Ġ= Ġsome / action ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" actor Ġ= Ġoct oc at ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" repository Ġ= Ġoct oc at / hello - world ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" eventName Ġ= Ġwebhook ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" event Path Ġ= Ġ$ event Path Test Value ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" workspace Ġ= Ġ$ workspace Test Value ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" sha Ġ= Ġf fac 5 3 7 e 6 cb bf 9 3 4 b 0 8 7 4 5 a 3 7 8 9 3 2 7 2 2 df 2 8 7 a 5 3 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" ref Ġ= Ġrefs / heads / feature - branch - 1 .")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" auto Tag Ġ= Ġtrue ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" auto Tag Prefix Ġ= Ġgithub :" )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( test Matrix . configuration Cache ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild ( github Action Environment , Ġ" github Actions ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" Re using Ġconfiguration Ġcache ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild ( github Action Environment Ġ+ Ġ(" GITHUB _ ACT OR " Ġto Ġ" tac ot co "), Ġ" github Actions ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" Re using Ġconfiguration Ġcache ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` environment Ġproviders Ġabsent Ġwhen Ġ* not * Ġrunning Ġa Ġgithub Ġaction `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwith Build Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" org . no sphere . gradle . github . actions ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgithub Actions . environment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! home . present ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! workflow . present ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! action . present ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! actor . present ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! repository . present ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! eventName . present ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! event Path . present ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! workspace . present ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! sha . present ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Ġ! ref . present ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbuild ( empty Environment , Ġ" github Actions ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` pub lishes Ġtagged Ġbuild Ġscan Ġby Ġdefault `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġassume False ( is Windows ) ĊĊĠĠĠĠĠĠĠ Ġwith Settings For Build Sc ans () ĊĊĠĠĠĠĠĠĠ Ġwith Build Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" org . no sphere . gradle . github . actions ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Scan Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġterms Of Service Url Ġ= Ġ" https :// gradle . com / terms - of - service " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġterms Of Service Ag ree Ġ= Ġ" yes " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbuild ( github Action Environment , Ġ" github Actions ", Ġ"-- scan ", Ġ"- i ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( output ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġcontains String (" Build ĠScan Ġtagged Ġwith ĠGithub ĠActions Ġenvironment ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` pub lishes Ġunt agged Ġbuild Ġscan Ġif Ġinstruct ed `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġassume False ( is Windows ) ĊĊĠĠĠĠĠĠĠ Ġwith Settings For Build Sc ans () ĊĊĠĠĠĠĠĠĠ Ġwith Build Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" org . no sphere . gradle . github . actions ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Scan Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġterms Of Service Url Ġ= Ġ" https :// gradle . com / terms - of - service " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġterms Of Service Ag ree Ġ= Ġ" yes " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgithub Actions . build Scan . auto Tag . set ( false ) ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbuild ( github Action Environment , Ġ" github Actions ", Ġ"-- scan ", Ġ"- i ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( output ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output , Ġnot ( contains String (" Build ĠScan Ġtagged Ġwith ĠGithub ĠActions Ġenvironment "))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġempty Environment Ġ= Ġempty Map < String , ĠString >() ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġhome Test Value Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( is Windows ) Ġ" C :\\ Users \\ github " ĊĠĠĠĠĠĠĠ Ġelse Ġ"/ home / github " ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġevent Path Test Value Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( is Windows ) Ġ" C :\\ github \\ workflow \\ event . json " ĊĠĠĠĠĠĠĠ Ġelse Ġ"/ github / workflow / event . json " ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġworkspace Test Value Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( is Windows ) Ġ" C :\\ Users \\ runner \\ work \\ oct oc at \\ hello - world " ĊĠĠĠĠĠĠĠ Ġelse Ġ"/ home / runner / work / oct oc at / hello - world " ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġgithub Action Environment Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠ Ġ" HOME " Ġto Ġhome Test Value , ĊĠĠĠĠĠĠĠ Ġ" GITHUB _ WORK FLOW " Ġto Ġ" workflow ", ĊĠĠĠĠĠĠĠ Ġ" GITHUB _ ACTION " Ġto Ġ" some / action ", ĊĠĠĠĠĠĠĠ Ġ" GITHUB _ ACT OR " Ġto Ġ" oct oc at ", ĊĠĠĠĠĠĠĠ Ġ" GITHUB _ REPOSITORY " Ġto Ġ" oct oc at / hello - world ", ĊĠĠĠĠĠĠĠ Ġ" GITHUB _ EVENT _ NAME " Ġto Ġ" webhook ", ĊĠĠĠĠĠĠĠ Ġ" GITHUB _ EVENT _ PATH " Ġto Ġevent Path Test Value , ĊĠĠĠĠĠĠĠ Ġ" GITHUB _ WORK SPACE " Ġto Ġworkspace Test Value , ĊĠĠĠĠĠĠĠ Ġ" GITHUB _ SHA " Ġto Ġ" ff ac 5 3 7 e 6 cb bf 9 3 4 b 0 8 7 4 5 a 3 7 8 9 3 2 7 2 2 df 2 8 7 a 5 3 ", ĊĠĠĠĠĠĠĠ Ġ" GITHUB _ REF " Ġto Ġ" refs / heads / feature - branch - 1 ." ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġis Windows ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠOperating System . current (). is Windows ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġfun Ġwith Settings For Build Sc ans () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Settings Script ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" com . gradle . enterprise ") Ġversion Ġ" 3 . 4 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ