github.com/cloudfoundry-incubator/stembuild@v0.0.0-20211223202937-5b61d62226c6/Makefile (about) 1 GOSRC = $(shell find . -name "*.go" ! -name "*test.go" ! -name "*fake*" ! -path "./integration/*") 2 FAKE_STEMCELL_AUTOMATION_PATH = integration/construct/assets/StemcellAutomation.zip 3 FAKE_STEMCELL_AUTOMATION_PREFIX = $(shell dirname "${FAKE_STEMCELL_AUTOMATION_PATH}") 4 STEMCELL_VERSION = $(shell echo "$${STEMBUILD_VERSION}") 5 LD_FLAGS = "-w -s -X github.com/cloudfoundry-incubator/stembuild/version.Version=${STEMCELL_VERSION}" 6 7 # These are the sources for StemcellAutomation.zip 8 STEMCELL_AUTOMATION_PS1 := $(shell ls stemcell-automation/*ps1 | grep -iv Test) 9 BOSH_AGENT_REPO ?= ${HOME}/go/src/github.com/cloudfoundry/bosh-agent 10 LGPO_URL = 'https://www.microsoft.com/en-us/download/confirmation.aspx?id=55319&6B49FDFB-8E5B-4B07-BC31-15695C5A2143=1' 11 BOSH_GCS_URL = 'https://s3.amazonaws.com/bosh-gcscli/bosh-gcscli-0.0.6-windows-amd64.exe' 12 # Ignore things under cis-merge* directory because the paths contain spaces and make doesn't like 13 # that 14 PSMODULES_SOURCES = $(shell find ./modules | grep -v .git | grep -vi "test" | grep -v cis-merge) 15 BOSH_AGENT_SOURCES = $(shell find $(BOSH_AGENT_REPO) | egrep -v ".git|test.go|fake|.md") 16 17 ifeq ($(OS),Windows_NT) 18 COMMAND = out/stembuild.exe 19 CP = cp 20 else 21 UNAME = $(shell uname -s) 22 COMMAND = out/stembuild 23 24 ifeq ($(UNAME),Darwin) 25 CP = cp -p 26 else ifeq ($(UNAME),Linux) 27 CP = cp --preserve=mode,ownership 28 endif 29 endif 30 31 all : test build 32 33 build : out/stembuild 34 35 build-integration : generate-fake-stemcell-automation $(GOSRC) 36 go build -o $(COMMAND) -ldflags $(LD_FLAGS) . 37 38 clean : 39 rm -rf version/version.go assets/stemcell_automation.go assets/StemcellAutomation.zip assets/local/* out/* 40 41 format : 42 go fmt ./... 43 44 integration : generate-fake-stemcell-automation 45 go run github.com/onsi/ginkgo/ginkgo -r -v -randomizeAllSpecs -flakeAttempts 2 integration 46 47 integration/construct : generate-fake-stemcell-automation 48 go run github.com/onsi/ginkgo/ginkgo -r -v -randomizeAllSpecs integration/construct 49 50 integration-badger : generate-fake-stemcell-automation 51 go run github.com/onsi/ginkgo/ginkgo -r -v -randomizeAllSpecs -untilItFails integration 52 53 generate-fake-stemcell-automation: $(GOSRC) $(FAKE_STEMCELL_AUTOMATION_PATH) 54 go run github.com/go-bindata/go-bindata/go-bindata -o assets/stemcell_automation.go -pkg assets -prefix $(FAKE_STEMCELL_AUTOMATION_PREFIX) $(FAKE_STEMCELL_AUTOMATION_PATH) 55 56 generate: assets/StemcellAutomation.zip 57 go run github.com/go-bindata/go-bindata/go-bindata -o assets/stemcell_automation.go -pkg assets -prefix assets assets/StemcellAutomation.zip 58 59 out/stembuild : generate $(GOSRC) 60 go build -o $(COMMAND) -ldflags $(LD_FLAGS) . 61 62 out/stembuild.exe : generate $(GOSRC) 63 GOOS=windows go build -o out/stembuild.exe -ldflags $(LD_FLAGS) . 64 65 test : units 66 67 units : format generate-fake-stemcell-automation 68 @go run github.com/onsi/ginkgo/ginkgo version 69 go run github.com/onsi/ginkgo/ginkgo -r -randomizeAllSpecs -randomizeSuites -skipPackage integration,iaas_cli 70 @echo "\nSWEET SUITE SUCCESS" 71 72 contract : 73 go run github.com/onsi/ginkgo/ginkgo -r -randomizeAllSpecs -randomizeSuites -flakeAttempts 2 iaas_cli 74 75 .PHONY : all build build-integration clean format generate generate-fake-stemcell-automation 76 .PHONY : test units units-full integration integration-tests-full 77 78 # =============================================================================== 79 # The following to create the StemcellAutomation.zip that's packaged in stembuild 80 # =============================================================================== 81 82 assets/local/bosh-agent.exe: $(BOSH_AGENT_SOURCES) 83 cd $(BOSH_AGENT_REPO) && \ 84 GOOS=windows GOARCH=amd64 bin/build && \ 85 cd - 86 mv $(BOSH_AGENT_REPO)/out/bosh-agent assets/local/bosh-agent.exe 87 88 assets/local/bosh-blobstore-dav.exe: $(BOSH_AGENT_REPO)/integration/windows/fixtures/bosh-blobstore-dav.exe 89 @echo "### Creating/Updating assets/local/bosh-blobstore-dav.exe" 90 $(CP) $(BOSH_AGENT_REPO)/integration/windows/fixtures/bosh-blobstore-dav.exe assets/local 91 92 assets/local/bosh-blobstore-gcs.exe: 93 @echo "### Creating assets/local/bosh-blobstore-gcs.exe" 94 curl -o assets/local/bosh-blobstore-gcs.exe -L $(BOSH_GCS_URL) 95 96 assets/local/bosh-blobstore-s3.exe: $(BOSH_AGENT_REPO)/integration/windows/fixtures/bosh-blobstore-s3.exe 97 @echo "### Creating/Updating assets/local/bosh-blobstore-s3.exe" 98 $(CP) $(BOSH_AGENT_REPO)/integration/windows/fixtures/bosh-blobstore-s3.exe assets/local 99 100 assets/local/bosh-psmodules.zip: $(PSMODULES_SOURCES) 101 @echo "### Creating/Updating assets/local/bosh-psmodules.zip" 102 cd modules && zip -r ../bosh-psmodules.zip . && cd .. 103 mv bosh-psmodules.zip assets/local/bosh-psmodules.zip 104 105 assets/local/job-service-wrapper.exe: $(BOSH_AGENT_REPO)/integration/windows/fixtures/job-service-wrapper.exe 106 @echo "### Creating/Updating assets/local/job-service-wrapper.exe" 107 $(CP) $(BOSH_AGENT_REPO)/integration/windows/fixtures/job-service-wrapper.exe assets/local 108 109 assets/local/pipe.exe: $(BOSH_AGENT_SOURCES) 110 cd $(BOSH_AGENT_REPO) && \ 111 GOOS=windows GOARCH=amd64 bin/build && \ 112 cd - 113 mv $(BOSH_AGENT_REPO)/out/bosh-agent-pipe assets/local/pipe.exe 114 115 assets/local/service_wrapper.exe: $(BOSH_AGENT_REPO)/integration/windows/fixtures/service_wrapper.exe 116 @echo "### Creating/Updating assets/local/service_wrapper.exe" 117 $(CP) $(BOSH_AGENT_REPO)/integration/windows/fixtures/service_wrapper.exe assets/local 118 119 assets/local/service_wrapper.xml: $(BOSH_AGENT_REPO)/integration/windows/fixtures/service_wrapper.xml 120 @echo "### Creating/Updating assets/local/service_wrapper.xml" 121 $(CP) $(BOSH_AGENT_REPO)/integration/windows/fixtures/service_wrapper.xml assets/local 122 123 assets/local/tar.exe: $(BOSH_AGENT_REPO)/integration/windows/fixtures/tar.exe 124 @echo "### Creating/Updating assets/local/tar.exe" 125 $(CP) $(BOSH_AGENT_REPO)/integration/windows/fixtures/tar.exe assets/local 126 127 assets/local/agent.zip: assets/local/bosh-agent.exe assets/local/pipe.exe assets/local/service_wrapper.xml assets/local/service_wrapper.exe assets/local/bosh-blobstore-dav.exe assets/local/bosh-blobstore-gcs.exe assets/local/bosh-blobstore-s3.exe assets/local/job-service-wrapper.exe assets/local/tar.exe 128 @echo "### Creating/Updating assets/local/agent.zip" 129 mkdir -p assets/temp/deps 130 $(CP) assets/local/service_wrapper.exe \ 131 assets/local/service_wrapper.xml \ 132 assets/local/bosh-agent.exe \ 133 assets/temp 134 $(CP) assets/local/bosh-blobstore-dav.exe \ 135 assets/local/bosh-blobstore-gcs.exe \ 136 assets/local/bosh-blobstore-s3.exe \ 137 assets/local/job-service-wrapper.exe \ 138 assets/local/pipe.exe \ 139 assets/local/tar.exe \ 140 assets/temp/deps 141 cd assets/temp && zip -r ../local/agent.zip * && cd - 142 rm -rf assets/temp 143 144 assets/local/LGPO.zip: 145 @echo "### Creating assets/local/LGPO.zip" 146 curl -o assets/local/LGPO.zip -L $(LGPO_URL) 147 148 assets/local/OpenSSH-Win64.zip: $(BOSH_AGENT_REPO)/integration/windows/fixtures/OpenSSH-Win64.zip 149 @echo "### Creating/Updating assets/local/OpenSSH-Win64.zip" 150 $(CP) $(BOSH_AGENT_REPO)/integration/windows/fixtures/OpenSSH-Win64.zip assets/local 151 152 assets/local/deps.json: assets/local/agent.zip assets/local/bosh-psmodules.zip assets/local/LGPO.zip assets/local/OpenSSH-Win64.zip 153 @echo "### Creating/Updating assets/local/deps.json" 154 @#Note: The order of the following matters, change the script before changing these 155 stemcell-automation/generate-dep-json.bash \ 156 assets/local/OpenSSH-Win64.zip \ 157 assets/local/bosh-psmodules.zip \ 158 assets/local/agent.zip \ 159 assets/local/LGPO.zip \ 160 > assets/local/deps.json 161 162 assets/StemcellAutomation.zip: $(STEMCELL_AUTOMATION_PS1) assets/local/OpenSSH-Win64.zip assets/local/bosh-psmodules.zip assets/local/deps.json assets/local/agent.zip 163 @echo "### Creating/Updating assets/StemcellAutomation.zip" 164 mkdir -p assets/temp 165 cp -a $(STEMCELL_AUTOMATION_PS1) \ 166 assets/local/OpenSSH-Win64.zip \ 167 assets/local/bosh-psmodules.zip \ 168 assets/local/deps.json \ 169 assets/local/agent.zip \ 170 assets/temp 171 cd assets/temp && zip ../StemcellAutomation.zip * && cd - 172 rm -rf assets/temp