4
4
GOTOOLCHAIN : local
5
5
6
6
jobs :
7
- build-default :
8
- name : Build with default Git
9
- strategy :
10
- matrix :
11
- os : [ubuntu-latest, macos-latest]
12
- go : ['1.23.x']
13
- runs-on : ${{ matrix.os }}
14
- steps :
15
- - uses : actions/checkout@v4
16
- with :
17
- fetch-depth : 0
18
- persist-credentials : false
19
- ref : ${{ github.ref }}
20
- # We specify the current ref because otherwise the checkout turns
21
- # annotated tags into lightweight ones, breaking "git describe".
22
- # See https://github.com/actions/checkout/issues/290 and
23
- # https://github.com/actions/checkout/issues/882 for details.
24
- - uses : ruby/setup-ruby@v1
25
- - run : gem install asciidoctor
26
- - uses : actions/setup-go@v5
27
- with :
28
- go-version : ${{ matrix.go }}
29
- - run : sudo apt-get update && sudo apt-get -y install gettext libarchive-tools
30
- if : ${{ startsWith(matrix.os, 'ubuntu-') }}
31
- env :
32
- DEBIAN_FRONTEND : noninteractive
33
- - run : script/cibuild
34
- env :
35
- FORCE_LOCALIZE : true
36
- - run : CGO_ENABLED=0 make release
37
- env :
38
- FORCE_LOCALIZE : true
39
- - run : mkdir -p bin/assets
40
- - run : find bin/releases -name "*$(uname -s | tr A-Z a-z)*" | xargs -I{} cp {} bin/assets
41
- - uses : actions/upload-artifact@v4
42
- with :
43
- name : ${{ matrix.os }}
44
- path : bin/assets
45
- build-go :
46
- name : Build with specific Go
47
- strategy :
48
- matrix :
49
- go : ['1.22.x']
50
- runs-on : ubuntu-latest
51
- steps :
52
- - uses : actions/checkout@v4
53
- with :
54
- fetch-depth : 0
55
- persist-credentials : false
56
- ref : ${{ github.ref }}
57
- - uses : actions/setup-go@v5
58
- with :
59
- go-version : ${{ matrix.go }}
60
- - run : script/cibuild
61
- build-windows :
62
- name : Build on Windows
63
- runs-on : windows-latest
64
- steps :
65
- - uses : actions/checkout@v4
66
- with :
67
- fetch-depth : 0
68
- persist-credentials : false
69
- ref : ${{ github.ref }}
70
- - uses : ruby/setup-ruby@v1
71
- - run : gem install asciidoctor
72
- - run : Rename-Item -Path C:\msys64 -NewName msys64-tmp -Force
73
- # We move the MSYS2 installed for Ruby aside to prevent use of its Git,
74
- # which does not honour the PATH we set to our built git-lfs binary.
75
- - uses : actions/setup-go@v5
76
- with :
77
- go-version : ' 1.23.x'
78
- - run : mkdir -p "$HOME/go/bin"
79
- shell : bash
80
- - run : set GOPATH=%HOME%\go
81
- - run : choco install -y InnoSetup
82
- - run : make man
83
- shell : bash
84
- - run : GOPATH="$HOME/go" PATH="$HOME/go/bin:$PATH" go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest
85
- shell : bash
86
- - uses : git-for-windows/setup-git-for-windows-sdk@v1
87
- with :
88
- flavor : minimal
89
- # We install the SDK so as to have access to the msgfmt.exe binary
90
- # from the GNU gettext package.
91
- - run : GOPATH="$HOME/go" PATH="$HOME/go/bin:$PATH" env -u TMPDIR script/cibuild
92
- shell : bash
93
- # We clear the TMPDIR set for Ruby so mktemp and Go use the same
94
- # volume for temporary files.
95
- - run : rm -f commands/mancontent_gen.go
96
- shell : bash
97
- - run : GOPATH="$HOME/go" PATH="$HOME/go/bin:$PATH" make GOARCH=386 -B
98
- shell : bash
99
- env :
100
- FORCE_LOCALIZE : true
101
- - run : mv bin\git-lfs.exe git-lfs-x86.exe
102
- - run : rm -f commands/mancontent_gen.go
103
- shell : bash
104
- - run : GOPATH="$HOME/go" PATH="$HOME/go/bin:$PATH" make GOARCH=amd64 -B
105
- shell : bash
106
- env :
107
- FORCE_LOCALIZE : true
108
- - run : mv bin\git-lfs.exe git-lfs-x64.exe
109
- - run : rm -f commands/mancontent_gen.go
110
- shell : bash
111
- - run : GOPATH="$HOME/go" PATH="$HOME/go/bin:$PATH" make GOARCH=arm64 -B
112
- shell : bash
113
- env :
114
- FORCE_LOCALIZE : true
115
- - run : mv bin\git-lfs.exe git-lfs-arm64.exe
116
- - run : iscc script\windows-installer\inno-setup-git-lfs-installer.iss
117
- - run : mkdir -p bin/assets
118
- shell : bash
119
- - run : mv *.exe bin/assets
120
- shell : bash
121
- - uses : actions/upload-artifact@v4
122
- with :
123
- name : windows-latest
124
- path : bin/assets
125
- build-latest :
126
- name : Build with latest Git
127
- strategy :
128
- matrix :
129
- os : [ubuntu-latest, macos-latest]
130
- runs-on : ${{ matrix.os }}
131
- steps :
132
- - uses : actions/checkout@v4
133
- with :
134
- fetch-depth : 0
135
- persist-credentials : false
136
- ref : ${{ github.ref }}
137
- - uses : actions/setup-go@v5
138
- with :
139
- go-version : ' 1.23.x'
140
- - run : git clone -b master https://github.com/git/git.git "$HOME/git"
141
- - run : |
142
- echo "GIT_INSTALL_DIR=$HOME/git" >> "$GITHUB_ENV"
143
- echo "$HOME/git/bin" >> "$GITHUB_PATH"
144
- if: ${{ matrix.os == 'macos-latest' }}
145
- # We install our custom Git version into a PATH location ahead of
146
- # that of the Git installed by Homebrew.
147
- - run : script/build-git "$HOME/git"
148
- - run : GIT_DEFAULT_HASH=sha256 script/cibuild
149
- build-earliest :
150
- name : Build with earliest Git
151
- strategy :
152
- matrix :
153
- os : [ubuntu-latest, macos-latest]
154
- runs-on : ${{ matrix.os }}
155
- steps :
156
- - uses : actions/checkout@v4
157
- with :
158
- fetch-depth : 0
159
- persist-credentials : false
160
- ref : ${{ github.ref }}
161
- - uses : actions/setup-go@v5
162
- with :
163
- go-version : ' 1.23.x'
164
- - run : git clone -b v2.0.0 https://github.com/git/git.git "$HOME/git"
165
- - run : |
166
- echo "GIT_INSTALL_DIR=$HOME/git" >> "$GITHUB_ENV"
167
- echo "$HOME/git/bin" >> "$GITHUB_PATH"
168
- if: ${{ matrix.os == 'macos-latest' }}
169
- # We install our custom Git version into a PATH location ahead of
170
- # that of the Git installed by Homebrew.
171
- - run : script/build-git "$HOME/git"
172
- - run : script/cibuild
173
7
build-docker :
174
8
name : Build Linux packages
175
9
runs-on : ubuntu-latest
@@ -182,15 +16,3 @@ jobs:
182
16
- run : git clone https://github.com/git-lfs/build-dockers.git "$HOME/build-dockers"
183
17
- run : (cd "$HOME/build-dockers" && ./build_dockers.bsh)
184
18
- run : ./docker/run_dockers.bsh --prune
185
- build-docker-arm :
186
- name : Build Linux ARM packages
187
- runs-on : ubuntu-24.04-arm
188
- steps :
189
- - uses : actions/checkout@v4
190
- with :
191
- fetch-depth : 0
192
- persist-credentials : false
193
- ref : ${{ github.ref }}
194
- - run : git clone https://github.com/git-lfs/build-dockers.git "$HOME/build-dockers"
195
- - run : (cd "$HOME/build-dockers" && ./build_dockers.bsh --arch=arm64 debian_11 debian_12)
196
- - run : ./docker/run_dockers.bsh --prune --arch=arm64 debian_11 debian_12
0 commit comments