mirror of
https://github.com/argoproj/argo-cd
synced 2026-05-23 09:18:26 +00:00
Reduces total build time from 20m to 14m (#2560)
This commit is contained in:
parent
0675ff2fb2
commit
21cc1ec89b
2 changed files with 24 additions and 102 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
Loading…
Reference in a new issue