Reduces total build time from 20m to 14m (#2560)

This commit is contained in:
Alex Collins 2019-10-25 12:33:54 -07:00 committed by GitHub
parent 0675ff2fb2
commit 21cc1ec89b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 102 deletions

View file

@ -11,16 +11,15 @@ commands:
git config --global user.name "Your Name"
echo "export PATH=/home/circleci/.go_workspace/src/github.com/argoproj/argo-cd/hack:\$PATH" | tee -a $BASH_ENV
echo "export GIT_ASKPASS=git-ask-pass.sh" | tee -a $BASH_ENV
dep_ensure:
restore_vendor:
steps:
- restore_cache:
keys:
- vendor-v4-{{ checksum "Gopkg.lock" }}
- run:
name: Run dep ensure
command: dep ensure -v
- vendor-v1-{{ checksum "Gopkg.lock" }}-{{ .Environment.CIRCLE_JOB }}
save_vendor:
steps:
- save_cache:
key: vendor-v4-{{ checksum "Gopkg.lock" }}
key: vendor-v1-{{ checksum "Gopkg.lock" }}-{{ .Environment.CIRCLE_JOB }}
paths:
- vendor
install_golang:
@ -30,24 +29,23 @@ commands:
command: |
go get golang.org/dl/go1.12.6
[ -e /home/circleci/sdk/go1.12.6 ] || go1.12.6 download
go env
echo "export GOPATH=/home/circleci/.go_workspace" | tee -a $BASH_ENV
echo "export PATH=/home/circleci/sdk/go1.12.6/bin:\$PATH" | tee -a $BASH_ENV
save_go_cache:
steps:
- save_cache:
key: go-v18-{{ .Branch }}
key: go-v1-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}
# https://circleci.com/docs/2.0/language-go/
paths:
- /home/circleci/.go_workspace
- /home/circleci/.cache/go-build
- /home/circleci/sdk/go1.12.6
restore_go_cache:
steps:
- restore_cache:
keys:
- go-v18-{{ .Branch }}
- go-v18-master
- go-v17-{{ .Branch }}
- go-v17-master
- go-v1-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}
- go-v1-master-{{ .Environment.CIRCLE_JOB }}
jobs:
codegen:
docker:
@ -93,9 +91,11 @@ jobs:
paths: [/tmp/dl]
- configure_git
- run: go get github.com/jstemmer/go-junit-report
- dep_ensure
- save_go_cache
- restore_vendor
- run: dep ensure
- run: make test
- save_vendor
- save_go_cache
- run:
name: Uploading code coverage
command: bash <(curl -s https://codecov.io/bash) -f coverage.out
@ -133,7 +133,8 @@ jobs:
- save_cache:
key: e2e-dl-v10
paths: [/tmp/dl]
- dep_ensure
- restore_vendor
- run: dep ensure
- configure_git
- run: make cli
- run:
@ -179,6 +180,8 @@ jobs:
ARGOCD_OPTS: "--server localhost:8080 --plaintext"
ARGOCD_E2E_EXPECT_TIMEOUT: "30"
ARGOCD_E2E_K3S: "true"
- save_vendor
- save_go_cache
- store_test_results:
path: test-results
- store_artifacts:
@ -206,9 +209,7 @@ workflows:
workflow:
jobs:
- test
- codegen:
requires:
- test
- codegen
- ui:
requires:
- codegen

View file

@ -213,28 +213,6 @@ func updateSettingConfigMap(updater func(cm *corev1.ConfigMap) error) {
errors.CheckError(err)
}
func updateTLSCertsConfigMap(updater func(cm *corev1.ConfigMap) error) {
cm, err := KubeClientset.CoreV1().ConfigMaps(ArgoCDNamespace).Get(common.ArgoCDTLSCertsConfigMapName, v1.GetOptions{})
errors.CheckError(err)
if cm.Data == nil {
cm.Data = make(map[string]string)
}
errors.CheckError(updater(cm))
_, err = KubeClientset.CoreV1().ConfigMaps(ArgoCDNamespace).Update(cm)
errors.CheckError(err)
}
func updateSSHKnownHostsConfigMap(updater func(cm *corev1.ConfigMap) error) {
cm, err := KubeClientset.CoreV1().ConfigMaps(ArgoCDNamespace).Get(common.ArgoCDKnownHostsConfigMapName, v1.GetOptions{})
errors.CheckError(err)
if cm.Data == nil {
cm.Data = make(map[string]string)
}
errors.CheckError(updater(cm))
_, err = KubeClientset.CoreV1().ConfigMaps(ArgoCDNamespace).Update(cm)
errors.CheckError(err)
}
func SetResourceOverrides(overrides map[string]v1alpha1.ResourceOverride) {
updateSettingConfigMap(func(cm *corev1.ConfigMap) error {
if len(overrides) > 0 {
@ -277,17 +255,6 @@ func SetResourceFilter(filters settings.ResourcesFilter) {
})
}
func SetRepos(repos ...settings.Repository) {
updateSettingConfigMap(func(cm *corev1.ConfigMap) error {
yamlBytes, err := yaml.Marshal(repos)
if err != nil {
return err
}
cm.Data["repositories"] = string(yamlBytes)
return nil
})
}
func SetHelmRepos(repos ...settings.HelmRepoCredentials) {
updateSettingConfigMap(func(cm *corev1.ConfigMap) error {
yamlBytes, err := yaml.Marshal(repos)
@ -299,31 +266,6 @@ func SetHelmRepos(repos ...settings.HelmRepoCredentials) {
})
}
func SetRepoCredentials(repos ...settings.RepositoryCredentials) {
updateSettingConfigMap(func(cm *corev1.ConfigMap) error {
yamlBytes, err := yaml.Marshal(repos)
if err != nil {
return err
}
cm.Data["repository.credentials"] = string(yamlBytes)
return nil
})
}
func SetTLSCerts() {
updateTLSCertsConfigMap(func(cm *corev1.ConfigMap) error {
cm.Data = map[string]string{}
return nil
})
}
func SetSSHKnownHosts() {
updateSSHKnownHostsConfigMap(func(cm *corev1.ConfigMap) error {
cm.Data = map[string]string{}
return nil
})
}
func SetProjectSpec(project string, spec v1alpha1.AppProjectSpec) {
proj, err := AppClientset.ArgoprojV1alpha1().AppProjects(ArgoCDNamespace).Get(project, v1.GetOptions{})
errors.CheckError(err)
@ -351,38 +293,17 @@ func EnsureCleanState(t *testing.T) {
FailOnErr(Run("", "kubectl", "delete", "crd", "-l", testingLabel+"=true", "--wait=false"))
// reset settings
s, err := settingsManager.GetSettings()
CheckError(err)
CheckError(settingsManager.SaveSettings(&settings.ArgoCDSettings{
// changing theses causes a restart
AdminPasswordHash: s.AdminPasswordHash,
AdminPasswordMtime: s.AdminPasswordMtime,
ServerSignature: s.ServerSignature,
Certificate: s.Certificate,
DexConfig: s.DexConfig,
OIDCConfigRAW: s.OIDCConfigRAW,
URL: s.URL,
WebhookGitHubSecret: s.WebhookGitHubSecret,
WebhookGitLabSecret: s.WebhookGitLabSecret,
WebhookBitbucketUUID: s.WebhookBitbucketUUID,
WebhookBitbucketServerSecret: s.WebhookBitbucketServerSecret,
WebhookGogsSecret: s.WebhookGogsSecret,
KustomizeBuildOptions: s.KustomizeBuildOptions,
Secrets: s.Secrets,
}))
SetResourceOverrides(make(map[string]v1alpha1.ResourceOverride))
SetConfigManagementPlugins()
SetRepoCredentials()
SetRepos()
SetHelmRepos()
SetResourceFilter(settings.ResourcesFilter{})
updateSettingConfigMap(func(cm *corev1.ConfigMap) error {
cm.Data = map[string]string{}
return nil
})
SetProjectSpec("default", v1alpha1.AppProjectSpec{
OrphanedResources: nil,
SourceRepos: []string{"*"},
Destinations: []v1alpha1.ApplicationDestination{{Namespace: "*", Server: "*"}},
ClusterResourceWhitelist: []v1.GroupKind{{Group: "*", Kind: "*"}},
})
SetTLSCerts()
// remove tmp dir
CheckError(os.RemoveAll(TmpDir))