storj/Earthfile
Márton Elek 291b541960 earthfile: remove storage folder
Content of storage folder is moved to the storagenode with c1f1aacff (as it's used only from there).
We don't need to include it manually for storagenode builds.

This Earthfile is used for nightly deployment.

Change-Id: I2d255804ce5d87ab5a9b713c2d5ae0f3b3ccc9ca
2023-05-09 09:46:43 +00:00

156 lines
5.2 KiB
Plaintext

VERSION 0.6
FROM golang:1.18
WORKDIR /go/storj
multinode-web:
FROM node:18
WORKDIR /build
COPY web/multinode .
RUN ./build.sh
SAVE ARTIFACT dist AS LOCAL web/storagenode/dist
wasm:
FROM storjlabs/ci
ENV TAG=earthly
COPY go.mod .
COPY go.sum .
COPY satellite/console/wasm satellite/console/wasm
COPY satellite/console/consolewasm satellite/console/consolewasm
COPY scripts scripts
RUN scripts/build-wasm.sh
SAVE ARTIFACT release/earthly/wasm wasm AS LOCAL web/satellite/static/wasm
storagenode-web:
FROM node:18
WORKDIR /build
COPY web/storagenode .
RUN ./build.sh
SAVE ARTIFACT dist AS LOCAL web/storagenode/dist
SAVE ARTIFACT static AS LOCAL web/storagenode/static
satellite-web:
FROM node:18
WORKDIR /build
COPY web/satellite .
RUN ./build.sh
COPY +wasm/wasm static/wasm
SAVE ARTIFACT dist AS LOCAL web/satellite/dist
SAVE ARTIFACT static AS LOCAL web/satellite/static
storagenode-bin:
COPY go.mod go.mod
COPY go.sum go.sum
COPY private private
COPY cmd/storagenode cmd/storagenode
COPY storagenode storagenode
COPY multinode multinode
COPY web/storagenode web/storagenode
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg/mod \
go build -o release/earthly/storagenode storj.io/storj/cmd/storagenode
SAVE ARTIFACT release/earthly binaries AS LOCAL release/earthly
build-binaries:
COPY . .
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg/mod \
go build -o release/earthly/satellite storj.io/storj/cmd/satellite
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg/mod \
go build -o release/earthly/uplink storj.io/storj/cmd/uplink
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg/mod \
go build -o release/earthly/identity storj.io/storj/cmd/identity
SAVE ARTIFACT release/earthly binaries AS LOCAL release/earthly
build-storjup:
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg/mod \
CGO_ENABLED=0 go install storj.io/storj-up@main
SAVE ARTIFACT /go/bin binaries AS LOCAL dist/up
deploy-remote:
FROM ubuntu
RUN apt-get update && apt-get install -y git wget unzip
RUN cd /tmp && wget https://releases.hashicorp.com/nomad/1.3.5/nomad_1.3.5_linux_amd64.zip -O nomad.zip && unzip nomad.zip && mv nomad /usr/local/bin && rm nomad.zip
COPY +build-storjup/binaries /usr/local/bin
COPY .git .git
ARG TAG=$(git rev-parse --short HEAD)
ARG IMAGE=img.dev.storj.io/dev/storj
BUILD +build-tagged-image --TAG=$TAG --IMAGE=$IMAGE
ARG --required nomad
ARG --required ip
COPY scripts/deploy/deploy-nightly.sh .
ENV NOMAD_ADDR=$nomad
ENV IP=$ip
ENV IMAGE=$IMAGE
ENV TAG=$TAG
RUN --push ./deploy-nightly.sh
deploy-local:
COPY +build-storjup/binaries /usr/local/bin
COPY .git .git
ARG TAG=$(git rev-parse --short HEAD)
ARG IMAGE=img.dev.storj.io/dev/storj
BUILD +build-tagged-image --TAG=$TAG --IMAGE=$IMAGE
WORKDIR /opt/storj-up
RUN storj-up init db,minimal,edge
RUN storj-up image satellite-api,storagenode $IMAGE:$TAG
SAVE ARTIFACT /opt/storj-up/docker-compose.yaml compose AS LOCAL docker-compose.yaml
build-image:
FROM storjlabs/ci
COPY .git .git
ARG IMAGE=img.dev.storj.io/dev/storj
ARG TAG=$(git rev-parse --short HEAD)
BUILD +build-tagged-image --TAG=$TAG --IMAGE=$IMAGE
build-tagged-image:
ARG --required TAG
ARG --required IMAGE
FROM img.dev.storj.io/storjup/base:20230208-1
COPY +multinode-web/dist /var/lib/storj/storj/web/multinode/dist
COPY +satellite-web/dist /var/lib/storj/storj/web/satellite/dist
COPY +satellite-web/static /var/lib/storj/storj/web/satellite/static
COPY +storagenode-web/dist /var/lib/storj/storj/web/storagenode/dist
COPY +storagenode-web/static /var/lib/storj/storj/web/storagenode/static
COPY +build-binaries/binaries /var/lib/storj/go/bin/
COPY +storagenode-bin/binaries /var/lib/storj/go/bin/
COPY +build-storjup/binaries /var/lib/storj/go/bin/
SAVE IMAGE --push $IMAGE:$TAG
run:
LOCALLY
RUN docker-compose up
test:
COPY . .
RUN go install github.com/mfridman/tparse@36f80740879e24ba6695649290a240c5908ffcbb
RUN mkdir build
RUN --mount=type=cache,target=/root/.cache/go-build \
--mount=type=cache,target=/go/pkg/mod \
go test -json ./... | tee build/tests.json
SAVE ARTIFACT build/tests.json AS LOCAL build/tests.json
integration:
COPY +build/storj-up /usr/local/bin/storj-up
COPY test/test.sh .
WITH DOCKER
RUN ./test.sh
END
check-format:
COPY . .
RUN mkdir build
RUN bash -c '[[ $(git status --short) == "" ]] || (echo "Before formatting, please commit all your work!!! (Formatter will format only last commit)" && exit -1)'
RUN git show --name-only --pretty=format: | grep ".go" | xargs --no-run-if-empty -n1 gofmt -s -w
RUN git diff > build/format.patch
SAVE ARTIFACT build/format.patch
format:
LOCALLY
COPY +check-format/format.patch build/format.patch
RUN git apply --allow-empty build/format.patch
RUN git status