3 on: [push, pull_request]
10 runs-on: windows-latest
12 - uses: actions/checkout@v1
13 - name: download git-sdk-64-minimal
17 urlbase=https://dev.azure.com/git-for-windows/git/_apis/build/builds
18 id=$(curl "$urlbase?definitions=22&statusFilter=completed&resultFilter=succeeded&\$top=1" |
19 jq -r ".value[] | .id")
20 download_url="$(curl "$urlbase/$id/artifacts" |
21 jq -r '.value[] | select(.name == "git-sdk-64-minimal").resource.downloadUrl')"
22 curl --connect-timeout 10 --retry 5 --retry-delay 0 --retry-max-time 240 \
23 -o artifacts.zip "$download_url"
25 ## Unzip and remove the artifact
31 HOME: ${{runner.workspace}}
35 & .\git-sdk-64-minimal\usr\bin\bash.exe -lc @"
36 printf '%s\n' /git-sdk-64-minimal/ >>.git/info/exclude
38 ci/make-test-artifacts.sh artifacts
40 - name: upload build artifacts
41 uses: actions/upload-artifact@v1
43 name: windows-artifacts
45 - name: upload git-sdk-64-minimal
46 uses: actions/upload-artifact@v1
48 name: git-sdk-64-minimal
49 path: git-sdk-64-minimal
51 runs-on: windows-latest
52 needs: [windows-build]
55 nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
57 - uses: actions/checkout@v1
58 - name: download build artifacts
59 uses: actions/download-artifact@v1
61 name: windows-artifacts
62 path: ${{github.workspace}}
63 - name: extract build artifacts
65 run: tar xf artifacts.tar.gz
66 - name: download git-sdk-64-minimal
67 uses: actions/download-artifact@v1
69 name: git-sdk-64-minimal
70 path: ${{github.workspace}}/git-sdk-64-minimal/
74 & .\git-sdk-64-minimal\usr\bin\bash.exe -lc @"
75 # Let Git ignore the SDK
76 printf '%s\n' /git-sdk-64-minimal/ >>.git/info/exclude
78 ci/run-test-slice.sh ${{matrix.nr}} 10
80 - name: ci/print-test-failures.sh
84 & .\git-sdk-64-minimal\usr\bin\bash.exe -lc ci/print-test-failures.sh
85 - name: Upload failed tests' directories
86 if: failure() && env.FAILED_TEST_ARTIFACTS != ''
87 uses: actions/upload-artifact@v1
89 name: failed-tests-windows
90 path: ${{env.FAILED_TEST_ARTIFACTS}}
95 GIT_CONFIG_PARAMETERS: "'user.name=CI' 'user.email=ci@git'"
96 runs-on: windows-latest
98 - uses: actions/checkout@v1
99 - name: download git-sdk-64-minimal
103 urlbase=https://dev.azure.com/git-for-windows/git/_apis/build/builds
104 id=$(curl "$urlbase?definitions=22&statusFilter=completed&resultFilter=succeeded&\$top=1" |
105 jq -r ".value[] | .id")
106 download_url="$(curl "$urlbase/$id/artifacts" |
107 jq -r '.value[] | select(.name == "git-sdk-64-minimal").resource.downloadUrl')"
108 curl --connect-timeout 10 --retry 5 --retry-delay 0 --retry-max-time 240 \
109 -o artifacts.zip "$download_url"
111 ## Unzip and remove the artifact
114 - name: generate Visual Studio solution
117 & .\git-sdk-64-minimal\usr\bin\bash.exe -lc @"
118 make NDEBUG=1 DEVELOPER=1 vcxproj
121 - name: download vcpkg artifacts
124 $urlbase = "https://dev.azure.com/git/git/_apis/build/builds"
125 $id = ((Invoke-WebRequest -UseBasicParsing "${urlbase}?definitions=9&statusFilter=completed&resultFilter=succeeded&`$top=1").content | ConvertFrom-JSON).value[0].id
126 $downloadUrl = ((Invoke-WebRequest -UseBasicParsing "${urlbase}/$id/artifacts").content | ConvertFrom-JSON).value[0].resource.downloadUrl
127 (New-Object Net.WebClient).DownloadFile($downloadUrl, "compat.zip")
128 Expand-Archive compat.zip -DestinationPath . -Force
129 Remove-Item compat.zip
130 - name: add msbuild to PATH
131 uses: microsoft/setup-msbuild@v1.0.0
133 run: msbuild git.sln -property:Configuration=Release -property:Platform=x64 -maxCpuCount:4 -property:PlatformToolset=v142
134 - name: bundle artifact tar
138 VCPKG_ROOT: ${{github.workspace}}\compat\vcbuild\vcpkg
140 & compat\vcbuild\vcpkg_copy_dlls.bat release
142 & git-sdk-64-minimal\usr\bin\bash.exe -lc @"
143 mkdir -p artifacts &&
144 eval \"`$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts 2>&1 | grep ^tar)\"
146 - name: upload build artifacts
147 uses: actions/upload-artifact@v1
152 runs-on: windows-latest
153 needs: [vs-build, windows-build]
156 nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
158 - uses: actions/checkout@v1
159 - name: download git-sdk-64-minimal
160 uses: actions/download-artifact@v1
162 name: git-sdk-64-minimal
163 path: ${{github.workspace}}/git-sdk-64-minimal/
164 - name: download build artifacts
165 uses: actions/download-artifact@v1
168 path: ${{github.workspace}}
169 - name: extract build artifacts
171 run: tar xf artifacts.tar.gz
172 - name: test (parallel)
177 GIT_TEST_SKIP_REBASE_P: 1
179 & .\git-sdk-64-minimal\usr\bin\bash.exe -lc @"
180 # Let Git ignore the SDK and the test-cache
181 printf '%s\n' /git-sdk-64-minimal/ /test-cache/ >>.git/info/exclude
184 PATH=\"`$PWD/helper:`$PATH\" &&
185 test-tool.exe run-command testsuite --jobs=10 -V -x --write-junit-xml \
186 `$(test-tool.exe path-utils slice-tests \
187 ${{matrix.nr}} 10 t[0-9]*.sh)
193 - jobname: linux-clang
205 - jobname: GETTEXT_POISON
209 CC: ${{matrix.vector.cc}}
210 jobname: ${{matrix.vector.jobname}}
211 runs-on: ${{matrix.vector.pool}}
213 - uses: actions/checkout@v1
214 - run: ci/install-dependencies.sh
215 - run: ci/run-build-and-tests.sh
216 - run: ci/print-test-failures.sh
218 - name: Upload failed tests' directories
219 if: failure() && env.FAILED_TEST_ARTIFACTS != ''
220 uses: actions/upload-artifact@v1
222 name: failed-tests-${{matrix.vector.jobname}}
223 path: ${{env.FAILED_TEST_ARTIFACTS}}
228 - jobname: linux-musl
231 image: daald/ubuntu32:xenial
233 jobname: ${{matrix.vector.jobname}}
234 runs-on: ubuntu-latest
235 container: ${{matrix.vector.image}}
237 - uses: actions/checkout@v1
238 - run: ci/install-docker-dependencies.sh
239 - run: ci/run-build-and-tests.sh
240 - run: ci/print-test-failures.sh
242 - name: Upload failed tests' directories
243 if: failure() && env.FAILED_TEST_ARTIFACTS != ''
244 uses: actions/upload-artifact@v1
246 name: failed-tests-${{matrix.vector.jobname}}
247 path: ${{env.FAILED_TEST_ARTIFACTS}}
250 jobname: StaticAnalysis
251 runs-on: ubuntu-latest
253 - uses: actions/checkout@v1
254 - run: ci/install-dependencies.sh
255 - run: ci/run-static-analysis.sh
258 jobname: Documentation
259 runs-on: ubuntu-latest
261 - uses: actions/checkout@v1
262 - run: ci/install-dependencies.sh
263 - run: ci/test-documentation.sh