mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-08-14 09:45:34 -04:00
ci: add e2e-upgrade test
The test is implemented as a go test. It can be executed as a bazel target. The general workflow is to setup a cluster, point the test to the workspace in which to find the kubeconfig and the constellation config and specify a target image, k8s and service version. The test will succeed if it detects all target versions in the cluster within the configured timeout. The CI automates the above steps. A separate workflow is introduced as there are multiple input fields to the test. Adding all of these to the manual e2e test seemed confusing. Co-authored-by: Fabian Kammel <fk@edgeless.systems>
This commit is contained in:
parent
18661ced48
commit
cac43a1dd0
25 changed files with 920 additions and 58 deletions
|
@ -10,6 +10,7 @@ import (
|
|||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/edgelesssys/constellation/v2/internal/cloud/cloudprovider"
|
||||
"github.com/edgelesssys/constellation/v2/internal/constants"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
@ -451,6 +452,49 @@ func TestVersionListPathURL(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestVersionArtifactURL(t *testing.T) {
|
||||
testCases := map[string]struct {
|
||||
ver Version
|
||||
csp cloudprovider.Provider
|
||||
wantMeasurementURL string
|
||||
wantSignatureURL string
|
||||
wantErr bool
|
||||
}{
|
||||
"nightly-feature": {
|
||||
ver: Version{
|
||||
Ref: "feat-some-feature",
|
||||
Stream: "nightly",
|
||||
Version: "v2.6.0-pre.0.20230217095603-193dd48ca19f",
|
||||
Kind: VersionKindImage,
|
||||
},
|
||||
csp: cloudprovider.GCP,
|
||||
wantMeasurementURL: constants.CDNRepositoryURL + "/" + constants.CDNAPIPrefix + "/ref/feat-some-feature/stream/nightly/v2.6.0-pre.0.20230217095603-193dd48ca19f/image/csp/gcp/measurements.json",
|
||||
wantSignatureURL: constants.CDNRepositoryURL + "/" + constants.CDNAPIPrefix + "/ref/feat-some-feature/stream/nightly/v2.6.0-pre.0.20230217095603-193dd48ca19f/image/csp/gcp/measurements.json.sig",
|
||||
},
|
||||
"fail for wrong kind": {
|
||||
ver: Version{
|
||||
Kind: VersionKindCLI,
|
||||
},
|
||||
wantErr: true,
|
||||
},
|
||||
}
|
||||
|
||||
for name, tc := range testCases {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
measurementURL, signatureURL, err := MeasurementURL(tc.ver, tc.csp)
|
||||
if tc.wantErr {
|
||||
assert.Error(err)
|
||||
return
|
||||
}
|
||||
assert.NoError(err)
|
||||
assert.Equal(tc.wantMeasurementURL, measurementURL.String())
|
||||
assert.Equal(tc.wantSignatureURL, signatureURL.String())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestVersionArtifactPathURL(t *testing.T) {
|
||||
testCases := map[string]struct {
|
||||
ver Version
|
||||
|
@ -518,7 +562,7 @@ func TestVersionArtifactPathURL(t *testing.T) {
|
|||
|
||||
path := tc.ver.ArtifactPath()
|
||||
assert.Equal(tc.wantPath, path)
|
||||
url := tc.ver.ArtifactURL()
|
||||
url := tc.ver.ArtifactsURL()
|
||||
assert.Equal(constants.CDNRepositoryURL+"/"+tc.wantPath, url)
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue