Merge branch 'pks-gitaly-ubi-golang-1.19' into 'master'

gitaly: Build UBI images with Go 1.19

See merge request https://gitlab.com/gitlab-org/gitlab-build-images/-/merge_requests/606

Merged-by: Stan Hu <stanhu@gmail.com>
Approved-by: Stan Hu <stanhu@gmail.com>
Reviewed-by: Patrick Steinhardt <psteinhardt@gitlab.com>
Co-authored-by: DJ Mountney <dj@gitlab.com>
Co-authored-by: Patrick Steinhardt <psteinhardt@gitlab.com>
This commit is contained in:
Stan Hu 2023-02-08 22:04:48 +00:00
commit 0e6f67364c
2 changed files with 20 additions and 6 deletions

View file

@ -22,6 +22,6 @@ gitaly:
GIT: ['2.36']
- OS: ['ubi:8.6']
RUBY: ['2.7', '3.0']
GOLANG: ['1.18']
GOLANG: ['1.18', '1.19']
RUST: ['1.65']
GIT: ['2.36']

View file

@ -15,7 +15,6 @@ function build_debian() {
function build_ubi() {
GO_MAJOR_VERSION=${INSTALL_GOLANG_VERSION%.*}
GOLANG_FIPS_BRANCH="go${GO_MAJOR_VERSION}-openssl-fips"
mkdir -p /tmp/golang
curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz
@ -23,16 +22,31 @@ function build_ubi() {
tar -C /tmp/golang -xzf golang.tar.gz
# For UBI, we will be installing golang-fips
git clone https://github.com/golang-fips/go.git --branch ${GOLANG_FIPS_BRANCH} --single-branch --depth 1 /usr/local/go
# Use a different build process when golang version is less-than-equal to 1.18
if [[ $(echo -e "1.18\n${GO_MAJOR_VERSION}" | sort -V | tail -1) == '1.18' ]]; then
git clone https://github.com/golang-fips/go.git --branch "go${GO_MAJOR_VERSION}-openssl-fips" --single-branch --depth 1 /usr/local/go
cd /usr/local/go/src
cd /usr/local/go/src
PATH=$PATH:/tmp/golang/go/bin CGO_ENABLED=1 ./make.bash
else
git clone https://github.com/golang-fips/go.git --branch "go${GO_MAJOR_VERSION}-fips-release" --single-branch --depth 1 /tmp/golang-fips
cd /tmp/golang-fips
PATH=$PATH:/tmp/golang/go/bin CGO_ENABLED=1 ./make.bash
# The initialize script ends with a commit, so we need to set the user info. And needs to be global due to submodules in use.
git config --global user.email "builder@example.com"
git config --global user.name "Builder"
PATH=$PATH:/tmp/golang/go/bin ./scripts/full-initialize-repo.sh
cd /tmp/golang-fips/go/src
PATH=$PATH:/tmp/golang/go/bin GOROOT_FINAL=/usr/local/go CGO_ENABLED=1 ./make.bash
mv /tmp/golang-fips/go /usr/local/go
fi
rm -rf /usr/local/go/pkg/*/cmd /usr/local/go/pkg/bootstrap \
/usr/local/go/pkg/obj /usr/local/go/pkg/tool/*/api \
/usr/local/go/pkg/tool/*/go_bootstrap /usr/local/go/src/cmd/dist/dist \
/usr/local/go/.git* /tmp/golang
/usr/local/go/.git* /tmp/golang /tmp/golang-fips
ln -sf /usr/local/go/bin/go /usr/local/go/bin/gofmt /usr/local/go/bin/godoc /usr/local/bin/
}