From 0972c195f4741738ce0f7f3fd4dcaa72e6507d54 Mon Sep 17 00:00:00 2001 From: Shwetha Gururaj Date: Fri, 5 Dec 2025 10:00:58 -0500 Subject: [PATCH 1/4] Fix CVEs and flaking tests --- .github/workflows/tests-integration.yml | 4 +- Makefile | 3 +- bin/cleanup-integration | 1 + integration/assets/hydrabroker/go.mod | 25 ++++++--- integration/assets/hydrabroker/go.sum | 52 ++++++++++++++++--- .../global/create_buildpack_command_test.go | 50 ++++++++++++++++++ .../global/delete_buildpack_command_test.go | 13 +++++ .../global/update_buildpack_command_test.go | 35 +++++++++++++ integration/v7/isolated/auth_command_test.go | 2 +- 9 files changed, 167 insertions(+), 18 deletions(-) diff --git a/.github/workflows/tests-integration.yml b/.github/workflows/tests-integration.yml index c30af9401fa..22fa19463d5 100644 --- a/.github/workflows/tests-integration.yml +++ b/.github/workflows/tests-integration.yml @@ -121,11 +121,13 @@ jobs: needs: - get-sha - set-env-name + - run-integration-tests-cf-env if: ${{ always() && needs.set-env-name.result == 'success' && (github.event_name != 'workflow_dispatch' || inputs.workflow == 'all' || - inputs.workflow == 'run-integration-tests-cf-env-with-client-creds') }} + inputs.workflow == 'run-integration-tests-cf-env-with-client-creds') && + needs.run-integration-tests-cf-env.result != 'failure' }} uses: ./.github/workflows/tests-integration-reusable.yml with: name: Integration client creds diff --git a/Makefile b/Makefile index 3e7db424b21..e256af095d6 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ CF_DIAL_TIMEOUT ?= 15 NODES ?= 10 FLAKE_ATTEMPTS ?=5 +GINKGO_SUITE_TIMEOUT=2h PACKAGES ?= api actor command types util version integration/helpers LC_ALL = en_US.UTF-8 @@ -22,7 +23,7 @@ UNAME_S := $(shell uname -s) POLL_PROGRESS_THRESHOLD=120s GINKGO_FLAGS ?= -r -randomize-all -require-suite -GINKGO_INT_FLAGS = $(GINKGO_FLAGS) --poll-progress-after $(POLL_PROGRESS_THRESHOLD) +GINKGO_INT_FLAGS = $(GINKGO_FLAGS) --poll-progress-after $(POLL_PROGRESS_THRESHOLD) --timeout $(GINKGO_SUITE_TIMEOUT) ginkgo_int = ginkgo $(GINKGO_INT_FLAGS) GINKGO_UNITS_FLAGS = $(GINKGO_FLAGS) -randomize-suites diff --git a/bin/cleanup-integration b/bin/cleanup-integration index ba0c275bc52..51a3bcfebd0 100755 --- a/bin/cleanup-integration +++ b/bin/cleanup-integration @@ -56,6 +56,7 @@ cf orgs | grep -i -e ^integration-org -e CATS- | xargs_func cf delete-org -f cf delete-org -f temp-org cf buildpacks | awk '/INTEGRATION-BUILDPACK/ { if(NF >= 6) { printf("cf delete-buildpack -f %s -s %s\n", $2, $3); } else { printf("cf delete-buildpack -f %s\n", $2); }}' | bash +cf buildpacks | awk '/INTEGRATION-BUILDPACK/ { printf("cf delete-buildpack -f %s\n", $2); }' | bash for stack in $(cf stacks | awk '/INTEGRATION-STACK/ { print $1 }'); do echo Deleting $stack diff --git a/integration/assets/hydrabroker/go.mod b/integration/assets/hydrabroker/go.mod index f723058d6d7..5386ce7161f 100644 --- a/integration/assets/hydrabroker/go.mod +++ b/integration/assets/hydrabroker/go.mod @@ -1,22 +1,33 @@ module code.cloudfoundry.org/cli/integration/assets/hydrabroker -go 1.24.0 +go 1.25 -toolchain go1.24.10 +toolchain go1.25.4 require ( - github.com/go-playground/validator/v10 v10.2.0 - github.com/gorilla/mux v1.7.4 + github.com/go-playground/validator/v10 v10.8.0 + github.com/gorilla/mux v1.8.0 github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d + github.com/onsi/ginkgo v1.11.0 + github.com/onsi/gomega v1.38.2 github.com/pivotal-cf/brokerapi/v7 v7.2.0 ) require ( code.cloudfoundry.org/lager v1.1.1-0.20191008172124-a9afc05ee5be // indirect - github.com/go-playground/locales v0.13.0 // indirect - github.com/go-playground/universal-translator v0.17.0 // indirect + github.com/go-playground/locales v0.14.0 // indirect + github.com/go-playground/universal-translator v0.18.0 // indirect + github.com/google/go-cmp v0.7.0 // indirect + github.com/hpcloud/tail v1.0.0 // indirect github.com/leodido/go-urn v1.2.1 // indirect - github.com/onsi/gomega v1.38.2 // indirect + github.com/onsi/ginkgo/v2 v2.27.2 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/stretchr/testify v1.8.4 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/crypto v0.41.0 // indirect + golang.org/x/net v0.43.0 // indirect + golang.org/x/sys v0.35.0 // indirect + golang.org/x/text v0.28.0 // indirect + gopkg.in/fsnotify.v1 v1.4.7 // indirect + gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect ) diff --git a/integration/assets/hydrabroker/go.sum b/integration/assets/hydrabroker/go.sum index ee0013db9eb..4fd1a2e27d2 100644 --- a/integration/assets/hydrabroker/go.sum +++ b/integration/assets/hydrabroker/go.sum @@ -1,41 +1,55 @@ code.cloudfoundry.org/lager v1.1.1-0.20191008172124-a9afc05ee5be h1:rnGRgbKlOPKbI9N/PscJ78Ug5Iw+o1kE7aDW01V+0FM= code.cloudfoundry.org/lager v1.1.1-0.20191008172124-a9afc05ee5be/go.mod h1:O2sS7gKP3HM2iemG+EnwvyNQK7pTSC6Foi4QiMp9sSk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/drewolson/testflight v1.0.0/go.mod h1:t9oKuuEohRGLb80SWX+uxJHuhX98B7HnojqtW+Ryq30= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/validator/v10 v10.8.0 h1:1kAa0fCrnpv+QYdkdcRzrRM7AyYs5o8+jZdJCz9xj6k= +github.com/go-playground/validator/v10 v10.8.0/go.mod h1:9JhgTzTaE31GZDpH/HSvHiRJrJ3iKAgqqH0Bl/Ocjdk= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.0 h1:Jf4mxPC/ziBnoPIdpQdPJ9OeiomAUHLvxmPRSPH9m4s= github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= -github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.0.0-20160823170715-cfb55aafdaf3/go.mod h1:Bvhd+E3laJ0AVkG0c9rmtZcnhV0HQ3+c3YxxqTvc/gA= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.0.0-20160504234017-7cafcd837844/go.mod h1:sjUstKUATFIcff4qlB53Kml0wQPtJVc/3fWrmuUmcfA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= @@ -45,6 +59,8 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns= +github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= @@ -58,9 +74,10 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -68,32 +85,51 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= +golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A= +google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= diff --git a/integration/v7/global/create_buildpack_command_test.go b/integration/v7/global/create_buildpack_command_test.go index b12468f6637..e9a776ab46b 100644 --- a/integration/v7/global/create_buildpack_command_test.go +++ b/integration/v7/global/create_buildpack_command_test.go @@ -66,6 +66,7 @@ var _ = Describe("create buildpack command", func() { AfterEach(func() { err := os.RemoveAll(buildpackDir) Expect(err).ToNot(HaveOccurred()) + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) }) When("zipping the directory errors", func() { @@ -126,6 +127,10 @@ var _ = Describe("create buildpack command", func() { }) When("specifying a valid path", func() { + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + When("the new buildpack is unique", func() { When("the new buildpack has a nil stack", func() { It("successfully uploads a buildpack", func() { @@ -146,6 +151,10 @@ var _ = Describe("create buildpack command", func() { }) When("the new buildpack has a valid stack", func() { + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + }) + It("successfully uploads a buildpack", func() { helpers.BuildpackWithStack(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "1") @@ -166,6 +175,10 @@ var _ = Describe("create buildpack command", func() { }) When("the new buildpack has an invalid stack", func() { + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + }) + It("returns the appropriate error", func() { helpers.BuildpackWithStack(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "1") @@ -196,6 +209,10 @@ var _ = Describe("create buildpack command", func() { }, stacks[0]) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + }) + It("prints a warning and exits with an error", func() { helpers.BuildpackWithStack(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "1") @@ -218,6 +235,10 @@ var _ = Describe("create buildpack command", func() { }) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + It("prints a warning and exits with an error", func() { helpers.BuildpackWithoutStack(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "1") @@ -238,6 +259,11 @@ var _ = Describe("create buildpack command", func() { }, stacks[1]) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[1], "-f")).Should(Exit(0)) + }) + It("successfully uploads a buildpack", func() { helpers.BuildpackWithStack(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "1") @@ -265,6 +291,10 @@ var _ = Describe("create buildpack command", func() { }) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + It("prints a warning and tip, then exits with an error", func() { helpers.BuildpackWithStack(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "1") @@ -283,6 +313,10 @@ var _ = Describe("create buildpack command", func() { }, stacks[0]) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + }) + It("prints a warning then exits with an error", func() { helpers.BuildpackWithStack(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "1") @@ -305,6 +339,10 @@ var _ = Describe("create buildpack command", func() { When("specifying a valid path", func() { When("the new buildpack is unique", func() { When("the new buildpack has a nil stack", func() { + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + It("successfully uploads a buildpack", func() { helpers.CNB(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "1", "--lifecycle=cnb") @@ -344,6 +382,10 @@ var _ = Describe("create buildpack command", func() { buildpackURL = "https://github.com/cloudfoundry/binary-buildpack/releases/download/v1.0.21/binary-buildpack-v1.0.21.zip" }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + It("successfully uploads a buildpack", func() { session := helpers.CF("create-buildpack", buildpackName, buildpackURL, "1") Eventually(session).Should(Say(`Creating buildpack %s as %s\.\.\.`, buildpackName, username)) @@ -400,6 +442,10 @@ var _ = Describe("create buildpack command", func() { When("specifying the position flag", func() { When("position is positive integer", func() { + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + It("successfully uploads buildpack in correct position", func() { helpers.BuildpackWithoutStack(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "3") @@ -420,6 +466,10 @@ var _ = Describe("create buildpack command", func() { }) When("specifying disable flag", func() { + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + It("disables buildpack", func() { helpers.BuildpackWithoutStack(func(buildpackPath string) { session := helpers.CF("create-buildpack", buildpackName, buildpackPath, "1", "--disable") diff --git a/integration/v7/global/delete_buildpack_command_test.go b/integration/v7/global/delete_buildpack_command_test.go index 1bd4e0b84bd..357a5243428 100644 --- a/integration/v7/global/delete_buildpack_command_test.go +++ b/integration/v7/global/delete_buildpack_command_test.go @@ -145,6 +145,11 @@ var _ = Describe("delete-buildpack command", func() { }, stacks[1]) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[1], "-f")).Should(Exit(0)) + }) + It("properly handles ambiguity", func() { By("failing when no stack specified") @@ -186,6 +191,10 @@ var _ = Describe("delete-buildpack command", func() { Eventually(session).Should(Exit(0)) }) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) It("properly handles ambiguity", func() { By("deleting the nil stack buildpack when no stack specified") @@ -213,6 +222,10 @@ var _ = Describe("delete-buildpack command", func() { }) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + When("the user enters 'y'", func() { BeforeEach(func() { _, err := buffer.Write([]byte("y\n")) diff --git a/integration/v7/global/update_buildpack_command_test.go b/integration/v7/global/update_buildpack_command_test.go index c32ac396e38..8d93159dd8d 100644 --- a/integration/v7/global/update_buildpack_command_test.go +++ b/integration/v7/global/update_buildpack_command_test.go @@ -66,6 +66,7 @@ var _ = Describe("update-buildpack command", func() { AfterEach(func() { helpers.DeleteBuildpackIfOnOldCCAPI(buildpackName) + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) }) When("the buildpack is not provided", func() { @@ -113,6 +114,11 @@ var _ = Describe("update-buildpack command", func() { Eventually(listSession).Should(Exit(0)) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + When("no stack association is specified", func() { It("acts on the buildpack with the nil stack", func() { session := helpers.CF("update-buildpack", buildpackName) @@ -167,6 +173,11 @@ var _ = Describe("update-buildpack command", func() { Eventually(listSession).Should(Exit(0)) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[1], "-f")).Should(Exit(0)) + }) + When("no stack association is specified", func() { It("displays an error saying that multiple buildpacks were found", func() { session := helpers.CF("update-buildpack", buildpackName) @@ -214,6 +225,10 @@ var _ = Describe("update-buildpack command", func() { Eventually(listSession).Should(Exit(0)) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-s", stacks[0], "-f")).Should(Exit(0)) + }) + When("no stack association is specified", func() { It("updates the only buildpack with that name", func() { session := helpers.CF("update-buildpack", buildpackName) @@ -250,6 +265,10 @@ var _ = Describe("update-buildpack command", func() { Eventually(listSession).Should(Exit(0)) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + When("only a name is provided", func() { It("prints a success message", func() { session := helpers.CF("update-buildpack", buildpackName) @@ -542,6 +561,10 @@ var _ = Describe("update-buildpack command", func() { newBuildpackName = helpers.NewBuildpackName() }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", newBuildpackName, "-f")).Should(Exit(0)) + }) + When("a buildpack with the new name does not already exist", func() { It("renames the buildpack", func() { session := helpers.CF("update-buildpack", buildpackName, "--rename", newBuildpackName) @@ -568,6 +591,10 @@ var _ = Describe("update-buildpack command", func() { Eventually(listSession).Should(Exit(0)) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", newBuildpackName, "-f")).Should(Exit(0)) + }) + It("fails to rename the buildpack", func() { session := helpers.CF("update-buildpack", buildpackName, "--rename", newBuildpackName) Eventually(session.Err).Should(Say("Buildpack with name '%s' and an unassigned stack already exists", newBuildpackName)) @@ -586,6 +613,10 @@ var _ = Describe("update-buildpack command", func() { }) }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + When("specifying enable flag", func() { It("enables buildpack", func() { session := helpers.CF("update-buildpack", buildpackName, "--enable") @@ -613,6 +644,10 @@ var _ = Describe("update-buildpack command", func() { buildpackURL = "https://github.com/cloudfoundry/binary-buildpack/releases/download/v1.0.21/binary-buildpack-v1.0.21.zip" }) + AfterEach(func() { + Eventually(helpers.CF("delete-buildpack", buildpackName, "-f")).Should(Exit(0)) + }) + Context("specifying -p argument", func() { It("fails to update buildpack", func() { session := helpers.CF("update-buildpack", buildpackName, "-p", buildpackURL) diff --git a/integration/v7/isolated/auth_command_test.go b/integration/v7/isolated/auth_command_test.go index f55e24436a2..893714683fc 100644 --- a/integration/v7/isolated/auth_command_test.go +++ b/integration/v7/isolated/auth_command_test.go @@ -309,7 +309,7 @@ var _ = Describe("auth command", func() { username, password = helpers.SkipIfOIDCCredentialsNotSet() }) - It("authenticates the user", func() { + It("authenticates the user", FlakeAttempts(3), func() { session := helpers.CF("auth", username, password, "--origin", "cli-oidc-provider") Eventually(session).Should(Say("API endpoint: %s", helpers.GetAPI())) From 51e9a4160b43cf8c9813d8a8f1ba664e609653c2 Mon Sep 17 00:00:00 2001 From: Shwetha Gururaj Date: Fri, 5 Dec 2025 11:17:32 -0500 Subject: [PATCH 2/4] Change vm type --- .github/ops-files/bosh-lite-vm-type.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ops-files/bosh-lite-vm-type.yml b/.github/ops-files/bosh-lite-vm-type.yml index eebd6a6e886..657ebef7956 100644 --- a/.github/ops-files/bosh-lite-vm-type.yml +++ b/.github/ops-files/bosh-lite-vm-type.yml @@ -2,7 +2,7 @@ # Configure sizes for bosh-lite on gcp - type: replace path: /resource_pools/name=vms/cloud_properties/machine_type - value: n2-standard-8 + value: n2-standard-16 - type: replace path: /disk_pools/name=disks/disk_size value: 250000 From ba6c624d068184f280c1a75e42d1a45940c9351e Mon Sep 17 00:00:00 2001 From: Shwetha Gururaj Date: Fri, 5 Dec 2025 13:48:26 -0500 Subject: [PATCH 3/4] Revert vm type change --- .github/ops-files/bosh-lite-vm-type.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ops-files/bosh-lite-vm-type.yml b/.github/ops-files/bosh-lite-vm-type.yml index 657ebef7956..eebd6a6e886 100644 --- a/.github/ops-files/bosh-lite-vm-type.yml +++ b/.github/ops-files/bosh-lite-vm-type.yml @@ -2,7 +2,7 @@ # Configure sizes for bosh-lite on gcp - type: replace path: /resource_pools/name=vms/cloud_properties/machine_type - value: n2-standard-16 + value: n2-standard-8 - type: replace path: /disk_pools/name=disks/disk_size value: 250000 From ba5b8a4e0fcefea0a04b41b02eb2281e408f86c7 Mon Sep 17 00:00:00 2001 From: Shwetha Gururaj Date: Mon, 8 Dec 2025 10:03:57 -0500 Subject: [PATCH 4/4] Update flake attempts --- .github/workflows/tests-integration-reusable.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests-integration-reusable.yml b/.github/workflows/tests-integration-reusable.yml index f100114484f..9633c724ffe 100644 --- a/.github/workflows/tests-integration-reusable.yml +++ b/.github/workflows/tests-integration-reusable.yml @@ -19,7 +19,7 @@ on: env: ENV_NAME: ${{ inputs.env-name }} NODES: 12 - FLAKE_ATTEMPTS: ${{ vars.TEST_FLAKE_ATTEMPTS || '4' }} + FLAKE_ATTEMPTS: ${{ vars.TEST_FLAKE_ATTEMPTS || '5' }} BBL_CLI_VERSION: ${{ vars.BBL_CLI_VERSION }} BOSH_CLI_VERSION: ${{ vars.BOSH_CLI_VERSION }} CREDHUB_CLI_VERSION: ${{ vars.CREDHUB_CLI_VERSION }}