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