@@ -60,13 +60,14 @@ describe('gitContext', () => {
6060
6161 type GitContextTestCase = {
6262 ref : string ;
63+ checksum ?: string ;
64+ subdir ?: string ;
65+ attrs ?: Record < string , string > ;
6366 format : GitContextFormat | undefined ;
67+
6468 prHeadRef : boolean ;
6569 sendGitQueryAsInput : boolean ;
6670 buildxQuerySupport : boolean ;
67- subdir ?: string ;
68- keepGitDir ?: boolean ;
69- submodules ?: boolean ;
7071 } ;
7172
7273 // prettier-ignore
@@ -82,10 +83,15 @@ describe('gitContext', () => {
8283 [ { ref : 'refs/pull/15/merge' , format : undefined , prHeadRef : false , sendGitQueryAsInput : true , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git?ref=refs/pull/15/merge&checksum=860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
8384 [ { ref : 'refs/pull/15/merge' , format : undefined , prHeadRef : true , sendGitQueryAsInput : true , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git?ref=refs/pull/15/head&checksum=860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
8485 [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : true , buildxQuerySupport : false } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
85- [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , keepGitDir : true } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&keep-git-dir=true' ] ,
86- [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : false , keepGitDir : true } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&keep-git-dir=true' ] ,
87- [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , submodules : false } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=false' ] ,
88- [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : false , submodules : false } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=false' ] ,
86+ [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { } } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
87+ [ { ref : 'refs/heads/master' , checksum : undefined , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { checksum : 'cafebabe' } } , 'https://github.com/docker/actions-toolkit.git#cafebabe' ] ,
88+ [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { subdir : 'subdir' } } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37:subdir' ] ,
89+ [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { ref : 'refs/tags/v1.0.0' } } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
90+ [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { 'keep-git-dir' : 'true' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&keep-git-dir=true' ] ,
91+ [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : false , attrs : { 'keep-git-dir' : 'true' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&keep-git-dir=true' ] ,
92+ [ { ref : 'refs/heads/master' , checksum : undefined , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { checksum : 'cafebabe' , 'keep-git-dir' : 'true' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=cafebabe&keep-git-dir=true' ] ,
93+ [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { submodules : 'false' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=false' ] ,
94+ [ { ref : 'refs/heads/master' , format : undefined , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : false , attrs : { submodules : 'false' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=false' ] ,
8995 // query format
9096 [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
9197 [ { ref : 'master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
@@ -94,22 +100,26 @@ describe('gitContext', () => {
94100 [ { ref : 'refs/pull/15/merge' , format : 'query' , prHeadRef : true , sendGitQueryAsInput : false , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git?ref=refs/pull/15/head&checksum=860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
95101 [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , subdir : 'subdir' } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&subdir=subdir' ] ,
96102 [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , subdir : '.' } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
97- [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , subdir : 'subdir' , keepGitDir : true } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&subdir=subdir&keep-git-dir=true' ] ,
98- [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , submodules : true } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=true' ] ,
99- [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , submodules : false } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=false' ] ,
103+ [ { ref : 'refs/heads/master' , checksum : undefined , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { ref : 'refs/tags/v1.0.0' , checksum : 'cafebabe' , subdir : 'subdir' , submodules : 'false' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=cafebabe&subdir=subdir&submodules=false' ] ,
104+ [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , subdir : 'subdir' , attrs : { 'keep-git-dir' : 'true' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&subdir=subdir&keep-git-dir=true' ] ,
105+ [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { submodules : 'true' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=true' ] ,
106+ [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { submodules : 'false' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&submodules=false' ] ,
107+ [ { ref : 'refs/heads/master' , format : 'query' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { 'keep-git-dir' : 'true' , submodules : 'false' } } , 'https://github.com/docker/actions-toolkit.git?ref=refs/heads/master&checksum=860c1904a1ce19322e91ac35af1ab07466440c37&keep-git-dir=true&submodules=false' ] ,
100108 // fragment format
101109 [ { ref : 'refs/heads/master' , format : 'fragment' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
102110 [ { ref : 'master' , format : 'fragment' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
103111 [ { ref : 'refs/pull/15/merge' , format : 'fragment' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git#refs/pull/15/merge' ] ,
104112 [ { ref : 'refs/tags/v1.0.0' , format : 'fragment' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
105113 [ { ref : 'refs/pull/15/merge' , format : 'fragment' , prHeadRef : true , sendGitQueryAsInput : false , buildxQuerySupport : true } , 'https://github.com/docker/actions-toolkit.git#refs/pull/15/head' ] ,
114+ [ { ref : 'refs/heads/master' , checksum : undefined , format : 'fragment' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { checksum : 'cafebabe' , subdir : 'subdir' , ref : 'refs/tags/v1.0.0' } } , 'https://github.com/docker/actions-toolkit.git#cafebabe:subdir' ] ,
115+ [ { ref : 'refs/heads/master' , format : 'fragment' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , attrs : { 'keep-git-dir' : 'true' } } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
106116 [ { ref : 'refs/heads/master' , format : 'fragment' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , subdir : 'subdir' } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37:subdir' ] ,
107117 [ { ref : 'refs/heads/master' , format : 'fragment' , prHeadRef : false , sendGitQueryAsInput : false , buildxQuerySupport : true , subdir : '.' } , 'https://github.com/docker/actions-toolkit.git#860c1904a1ce19322e91ac35af1ab07466440c37' ] ,
108118 [ { ref : 'refs/pull/15/merge' , format : 'fragment' , prHeadRef : true , sendGitQueryAsInput : false , buildxQuerySupport : true , subdir : 'subdir' } , 'https://github.com/docker/actions-toolkit.git#refs/pull/15/head:subdir' ] ,
109119 ] ;
110120
111121 test . each ( gitContextCases ) ( 'given %o should return %o' , async ( input : GitContextTestCase , expected : string ) => {
112- const { ref, format, prHeadRef, sendGitQueryAsInput, buildxQuerySupport, subdir, keepGitDir , submodules } = input ;
122+ const { ref, checksum , format, prHeadRef, sendGitQueryAsInput, buildxQuerySupport, subdir, attrs } = input ;
113123 process . env . DOCKER_DEFAULT_GIT_CONTEXT_PR_HEAD_REF = prHeadRef ? 'true' : '' ;
114124 process . env . BUILDX_SEND_GIT_QUERY_AS_INPUT = sendGitQueryAsInput ? 'true' : '' ;
115125 const buildx = new Buildx ( ) ;
@@ -118,11 +128,10 @@ describe('gitContext', () => {
118128 expect (
119129 await build . gitContext ( {
120130 ref,
121- checksum : '860c1904a1ce19322e91ac35af1ab07466440c37' ,
131+ ... ( ' checksum' in input ? { checksum } : { checksum : '860c1904a1ce19322e91ac35af1ab07466440c37' } ) ,
122132 format,
123133 subdir,
124- keepGitDir,
125- submodules
134+ attrs
126135 } )
127136 ) . toEqual ( expected ) ;
128137 } ) ;
0 commit comments