build: make ci 2-3x faster (#859)

* Create scratch.Dockerfile

* "best practices"

* even faster?

* too fast. change outdir

* flip to 1.20.3 + v4 + setup go on docker

* download deps

* debug

* Update ci.Dockerfile

* Update goreleaser.Dockerfile

* enable web caching

* Update release.yml

* Update ci.Dockerfile

* revert goreleaser

* cleanup

* set GOCACHE

* Update ci.Dockerfile

* Delete scratch.Dockerfile
This commit is contained in:
Kyle Sanderson 2023-04-22 16:48:25 -07:00 committed by GitHub
parent 7f05dd1efd
commit d546288c2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 28 deletions

View file

@ -1,26 +1,25 @@
# build app
FROM golang:1.20-alpine3.16 AS app-builder
FROM --platform=$BUILDPLATFORM golang:1.20-alpine3.16 AS app-builder
ARG VERSION=dev
ARG REVISION=dev
ARG BUILDTIME
RUN apk add --no-cache git make build-base tzdata
RUN apk add --no-cache git tzdata
ENV SERVICE=autobrr
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . ./
#ENV GOOS=linux
#ENV CGO_ENABLED=0
RUN --mount=target=. \
go mod download
RUN go build -ldflags "-s -w -X main.version=${VERSION} -X main.commit=${REVISION} -X main.date=${BUILDTIME}" -o bin/autobrr cmd/autobrr/main.go
RUN go build -ldflags "-s -w -X main.version=${VERSION} -X main.commit=${REVISION} -X main.date=${BUILDTIME}" -o bin/autobrrctl cmd/autobrrctl/main.go
ARG VERSION=dev
ARG REVISION=dev
ARG BUILDTIME
ARG TARGETOS TARGETARCH
RUN --mount=target=. \
GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags "-s -w -X main.version=${VERSION} -X main.commit=${REVISION} -X main.date=${BUILDTIME}" -o /out/bin/autobrr cmd/autobrr/main.go
RUN --mount=target=. \
GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags "-s -w -X main.version=${VERSION} -X main.commit=${REVISION} -X main.date=${BUILDTIME}" -o /out/bin/autobrrctl cmd/autobrrctl/main.go
# build runner
FROM alpine:latest
@ -34,13 +33,9 @@ XDG_DATA_HOME="/config"
RUN apk --no-cache add ca-certificates curl tzdata jq
WORKDIR /app
VOLUME /config
COPY --from=app-builder /src/bin/autobrr /usr/local/bin/
COPY --from=app-builder /src/bin/autobrrctl /usr/local/bin/
EXPOSE 7474
ENTRYPOINT ["/usr/local/bin/autobrr", "--config", "/config"]
#CMD ["--config", "/config"]
COPY --from=app-builder /out/bin/autobrr /usr/local/bin/
COPY --from=app-builder /out/bin/autobrrctl /usr/local/bin/