@@ -22,10 +22,15 @@ VERSION ?= v$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD)
22
22
GOOS ?= $(shell go env GOOS)
23
23
GOARCH = amd64
24
24
BUILD_DIR ?= ./out
25
+ DOCS_DIR ?= ./docs/generated
25
26
ORG := github.com/GoogleContainerTools
26
27
PROJECT := skaffold
27
28
REPOPATH ?= $(ORG ) /$(PROJECT )
28
29
RELEASE_BUCKET ?= $(PROJECT )
30
+ GSC_BUILD_PATH ?= gs://$(RELEASE_BUCKET ) /builds/$(COMMIT )
31
+ GSC_BUILD_LATEST ?= gs://$(RELEASE_BUCKET ) /builds/latest
32
+ GSC_RELEASE_PATH ?= gs://$(RELEASE_BUCKET ) /releases/$(VERSION )
33
+ GSC_RELEASE_LATEST ?= gs://$(RELEASE_BUCKET ) /releases/latest
29
34
30
35
REMOTE_INTEGRATION ?= false
31
36
GCP_PROJECT ?= k8s-skaffold
@@ -81,23 +86,62 @@ integration: install $(BUILD_DIR)/$(PROJECT)
81
86
go test -v -tags integration $(REPOPATH ) /integration -timeout 10m --remote=$(REMOTE_INTEGRATION )
82
87
83
88
.PHONY : release
84
- release : cross
85
- gsutil cp $(BUILD_DIR ) /$(PROJECT ) -* gs://$(RELEASE_BUCKET ) /releases/$(VERSION ) /
86
- gsutil cp $(BUILD_DIR ) /$(PROJECT ) -* gs://$(RELEASE_BUCKET ) /latest/
89
+ release : cross docs
90
+ docker build \
91
+ -f deploy/skaffold/Dockerfile \
92
+ --cache-from gcr.io/$(GCP_PROJECT)/skaffold-builder \
93
+ -t gcr.io/$(GCP_PROJECT ) /skaffold :$(VERSION ) .
94
+ gsutil -m cp $(BUILD_DIR ) /$(PROJECT ) -* $(GSC_RELEASE_PATH ) /
95
+ gsutil -m cp -r $(DOCS_DIR ) /* $(GSC_RELEASE_PATH ) /docs/
96
+ gsutil -m cp -r $(GSC_RELEASE_PATH ) /* $(GSC_RELEASE_LATEST )
97
+
98
+ .PHONY : release-in-docker
99
+ release-in-docker :
100
+ docker build \
101
+ -f deploy/skaffold/Dockerfile \
102
+ -t gcr.io/$(GCP_PROJECT)/skaffold-builder \
103
+ --target builder \
104
+ .
105
+ docker run \
106
+ -v /var/run/docker.sock:/var/run/docker.sock \
107
+ -v $(HOME)/.config/gcloud:/root/.config/gcloud \
108
+ gcr.io/$(GCP_PROJECT)/skaffold-builder make -j release RELEASE_BUCKET=$(RELEASE_BUCKET) GCP_PROJECT=$(GCP_PROJECT)
109
+
110
+ .PHONY : release-build
111
+ release-build : cross docs
112
+ docker build \
113
+ -f deploy/skaffold/Dockerfile \
114
+ --cache-from gcr.io/$(GCP_PROJECT)/skaffold-builder \
115
+ -t gcr.io/$(GCP_PROJECT ) /skaffold :$(COMMIT ) .
116
+ gsutil -m cp $(BUILD_DIR ) /$(PROJECT ) -* $(GSC_BUILD_PATH ) /
117
+ gsutil -m cp -r $(DOCS_DIR ) /* $(GSC_BUILD_PATH ) /docs/
118
+ gsutil -m cp -r $(GSC_BUILD_PATH ) /* $(GSC_BUILD_LATEST )
119
+
120
+ .PHONY : release-build-in-docker
121
+ release-build-in-docker :
122
+ docker build \
123
+ -f deploy/skaffold/Dockerfile \
124
+ -t gcr.io/$(GCP_PROJECT)/skaffold-builder \
125
+ --target builder \
126
+ .
127
+ docker run \
128
+ -v /var/run/docker.sock:/var/run/docker.sock \
129
+ -v $(HOME)/.config/gcloud:/root/.config/gcloud \
130
+ gcr.io/$(GCP_PROJECT)/skaffold-builder make -j release-build RELEASE_BUCKET=$(RELEASE_BUCKET) GCP_PROJECT=$(GCP_PROJECT)
87
131
88
132
.PHONY : clean
89
133
clean :
90
- rm -rf $(BUILD_DIR )
134
+ rm -rf $(BUILD_DIR ) $( DOCS_DIR )
91
135
92
136
.PHONY : integration-in-docker
93
137
integration-in-docker :
94
138
docker build \
95
139
-f deploy/skaffold/Dockerfile \
140
+ --target integration \
96
141
-t gcr.io/$(GCP_PROJECT ) /skaffold-integration .
97
142
docker run \
98
143
-v /var/run/docker.sock:/var/run/docker.sock \
99
144
-v $(HOME ) /.config/gcloud:/root/.config/gcloud \
100
- -v $(PWD ) :/go/src/$(REPOPATH ) \
101
145
-v $(GOOGLE_APPLICATION_CREDENTIALS ) :$(GOOGLE_APPLICATION_CREDENTIALS ) \
102
146
-e REMOTE_INTEGRATION=true \
103
147
-e DOCKER_CONFIG=/root/.docker \
@@ -106,23 +150,28 @@ integration-in-docker:
106
150
107
151
.PHONY : docs
108
152
docs :
109
- rm -rf docs/generated
110
- mkdir -p docs/generated
111
- cp -R docs/css docs/generated/
112
- docker run -v $(PWD ) :/documents/ asciidoctor/docker-asciidoctor \
113
- asciidoctor \
114
- -a version=" $( VERSION) " \
115
- -a commit=" $( COMMIT) " \
116
- -a data-uri \
117
- -d book \
118
- -D docs/generated/ \
119
- docs/index.adoc
120
- docker run -v $(PWD ) :/documents/ asciidoctor/docker-asciidoctor \
121
- asciidoctor-pdf \
122
- -a version=" $( VERSION) " \
123
- -a commit=" $( COMMIT) " \
124
- -a allow-uri-read \
125
- -d book \
126
- -a pdf \
127
- -D docs/generated/ \
128
- docs/index.adoc
153
+ hack/build_docs.sh $(VERSION ) $(COMMIT )
154
+
155
+ .PHONY : docs-in-docker
156
+ docs-in-docker :
157
+ docker build \
158
+ -f deploy/skaffold/Dockerfile \
159
+ -t skaffold-builder \
160
+ --target builder \
161
+ .
162
+ docker run \
163
+ -v $(PWD ) :/go/src/$(REPOPATH ) \
164
+ skaffold-builder make docs
165
+
166
+ .PHONY : submit-build-trigger
167
+ submit-build-trigger :
168
+ gcloud container builds submit . \
169
+ --config=deploy/cloudbuild.yaml \
170
+ --substitutions=" _RELEASE_BUCKET=$( RELEASE_BUCKET) ,COMMIT_SHA=$( COMMIT) "
171
+
172
+ .PHONY : submit-release-trigger
173
+ submit-release-trigger :
174
+ gcloud container builds submit . \
175
+ --config=deploy/cloudbuild-release.yaml \
176
+ --substitutions=" _RELEASE_BUCKET=$( RELEASE_BUCKET) ,TAG_NAME=$( VERSION) "
177
+
0 commit comments