mirror of
https://github.com/openfaas/faas.git
synced 2025-06-21 12:16:30 +00:00
Convert Gateway to Github Actions
Signed-off-by: Alistair Hey <alistair@heyal.co.uk>
This commit is contained in:
@ -1,50 +1,55 @@
|
||||
FROM teamserverless/license-check:0.3.6 as license-check
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} teamserverless/license-check:0.3.6 as license-check
|
||||
|
||||
FROM golang:1.13 as build
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.13 as build
|
||||
|
||||
ENV GO111MODULE=off
|
||||
ENV CGO_ENABLED=0
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
ARG BUILDPLATFORM
|
||||
ARG TARGETOS
|
||||
ARG TARGETARCH
|
||||
|
||||
ARG GIT_COMMIT_SHA
|
||||
ARG GIT_COMMIT_MESSAGE
|
||||
ARG VERSION='dev'
|
||||
ARG ARCH="x86_64"
|
||||
ARG GOOS=linux
|
||||
ARG GOARM
|
||||
|
||||
COPY --from=license-check /license-check /usr/bin/
|
||||
|
||||
WORKDIR /go/src/github.com/openfaas/faas/gateway
|
||||
|
||||
COPY vendor vendor
|
||||
COPY gateway/vendor vendor
|
||||
|
||||
COPY handlers handlers
|
||||
COPY metrics metrics
|
||||
COPY requests requests
|
||||
COPY tests tests
|
||||
COPY gateway/handlers handlers
|
||||
COPY gateway/metrics metrics
|
||||
COPY gateway/requests requests
|
||||
COPY gateway/tests tests
|
||||
|
||||
COPY gateway/types types
|
||||
COPY gateway/queue queue
|
||||
COPY gateway/plugin plugin
|
||||
COPY gateway/version version
|
||||
COPY gateway/scaling scaling
|
||||
COPY gateway/pkg pkg
|
||||
COPY gateway/main.go .
|
||||
COPY .git .
|
||||
RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Authors" "OpenFaaS Author(s)"
|
||||
|
||||
COPY types types
|
||||
COPY queue queue
|
||||
COPY plugin plugin
|
||||
COPY version version
|
||||
COPY scaling scaling
|
||||
COPY pkg pkg
|
||||
COPY main.go .
|
||||
|
||||
# Run a gofmt and exclude all vendored code.
|
||||
RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Authors" "OpenFaaS Author(s)" \
|
||||
&& test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \
|
||||
&& CGO_ENABLED=${CGO_ENABLED} go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover \
|
||||
&& GOARM=${GOARM} CGO_ENABLED=${CGO_ENABLED} GOOS=linux go build --ldflags "-s -w \
|
||||
-X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA}\
|
||||
-X \"github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE}\"\
|
||||
-X \"github.com/openfaas/faas/gateway/version.Version=${VERSION}\" \
|
||||
-X github.com/openfaas/faas/gateway/types.Arch=${ARCH}"\
|
||||
RUN test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))"
|
||||
RUN CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover
|
||||
RUN GIT_COMMIT_MESSAGE=$(git log -1 --pretty=%B 2>&1 | head -n 1) \
|
||||
GIT_COMMIT_SHA=$(git rev-list -1 HEAD) \
|
||||
VERSION=$(git describe --all --exact-match `git rev-parse HEAD` | grep tags | sed 's/tags\///' || echo dev) \
|
||||
CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build --ldflags "-s -w \
|
||||
-X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA} \
|
||||
-X github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE} \
|
||||
-X github.com/openfaas/faas/gateway/version.Version=${VERSION} \
|
||||
-X github.com/openfaas/faas/gateway/types.Arch=${TARGETARCH}" \
|
||||
-a -installsuffix cgo -o gateway .
|
||||
|
||||
FROM alpine:3.11
|
||||
|
||||
ARG ARCH="x86_64"
|
||||
FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.12 as ship
|
||||
|
||||
LABEL org.label-schema.license="MIT" \
|
||||
org.label-schema.vcs-url="https://github.com/openfaas/faas" \
|
||||
@ -65,8 +70,8 @@ ENV http_proxy ""
|
||||
ENV https_proxy ""
|
||||
|
||||
COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway .
|
||||
COPY assets assets
|
||||
RUN sed -ie s/x86_64/${ARCH}/g assets/script/funcstore.js && \
|
||||
COPY gateway/assets assets
|
||||
RUN sed -ie s/x86_64/${GOARCH}/g assets/script/funcstore.js && \
|
||||
rm assets/script/funcstore.jse
|
||||
|
||||
RUN chown -R app:app ./
|
||||
|
@ -1,71 +0,0 @@
|
||||
FROM teamserverless/license-check:0.3.6 as license-check
|
||||
|
||||
FROM golang:1.13 as build
|
||||
|
||||
ENV GO111MODULE=off
|
||||
ENV CGO_ENABLED=0
|
||||
|
||||
ARG GIT_COMMIT_SHA
|
||||
ARG GIT_COMMIT_MESSAGE
|
||||
ARG VERSION='dev'
|
||||
|
||||
COPY --from=license-check /license-check /usr/bin/
|
||||
|
||||
WORKDIR /go/src/github.com/openfaas/faas/gateway
|
||||
|
||||
COPY vendor vendor
|
||||
|
||||
COPY handlers handlers
|
||||
COPY metrics metrics
|
||||
COPY requests requests
|
||||
COPY tests tests
|
||||
|
||||
COPY types types
|
||||
COPY queue queue
|
||||
COPY plugin plugin
|
||||
COPY version version
|
||||
COPY scaling scaling
|
||||
COPY pkg pkg
|
||||
COPY main.go .
|
||||
|
||||
# Run a gofmt and exclude all vendored code.
|
||||
RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Project" "OpenFaaS Authors" "OpenFaaS Author(s)" \
|
||||
&& test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \
|
||||
&& go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover \
|
||||
&& CGO_ENABLED=0 GOOS=linux go build --ldflags "-s -w \
|
||||
-X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA}\
|
||||
-X \"github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE}\"\
|
||||
-X github.com/openfaas/faas/gateway/version.Version=${VERSION}" \
|
||||
-a -installsuffix cgo -o gateway .
|
||||
|
||||
FROM alpine:3.11
|
||||
|
||||
LABEL org.label-schema.license="MIT" \
|
||||
org.label-schema.vcs-url="https://github.com/openfaas/faas" \
|
||||
org.label-schema.vcs-type="Git" \
|
||||
org.label-schema.name="openfaas/faas" \
|
||||
org.label-schema.vendor="openfaas" \
|
||||
org.label-schema.docker.schema-version="1.0"
|
||||
|
||||
RUN addgroup -S app \
|
||||
&& adduser -S -g app app \
|
||||
&& apk add --no-cache ca-certificates
|
||||
|
||||
WORKDIR /home/app
|
||||
|
||||
EXPOSE 8080
|
||||
EXPOSE 8082
|
||||
ENV http_proxy ""
|
||||
ENV https_proxy ""
|
||||
|
||||
|
||||
COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway .
|
||||
COPY assets assets
|
||||
|
||||
RUN chown -R app:app ./
|
||||
|
||||
USER app
|
||||
|
||||
RUN sed -ie s/x86_64/arm64/g /home/app/assets/script/funcstore.js
|
||||
|
||||
CMD ["./gateway"]
|
@ -1,68 +0,0 @@
|
||||
FROM teamserverless/license-check:0.3.6 as license-check
|
||||
|
||||
FROM golang:1.13 as build
|
||||
|
||||
ENV GO111MODULE=off
|
||||
ENV CGO_ENABLED=0
|
||||
|
||||
ARG GIT_COMMIT_SHA
|
||||
ARG GIT_COMMIT_MESSAGE
|
||||
ARG VERSION='dev'
|
||||
|
||||
COPY --from=license-check /license-check /usr/bin/
|
||||
|
||||
WORKDIR /go/src/github.com/openfaas/faas/gateway
|
||||
|
||||
COPY vendor vendor
|
||||
|
||||
COPY handlers handlers
|
||||
COPY metrics metrics
|
||||
COPY requests requests
|
||||
COPY tests tests
|
||||
|
||||
COPY types types
|
||||
COPY queue queue
|
||||
COPY plugin plugin
|
||||
COPY version version
|
||||
COPY scaling scaling
|
||||
COPY pkg pkg
|
||||
COPY main.go .
|
||||
|
||||
# Run a gofmt and exclude all vendored code.
|
||||
RUN license-check -path ./ --verbose=false "Alex Ellis" "OpenFaaS Project" "OpenFaaS Authors" "OpenFaaS Author(s)" \
|
||||
&& test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" \
|
||||
&& go test $(go list ./... | grep -v integration | grep -v /vendor/ | grep -v /template/) -cover \
|
||||
&& GOARM=7 CGO_ENABLED=0 GOOS=linux go build --ldflags "-s -w \
|
||||
-X github.com/openfaas/faas/gateway/version.GitCommitSHA=${GIT_COMMIT_SHA}\
|
||||
-X \"github.com/openfaas/faas/gateway/version.GitCommitMessage=${GIT_COMMIT_MESSAGE}\"\
|
||||
-X github.com/openfaas/faas/gateway/version.Version=${VERSION}" \
|
||||
-a -installsuffix cgo -o gateway .
|
||||
|
||||
FROM alpine:3.11
|
||||
|
||||
LABEL org.label-schema.license="MIT" \
|
||||
org.label-schema.vcs-url="https://github.com/openfaas/faas" \
|
||||
org.label-schema.vcs-type="Git" \
|
||||
org.label-schema.name="openfaas/faas" \
|
||||
org.label-schema.vendor="openfaas" \
|
||||
org.label-schema.docker.schema-version="1.0"
|
||||
|
||||
RUN addgroup -S app \
|
||||
&& adduser -S -g app app \
|
||||
&& apk add --no-cache ca-certificates
|
||||
|
||||
WORKDIR /home/app
|
||||
|
||||
EXPOSE 8080
|
||||
EXPOSE 8082
|
||||
ENV http_proxy ""
|
||||
ENV https_proxy ""
|
||||
|
||||
COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway .
|
||||
|
||||
COPY assets assets
|
||||
RUN sed -ie s/x86_64/armhf/g /home/app/assets/script/funcstore.js
|
||||
RUN chown -R app:app ./
|
||||
USER app
|
||||
|
||||
CMD ["./gateway"]
|
@ -1,50 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
export dockerfile="Dockerfile"
|
||||
export arch=$(uname -m)
|
||||
|
||||
export eTAG="latest-dev"
|
||||
export GOARM=""
|
||||
|
||||
if [ "$arch" = "armv7l" ] ; then
|
||||
dockerfile="Dockerfile"
|
||||
eTAG="latest-armhf-dev"
|
||||
arch="armhf"
|
||||
GOARM="7"
|
||||
elif [ "$arch" = "aarch64" ] ; then
|
||||
arch="arm64"
|
||||
dockerfile="Dockerfile"
|
||||
eTAG="latest-arm64-dev"
|
||||
fi
|
||||
|
||||
# $arch has been mutated by this point, so check for the updated values
|
||||
echo "$1"
|
||||
if [ "$1" ] ; then
|
||||
eTAG=$1
|
||||
if [ "$arch" = "armhf" ] ; then
|
||||
eTAG="$1-armhf"
|
||||
elif [ "$arch" = "arm64" ] ; then
|
||||
eTAG="$1-arm64"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$2" ] ; then
|
||||
NS=$2
|
||||
else
|
||||
NS=openfaas
|
||||
fi
|
||||
|
||||
|
||||
echo "Building $NS/gateway:$eTAG with $dockerfile for $arch"
|
||||
|
||||
GIT_COMMIT_MESSAGE=$(git log -1 --pretty=%B 2>&1 | head -n 1)
|
||||
GIT_COMMIT_SHA=$(git rev-list -1 HEAD)
|
||||
VERSION=$(git describe --all --exact-match `git rev-parse HEAD` | grep tags | sed 's/tags\///' || echo dev)
|
||||
|
||||
docker build --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy \
|
||||
--build-arg GIT_COMMIT_MESSAGE="${GIT_COMMIT_MESSAGE}" --build-arg GIT_COMMIT_SHA="${GIT_COMMIT_SHA}" \
|
||||
--build-arg VERSION="${VERSION:-dev}" \
|
||||
--build-arg GOARM="${GOARM}" \
|
||||
--build-arg ARCH="${arch}" \
|
||||
-t $NS/gateway:$eTAG . -f $dockerfile
|
Reference in New Issue
Block a user