diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml index c9595d6b0..187fb8a80 100644 --- a/.github/workflows/docker-build-push.yml +++ b/.github/workflows/docker-build-push.yml @@ -48,3 +48,5 @@ jobs: push: true platforms: linux/amd64,linux/arm64 tags: ghcr.io/${{ github.repository_owner }}/${{ matrix.app.name }}:${{ inputs.image-tag }} + cache-from: type=gha,scope=${{ matrix.app.name }} + cache-to: type=gha,mode=max,scope=${{ matrix.app.name }} diff --git a/.github/workflows/docker-tests.yml b/.github/workflows/docker-tests.yml index c874b5e15..f584e38fc 100644 --- a/.github/workflows/docker-tests.yml +++ b/.github/workflows/docker-tests.yml @@ -27,6 +27,7 @@ jobs: uses: actions/setup-go@v6.3.0 with: go-version-file: ./test/docker-e2e/go.mod + cache-dependency-path: "**/go.sum" - name: Install just uses: extractions/setup-just@v3 - name: Run Docker E2E Tests @@ -46,6 +47,7 @@ jobs: uses: actions/setup-go@v6.3.0 with: go-version-file: ./test/docker-e2e/go.mod + cache-dependency-path: "**/go.sum" - name: Install just uses: extractions/setup-just@v3 - name: Run Docker Upgrade E2E Tests @@ -65,6 +67,7 @@ jobs: uses: actions/setup-go@v6.3.0 with: go-version-file: ./test/docker-e2e/go.mod + cache-dependency-path: "**/go.sum" - name: Install just uses: extractions/setup-just@v3 - name: Run Docker Compat E2E Tests diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8ee4a6417..8fff166cb 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -16,6 +16,7 @@ jobs: - uses: actions/setup-go@v6.3.0 with: go-version-file: ./go.mod + cache-dependency-path: "**/go.sum" # This steps sets the GIT_DIFF environment variable to true # if files defined in PATTERS changed - uses: technote-space/get-diff-action@v6.1.2 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index aea8dee0e..cd9ef7118 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,6 +17,7 @@ jobs: uses: actions/setup-go@v6.3.0 with: go-version-file: ./go.mod + cache-dependency-path: "**/go.sum" - name: Install just uses: extractions/setup-just@v3 - name: Build all ev-node binaries @@ -30,6 +31,7 @@ jobs: - uses: actions/setup-go@v6.3.0 with: go-version-file: ./go.mod + cache-dependency-path: "**/go.sum" - uses: extractions/setup-just@v3 - run: just deps - name: check for diff @@ -47,6 +49,7 @@ jobs: uses: actions/setup-go@v6.3.0 with: go-version-file: ./go.mod + cache-dependency-path: "**/go.sum" - name: Install just uses: extractions/setup-just@v3 - name: Run unit test @@ -66,6 +69,7 @@ jobs: uses: actions/setup-go@v6.3.0 with: go-version-file: ./go.mod + cache-dependency-path: "**/go.sum" - name: Install just uses: extractions/setup-just@v3 - name: Run integration test @@ -89,6 +93,7 @@ jobs: uses: actions/setup-go@v6.3.0 with: go-version-file: ./go.mod + cache-dependency-path: "**/go.sum" - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 - name: Build evstack:local-dev (cached) @@ -98,8 +103,8 @@ jobs: file: apps/testapp/Dockerfile load: true tags: evstack:local-dev - cache-from: type=gha - cache-to: type=gha,mode=max + cache-from: type=gha,scope=ev-node-testapp + cache-to: type=gha,mode=max,scope=ev-node-testapp - name: Install just uses: extractions/setup-just@v3 - name: E2E Tests @@ -115,6 +120,7 @@ jobs: uses: actions/setup-go@v6.3.0 with: go-version-file: ./go.mod + cache-dependency-path: "**/go.sum" - name: Install just uses: extractions/setup-just@v3 - name: EVM Tests diff --git a/apps/evm/Dockerfile b/apps/evm/Dockerfile index 009111fce..5d04211a9 100644 --- a/apps/evm/Dockerfile +++ b/apps/evm/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.25-alpine AS build-env +FROM golang:1.26-alpine AS build-env WORKDIR /src diff --git a/apps/grpc/Dockerfile b/apps/grpc/Dockerfile index e926eadfa..919b894d9 100644 --- a/apps/grpc/Dockerfile +++ b/apps/grpc/Dockerfile @@ -1,5 +1,5 @@ # Build stage -FROM golang:1.25-alpine AS builder +FROM golang:1.26-alpine AS builder #hadolint ignore=DL3018 RUN apk add --no-cache git gcc musl-dev linux-headers diff --git a/apps/testapp/Dockerfile b/apps/testapp/Dockerfile index fe3701947..d2be1823c 100644 --- a/apps/testapp/Dockerfile +++ b/apps/testapp/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.25 AS base +FROM golang:1.26 AS base #hadolint ignore=DL3018 RUN apt-get update && \ @@ -17,11 +17,17 @@ FROM base AS builder WORKDIR /ev-node -# Copy all source code first +# Copy module files first to leverage Docker layer caching. +# Dependencies are only re-downloaded when go.mod or go.sum change. +COPY go.mod go.sum ./ +COPY apps/testapp/go.mod apps/testapp/go.sum ./apps/testapp/ +RUN go mod download && (cd apps/testapp && go mod download) + +# Copy the rest of the source and build. COPY . . -# Now download dependencies and build -RUN go mod download && cd apps/testapp && go install . +WORKDIR /ev-node/apps/testapp +RUN go build -o /go/bin/testapp . ## prep the final image. # diff --git a/tools/local-da/Dockerfile b/tools/local-da/Dockerfile index 134eeaa6b..e583909f3 100644 --- a/tools/local-da/Dockerfile +++ b/tools/local-da/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.25-alpine AS build-env +FROM golang:1.26-alpine AS build-env WORKDIR /src