Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Okstad <pokstad@gitlab.com>2020-12-03 21:25:18 +0300
committerZeger-Jan van de Weg <git@zjvandeweg.nl>2020-12-03 21:25:18 +0300
commit32f0291e6214fcb694b047187fd14c032c5ace7d (patch)
tree63530c487c6e9d88befd34f15b3afe644a4811c0
parentadd5f3dd182c99b4d9e1cf93e45fec1214c00659 (diff)
Support Golang v1.14 and v1.15 in CI
-rw-r--r--.gitlab-ci.yml14
-rw-r--r--changelogs/unreleased/po-golang-upgrade-1-15.yml5
-rw-r--r--client/dial_test.go14
-rw-r--r--client/testdata/gitalycert.pem60
-rw-r--r--client/testdata/gitalykey.pem100
-rw-r--r--cmd/gitaly-ssh/auth_test.go2
-rwxr-xr-xcmd/gitaly-ssh/testdata/certs/gitalycert.pem60
-rw-r--r--cmd/gitaly-ssh/testdata/gitalykey.pem100
-rw-r--r--internal/gitaly/config/config_test.go6
-rw-r--r--internal/gitaly/server/auth_test.go1
-rw-r--r--internal/gitaly/server/testdata/gitalycert.pem60
-rw-r--r--internal/gitaly/server/testdata/gitalykey.pem100
12 files changed, 271 insertions, 251 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5c137f4aa..7bd955c2c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,7 +4,7 @@ stages:
- publish
default:
- image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7-golang-1.14-git-2.29
+ image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7-golang-1.15-git-2.29
tags:
- gitlab-org
@@ -14,7 +14,7 @@ variables:
SAST_DISABLE_DIND: "true"
SAST_DEFAULT_ANALYZERS: "gosec"
GIT_VERSION: "v2.29.0"
- GO_VERSION: "1.14"
+ GO_VERSION: "1.15"
RUBY_VERSION: "2.7"
include:
@@ -120,7 +120,7 @@ build:
- _support/test-boot .
parallel:
matrix:
- - GO_VERSION: [ "1.13", "1.14" ]
+ - GO_VERSION: [ "1.14", "1.15" ]
GIT_VERSION: [ "v2.29.0" ]
binaries:
@@ -141,7 +141,7 @@ binaries:
expire_in: 6 months
parallel:
matrix:
- - GO_VERSION: [ "1.13", "1.14" ]
+ - GO_VERSION: [ "1.14", "1.15" ]
GIT_VERSION: "v2.29.0"
test:
@@ -162,10 +162,10 @@ test:
junit: _build/reports/go-tests-report-go-${GO_VERSION}-git-${GIT_VERSION}.xml
parallel:
matrix:
- - GO_VERSION: [ "1.13", "1.14" ]
+ - GO_VERSION: [ "1.14", "1.15" ]
GIT_VERSION: [ "v2.29.0" ]
TARGET: test
- - GO_VERSION: "1.14"
+ - GO_VERSION: "1.15"
GIT_VERSION: "v2.29.0"
TARGET: [ test-with-proxies, test-with-praefect, race-go ]
@@ -177,7 +177,7 @@ nightly:git:
- make all ${TARGET}
parallel:
matrix:
- - GO_VERSION: "1.14"
+ - GO_VERSION: "1.15"
GIT_VERSION: ["master", "next"]
TARGET: [ test, test-with-proxies, test-with-praefect ]
rules:
diff --git a/changelogs/unreleased/po-golang-upgrade-1-15.yml b/changelogs/unreleased/po-golang-upgrade-1-15.yml
new file mode 100644
index 000000000..059efc362
--- /dev/null
+++ b/changelogs/unreleased/po-golang-upgrade-1-15.yml
@@ -0,0 +1,5 @@
+---
+title: Support Golang v1.15.5 in CI
+merge_request: 2858
+author:
+type: other
diff --git a/client/dial_test.go b/client/dial_test.go
index 493912838..67e28518c 100644
--- a/client/dial_test.go
+++ b/client/dial_test.go
@@ -52,15 +52,12 @@ func TestDial(t *testing.T) {
unixSocketAbsPath := connectionMap["unix"]
- cwd, err := os.Getwd()
- require.NoError(t, err)
-
tempDir, cleanup := testhelper.TempDir(t)
defer cleanup()
- unixSocketRelPath, err := filepath.Rel(cwd, filepath.Join(tempDir, "gitaly.socket"))
+ unixSocketPath := filepath.Join(tempDir, "gitaly.socket")
require.NoError(t, err)
- require.NoError(t, os.Symlink(unixSocketAbsPath, unixSocketRelPath))
+ require.NoError(t, os.Symlink(unixSocketAbsPath, unixSocketPath))
tests := []struct {
name string
@@ -86,7 +83,7 @@ func TestDial(t *testing.T) {
},
{
name: "unix relative",
- rawAddress: "unix:" + unixSocketRelPath, // "unix:../../tmp/temp-socket"
+ rawAddress: "unix:" + unixSocketPath, // "unix:../../tmp/temp-socket"
expectFailure: false,
},
{
@@ -96,7 +93,7 @@ func TestDial(t *testing.T) {
},
{
name: "unix relative does not exist",
- rawAddress: "unix:" + unixSocketRelPath + ".does_not_exist", // "unix:../../tmp/temp-socket.does_not_exist"
+ rawAddress: "unix:" + unixSocketPath + ".does_not_exist", // "unix:../../tmp/temp-socket.does_not_exist"
expectFailure: true,
},
{
@@ -400,6 +397,7 @@ func startUnixListener() (func(), string, error) {
}
// startTLSListener will start a secure TLS listener on a random unused port
+//go:generate openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -out testdata/gitalycert.pem -keyout testdata/gitalykey.pem -subj "/C=US/ST=California/L=San Francisco/O=GitLab/OU=GitLab-Shell/CN=localhost" -addext "subjectAltName = IP:127.0.0.1, DNS:localhost"
func startTLSListener() (func(), string, error) {
listener, err := net.Listen("tcp", "localhost:0")
if err != nil {
@@ -408,7 +406,7 @@ func startTLSListener() (func(), string, error) {
tcpPort := listener.Addr().(*net.TCPAddr).Port
address := fmt.Sprintf("%d", tcpPort)
- cert, err := tls.LoadX509KeyPair("./testdata/gitalycert.pem", "./testdata/gitalykey.pem")
+ cert, err := tls.LoadX509KeyPair("testdata/gitalycert.pem", "testdata/gitalykey.pem")
if err != nil {
return nil, "", err
}
diff --git a/client/testdata/gitalycert.pem b/client/testdata/gitalycert.pem
index 8b1514548..a64587df0 100644
--- a/client/testdata/gitalycert.pem
+++ b/client/testdata/gitalycert.pem
@@ -1,30 +1,34 @@
-----BEGIN CERTIFICATE-----
-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
+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
-----END CERTIFICATE-----
diff --git a/client/testdata/gitalykey.pem b/client/testdata/gitalykey.pem
index 8df87e633..f728527c3 100644
--- a/client/testdata/gitalykey.pem
+++ b/client/testdata/gitalykey.pem
@@ -1,52 +1,52 @@
-----BEGIN PRIVATE KEY-----
-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
-eM9aMpgdAlLOJrfZHS3kK3968ZclB4GB
+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
+L8aOeKE3Zf7tir2LjG/0phjefjgNoH0=
-----END PRIVATE KEY-----
diff --git a/cmd/gitaly-ssh/auth_test.go b/cmd/gitaly-ssh/auth_test.go
index 7b8f92764..efcfad493 100644
--- a/cmd/gitaly-ssh/auth_test.go
+++ b/cmd/gitaly-ssh/auth_test.go
@@ -22,7 +22,9 @@ import (
"google.golang.org/grpc"
)
+//go:generate openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -out testdata/certs/gitalycert.pem -keyout testdata/gitalykey.pem -subj "/C=US/ST=California/L=San Francisco/O=GitLab/OU=GitLab-Shell/CN=localhost" -addext "subjectAltName = IP:127.0.0.1, DNS:localhost"
func TestConnectivity(t *testing.T) {
+ // regenerate the test cert and key via `go generate`
config.Config.TLS = config.TLS{
CertPath: "testdata/certs/gitalycert.pem",
KeyPath: "testdata/gitalykey.pem",
diff --git a/cmd/gitaly-ssh/testdata/certs/gitalycert.pem b/cmd/gitaly-ssh/testdata/certs/gitalycert.pem
index 8b1514548..edda651a7 100755
--- a/cmd/gitaly-ssh/testdata/certs/gitalycert.pem
+++ b/cmd/gitaly-ssh/testdata/certs/gitalycert.pem
@@ -1,30 +1,34 @@
-----BEGIN CERTIFICATE-----
-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
+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
-----END CERTIFICATE-----
diff --git a/cmd/gitaly-ssh/testdata/gitalykey.pem b/cmd/gitaly-ssh/testdata/gitalykey.pem
index 8df87e633..b38c0308f 100644
--- a/cmd/gitaly-ssh/testdata/gitalykey.pem
+++ b/cmd/gitaly-ssh/testdata/gitalykey.pem
@@ -1,52 +1,52 @@
-----BEGIN PRIVATE KEY-----
-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
-eM9aMpgdAlLOJrfZHS3kK3968ZclB4GB
+MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDlE5ndzmKVSnj9
+xDTiy/k5t38Xc9mCtpP3qpicyy0jl8i698DUw+hUZ/LT4Mu47+I3wW+8syk5FPE9
+bqmmmmRx2dk4iY0pGeb8m7sTUKU5+2Oq1ytV+mSiwaDaurcdgcRiVFBHpsqtSTeM
+gjn/4Q4qnRExX72Zk51AFA/jd0M73zaecnA0Rr45w1x7UUAVQOFSCfcA2WG7Xe2D
+OqtxzQ/ItizRrU4h47ABhRPxCdbI6VLi4ocuUPHl58tLEMCco6Ds+SmDiHfaZqtT
+qkT2fbV5NxiEz3QKlUlGW9/eyVWZQSxHisv0UTvl0Y6IHc4MwiaqSniuEBjV46Ec
+PYGDWWKApLzbJGKp+Lqn+y6+/eKJWCkpak2lKt0+vzmfwDFAGnnQe4dLvr+Tzu12
+CorfIh3ZrzCMcxzLkmkHmqri11KFgmFOZndh5+UrEsfrLBj56Q6cTGHQMbzUM8Yx
+tVzdMWlUoLCMN6vwYBYOBbO0RTGL+PRfiU1wYyWYsZ1vwoyFiUtfqR5JB39JJl8l
+zzbcDTnnLBBfoalY2WqlZKHI5b/mQ6lQUnHSrUqpUbUh/+6Lh2ZzDAWEuNQLgSMJ
+cZ3I+cRQdIESSMs8RSopEnm1gkup9oBOPSP2Z1wX+JcG/68BCpe+EOder9Dhu3zl
+B3DORPQiu9G++xmNZPFKTwpoZSlL0wIDAQABAoICAQCs+rAlncMzmJjkh1SoLf50
+ZuvBeem1mskBLAEx5Pqg9ezNwmgKQiUeF6B1/jnX3Myl7ZvCkkd+oyHHkdjpxYwz
+rJ0q5DOD5dtWxQHvA+bAceRBDVncAsgbXrtob7X2whbZaXF1qa1CTRd1MqE5Z2ib
+JR/meLVjUuRbjsqwqU5L17IW07OGxiS+2ZbsR95sLiH3IS8zpPL32WWQwqzTslVI
+6sfNTWDClnxBqYv1Z8iYzheY3BXYE6eWRAJvHKdVoPnT+BIxEMvwT7bv5pNMzoBK
+mCAbqcumcjRyvM3AHahVobEeFOEODIl+cU9/2YHOgI1R6gpW5jDa0pjGCmvSE50c
+uV+oaWY2dICd61JL3EEvTzCI+8l10r8cLI4jIdc+cLDhM21Yp59aVxNOzyIcz/SI
+CLwppTEvx6yYfx6aGpBQj7Gvy/nmalxmbPZvsl5ViilwDt8i87bo0QfU1lIRz6Zh
+LbgsR7vJEdquYA0F5LpGCBU0Oe14Z/J2K4vi7IJwibt9hMoTu79R7Wvlwiiqgi07
+1s1X63XXRQ9/YHZNahQAPycrEakyjMaH/n1CZZ75r+efL8nFBA5CYOweExUkcdXJ
+90n78llnfsJXcPwFY51GeR4jsREUtenER2ubp6QhUsaBccLu+EY5OP9Id8wscVBN
+asr+9cofYerBWjUQlD1HAQKCAQEA+e6EV0eTW7RYtI+WlM40WxTZiOIhX+lUKifg
+MtCrFnfJ5LqeGXf/ZLCmykHSl/cOMOIuq3hY92eNE11nZqSK4FMwPkyMUQKuWlq9
+DvAdACqCo9UTy+BiRLD4ZEBO5HVFtO7wqsop4qctLBH6K5SlGsrIUxekkpPjf7+I
+CIWzQhS6naP1Rtf9whxZm9tYx8TyN/YHwC1cdnrtl65UIPTyRrHxo09ZXlMkq8YA
+SUbGsXPNvx0x6OS8I/K1UASyPuatCuUxuC0depgj9Vmx/IVm7pdUvV4PuGoSjFJc
+oYgZv6mGCufKNqwPDMDVibMfEriZbPNuFNsELaCgKE3M4jLZKwKCAQEA6qN0zIiX
+Lb+dGS5kLRaW889oO7Tr2eiAAAjPm/k0OCes2MXUMIk0SeM5gxLwouRfvoMTsiZI
+wxWB6sClmqvvYGirChKSMc+cs/koRk4mcjUo2Dpfb2lAJkkWusUcfICX4Ud5SPiI
+QtB1xrOoIWRmEcBUVw9hQ87h+3pX/7BtZ4NqXHfMz7OOXhCKk3Vvrp1GYDuKKG18
+yQlaWzLzJx0BTCLve0zUPTUnwcyyIMGYj5ayF0+Cf2KSaPMV+hnrPasWzjvZoaPc
+8uj6AXZ5DenMuRdsd6Mb3eHpW8xOOw9Es5dKhUWuJ+wJZVvLVjyguZMHOQ6aD9RR
+iLS2tNC/OBGz+QKCAQEAqQTEOsIMxVeRJYp1KuzIO1A+THOgXlxMrrWIyNSU3vzj
+a+tIP7EG5fEQ2nbpFBvfXO+Y4BzjDWzZ2t6vrppX0JxxY7AgtCg8AJ6cfB2lfxdA
+gcr3OEjmK84CLMnQkG8+VL3Bw74z1TN5OPRvWkmL3jKEhqzWfsnEb//23syMDYQ3
+L6RRmzc2RK8nal9MCs0FgRLA6xXCEd3QD2O1QRRlQ6nS374pkcBobEHar7NNa3QF
+D9mOhxEoqqbYNuT2JdOZ8mRM22CnLuD0cFfYJg2RLojopaeWugAByyNnwVVpFFRw
+ca+O8KorA1TlE9ouiVqNZ0C4kSIMEU8vABKdG9uHQQKCAQB547HgMrC+TkUQ+L2H
+gq2mOD+AjMrcp2AfJHSdJQcQiOPMtHA3Sn9ERurwgV1KcXKfaD5KFINF/J1B0xP0
+Vo8CuTzo/Z6+i4hvIebfJufn+l+efCxplvaBLQTGv3C96Jt9pwCFfL5kXyBfuaKE
+vkAbxprJoy625/kTB4pBRGiBFo6hPIbD+xXhHZyvX5lFz2Pox+VMfRwO33H14HDa
+B8JNx/Q6TD4REdT2YxzB0XAsX29ilqZHAHDoXiczhlVi8sblGchDpPk5oveE3QOj
+y6nTGSz6tVvblukADBEzswnQda57ryf6iy6SXe4yfUpNPOjKpiA4SuaUKrSjF7HO
+MbwZAoIBAFVlNl3KXXHesDR0ldO9Oxi5mKljsxxZZTYEpCBQOu3WMrErKdaPY8zP
+RyyRFblcNPhFyHz8jbVWOQXH/zRyfT7E4GWt0zpSYUMc+MC9qaJTcgYZluW8fI/x
+diOjTYPs5oU0X3lBOQKWIGQv+G+QCZ9t2xWTfTVaNgBH6FvhAMhT8Jk5++u0er0L
+b/wVSHelw+GhAbOJ2AeJjywHa+6YBvNK+q/Nwn/KHOAfDGt3oGkNO0Cl9v4uvhpb
+CUiq3c/jsb1FsbawBvuVRLxytoCs67kHitLh+7+85Q6+ejnG1FVfei8BE4yQ+fmw
+cYxCTSbHEtUru9v5t6sVsllFqDMQFvQ=
-----END PRIVATE KEY-----
diff --git a/internal/gitaly/config/config_test.go b/internal/gitaly/config/config_test.go
index b4f5fdb52..ff46ff564 100644
--- a/internal/gitaly/config/config_test.go
+++ b/internal/gitaly/config/config_test.go
@@ -797,7 +797,7 @@ storages = ["default"]
rawCfg: `[daily_maintenance]
duration = "meow"`,
expect: DailyJob{},
- loadErr: errors.New("load toml: (2, 4): unmarshal text: time: invalid duration meow"),
+ loadErr: errors.New("load toml: (2, 4): unmarshal text: time: invalid duration"),
}, {
rawCfg: `[daily_maintenance]
storages = ["default"]`,
@@ -810,7 +810,9 @@ storages = ["default"]
t.Run(tt.name, func(t *testing.T) {
tmpFile := strings.NewReader(tt.rawCfg)
cfg, err := Load(tmpFile)
- require.Equal(t, tt.loadErr, err)
+ if err != nil {
+ require.Contains(t, err.Error(), tt.loadErr.Error())
+ }
require.Equal(t, tt.expect, cfg.DailyMaintenance)
require.Equal(t, tt.validateErr, cfg.validateMaintenance())
})
diff --git a/internal/gitaly/server/auth_test.go b/internal/gitaly/server/auth_test.go
index 06fb4e4d4..fdd4edfbb 100644
--- a/internal/gitaly/server/auth_test.go
+++ b/internal/gitaly/server/auth_test.go
@@ -216,6 +216,7 @@ func runServer(t *testing.T) (string, func()) {
return runServerWithRuby(t, nil)
}
+//go:generate openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -out testdata/gitalycert.pem -keyout testdata/gitalykey.pem -subj "/C=US/ST=California/L=San Francisco/O=GitLab/OU=GitLab-Shell/CN=localhost" -addext "subjectAltName = IP:127.0.0.1, DNS:localhost"
func runSecureServer(t *testing.T) (string, func()) {
config.Config.TLS = config.TLS{
CertPath: "testdata/gitalycert.pem",
diff --git a/internal/gitaly/server/testdata/gitalycert.pem b/internal/gitaly/server/testdata/gitalycert.pem
index 8b1514548..df078e4ee 100644
--- a/internal/gitaly/server/testdata/gitalycert.pem
+++ b/internal/gitaly/server/testdata/gitalycert.pem
@@ -1,30 +1,34 @@
-----BEGIN CERTIFICATE-----
-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
+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
-----END CERTIFICATE-----
diff --git a/internal/gitaly/server/testdata/gitalykey.pem b/internal/gitaly/server/testdata/gitalykey.pem
index 8df87e633..cbb179201 100644
--- a/internal/gitaly/server/testdata/gitalykey.pem
+++ b/internal/gitaly/server/testdata/gitalykey.pem
@@ -1,52 +1,52 @@
-----BEGIN PRIVATE KEY-----
-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
-eM9aMpgdAlLOJrfZHS3kK3968ZclB4GB
+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
+DJaN5JpXGenp+4uIgp/kwU7KWKIQWgY=
-----END PRIVATE KEY-----