From 845a3145cd8af2c377fb5f178caeea45f5d5b520 Mon Sep 17 00:00:00 2001 From: harry Date: Wed, 20 Jan 2016 16:30:29 +0800 Subject: [PATCH] Add a fake git server image for e2e test --- test/images/fakegitserver/Dockerfile | 18 ++++++++++++++ test/images/fakegitserver/Makefile | 18 ++++++++++++++ test/images/fakegitserver/gitserver.go | 34 ++++++++++++++++++++++++++ test/images/fakegitserver/prepare.sh | 26 ++++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 test/images/fakegitserver/Dockerfile create mode 100644 test/images/fakegitserver/Makefile create mode 100644 test/images/fakegitserver/gitserver.go create mode 100755 test/images/fakegitserver/prepare.sh diff --git a/test/images/fakegitserver/Dockerfile b/test/images/fakegitserver/Dockerfile new file mode 100644 index 0000000000..da8d0ffefa --- /dev/null +++ b/test/images/fakegitserver/Dockerfile @@ -0,0 +1,18 @@ +# Copyright 2016 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM scratch +ADD GITHASH.txt / +ADD gitserver / +ENTRYPOINT ["/gitserver"] diff --git a/test/images/fakegitserver/Makefile b/test/images/fakegitserver/Makefile new file mode 100644 index 0000000000..c89287a8e2 --- /dev/null +++ b/test/images/fakegitserver/Makefile @@ -0,0 +1,18 @@ +.PHONY: all image push clean + +TAG = 0.1 +PREFIX = gcr.io/google_containers +IMAGE = fakegitserver +ARCH = amd64 + +image: + ./prepare.sh $(ARCH) + docker build -t $(PREFIX)/$(IMAGE):$(TAG) . + +push: image + gcloud docker push $(PREFIX)/$(IMAGE):$(TAG) + +all: push + +clean: + rm -f gitserver GITHASH.txt diff --git a/test/images/fakegitserver/gitserver.go b/test/images/fakegitserver/gitserver.go new file mode 100644 index 0000000000..b10ff1ecfe --- /dev/null +++ b/test/images/fakegitserver/gitserver.go @@ -0,0 +1,34 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "io" + "net/http" +) + +func hello(w http.ResponseWriter, r *http.Request) { + io.WriteString(w, "I am a fake git server") + +} + +// When doing `git clone localhost:8000`, you will clone an empty git repo named "8000" on local. +// You can also use `git clone localhost:8000 my-repo-name` to rename that repo. +func main() { + http.HandleFunc("/", hello) + http.ListenAndServe(":8000", nil) +} diff --git a/test/images/fakegitserver/prepare.sh b/test/images/fakegitserver/prepare.sh new file mode 100755 index 0000000000..326a63078d --- /dev/null +++ b/test/images/fakegitserver/prepare.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Copyright 2016 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e +set -x + +ARCH=$1 + +# Build the binary. +CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -a -installsuffix cgo -ldflags '-w' ./gitserver.go + +# Write down the current commit hash. +echo $(git rev-parse HEAD) >> GITHASH.txt