1+ name : Huge Go Module Cache Test with setup-go (Preserve Root Files) - go v5
2+
3+ on :
4+ workflow_dispatch :
5+ push :
6+ branches : [ "main" ]
7+
8+ jobs :
9+ big-cache-ubuntu :
10+ runs-on : ubuntu-latest
11+ steps :
12+ - uses : actions/checkout@v5
13+
14+ - name : Create test directory
15+ run : mkdir -p bigcachetest
16+
17+ - name : Create large go.mod & go.sum in test directory
18+ working-directory : bigcachetest
19+ run : |
20+ cat <<EOF > go.mod
21+ module example.com/bigcachetest
22+
23+ go 1.24
24+
25+ require (
26+ github.com/aws/aws-sdk-go-v2 v1.29.0
27+ cloud.google.com/go v0.110.0
28+ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0
29+ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute v1.2.0
30+ github.com/lib/pq v1.10.9
31+ github.com/go-sql-driver/mysql v1.7.0
32+ github.com/golang/protobuf v1.5.3
33+ google.golang.org/grpc v1.60.0
34+ github.com/Shopify/sarama v1.40.0
35+ github.com/elastic/go-elasticsearch/v8 v8.10.0
36+ github.com/hashicorp/terraform v1.6.2
37+ github.com/uber-go/zap v1.24.0
38+ github.com/prometheus/client_golang v1.16.0
39+ github.com/gin-gonic/gin v1.9.0
40+ github.com/go-redis/redis/v8 v8.11.5
41+ github.com/gorilla/websocket v1.5.0
42+ github.com/sirupsen/logrus v1.9.3
43+ github.com/spf13/cobra v1.8.0
44+ github.com/spf13/viper v1.18.2
45+ go.mongodb.org/mongo-driver v1.13.1
46+ github.com/google/uuid v1.6.0
47+ github.com/minio/minio-go/v7 v7.0.28
48+ github.com/docker/docker/client v23.0.2
49+ github.com/kubernetes/client-go v0.29.0
50+ github.com/coreos/etcd/clientv3 v3.5.10
51+ github.com/apache/thrift v0.19.0
52+ github.com/apache/arrow/go/v13 v13.0.0
53+ github.com/nats-io/nats.go v1.22.1
54+ github.com/segmentio/kafka-go v0.4.30
55+ github.com/googleapis/gax-go/v2 v2.7.0
56+ github.com/gocql/gocql v1.5.0
57+ )
58+ EOF
59+ go mod tidy
60+
61+ - name : Setup Go with cache
62+ uses : actions/setup-go@v5
63+ with :
64+ go-version : ' 1.22'
65+ cache : true
66+ cache-dependency-path : bigcachetest/go.sum
67+
68+ - name : Download dependencies
69+ working-directory : bigcachetest
70+ run : go mod download
71+
72+ - name : Check Go module cache size
73+ run : du -sh ~/go/pkg/mod
74+
75+ big-cache-macos :
76+ runs-on : macos-latest
77+ steps :
78+ - uses : actions/checkout@v5
79+
80+ - name : Create test directory
81+ run : mkdir -p bigcachetest
82+
83+ - name : Create large go.mod & go.sum in test directory
84+ working-directory : bigcachetest
85+ run : |
86+ cat <<EOF > go.mod
87+ module example.com/bigcachetest
88+
89+ go 1.24
90+
91+ require (
92+ github.com/aws/aws-sdk-go-v2 v1.29.0
93+ cloud.google.com/go v0.110.0
94+ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0
95+ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute v1.2.0
96+ github.com/lib/pq v1.10.9
97+ github.com/go-sql-driver/mysql v1.7.0
98+ github.com/golang/protobuf v1.5.3
99+ google.golang.org/grpc v1.60.0
100+ github.com/Shopify/sarama v1.40.0
101+ github.com/elastic/go-elasticsearch/v8 v8.10.0
102+ github.com/hashicorp/terraform v1.6.2
103+ github.com/uber-go/zap v1.24.0
104+ github.com/prometheus/client_golang v1.16.0
105+ github.com/gin-gonic/gin v1.9.0
106+ github.com/go-redis/redis/v8 v8.11.5
107+ github.com/gorilla/websocket v1.5.0
108+ github.com/sirupsen/logrus v1.9.3
109+ github.com/spf13/cobra v1.8.0
110+ github.com/spf13/viper v1.18.2
111+ go.mongodb.org/mongo-driver v1.13.1
112+ github.com/google/uuid v1.6.0
113+ github.com/minio/minio-go/v7 v7.0.28
114+ github.com/docker/docker/client v23.0.2
115+ github.com/kubernetes/client-go v0.29.0
116+ github.com/coreos/etcd/clientv3 v3.5.10
117+ github.com/apache/thrift v0.19.0
118+ github.com/apache/arrow/go/v13 v13.0.0
119+ github.com/nats-io/nats.go v1.22.1
120+ github.com/segmentio/kafka-go v0.4.30
121+ github.com/googleapis/gax-go/v2 v2.7.0
122+ github.com/gocql/gocql v1.5.0
123+ )
124+ EOF
125+ go mod tidy
126+
127+ - name : Setup Go with cache
128+ uses : actions/setup-go@v5
129+ with :
130+ go-version : ' 1.22'
131+ cache : true
132+ cache-dependency-path : bigcachetest/go.sum
133+
134+ - name : Download dependencies
135+ working-directory : bigcachetest
136+ run : go mod download
137+
138+ - name : Check Go module cache size
139+ run : du -sh ~/go/pkg/mod
140+
141+ big-cache-windows :
142+ runs-on : windows-latest
143+ steps :
144+ - uses : actions/checkout@v5
145+
146+ - name : Create test directory
147+ run : mkdir bigcachetest
148+
149+ - name : Create large go.mod & go.sum in test directory
150+ working-directory : bigcachetest
151+ run : |
152+ $goMod = @"
153+ module example.com/bigcachetest
154+
155+ go 1.24
156+
157+ require (
158+ github.com/aws/aws-sdk-go-v2 v1.29.0
159+ cloud.google.com/go v0.110.0
160+ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.1.0
161+ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute v1.2.0
162+ github.com/lib/pq v1.10.9
163+ github.com/go-sql-driver/mysql v1.7.0
164+ github.com/golang/protobuf v1.5.3
165+ google.golang.org/grpc v1.60.0
166+ github.com/Shopify/sarama v1.40.0
167+ github.com/elastic/go-elasticsearch/v8 v8.10.0
168+ github.com/hashicorp/terraform v1.6.2
169+ github.com/uber-go/zap v1.24.0
170+ github.com/prometheus/client_golang v1.16.0
171+ github.com/gin-gonic/gin v1.9.0
172+ github.com/go-redis/redis/v8 v8.11.5
173+ github.com/gorilla/websocket v1.5.0
174+ github.com/sirupsen/logrus v1.9.3
175+ github.com/spf13/cobra v1.8.0
176+ github.com/spf13/viper v1.18.2
177+ go.mongodb.org/mongo-driver v1.13.1
178+ github.com/google/uuid v1.6.0
179+ github.com/minio/minio-go/v7 v7.0.28
180+ github.com/docker/docker/client v23.0.2
181+ github.com/kubernetes/client-go v0.29.0
182+ github.com/coreos/etcd/clientv3 v3.5.10
183+ github.com/apache/thrift v0.19.0
184+ github.com/apache/arrow/go/v13 v13.0.0
185+ github.com/nats-io/nats.go v1.22.1
186+ github.com/segmentio/kafka-go v0.4.30
187+ github.com/googleapis/gax-go/v2 v2.7.0
188+ github.com/gocql/gocql v1.5.0
189+ )
190+ "@
191+ Set-Content -Path go.mod -Value $goMod
192+ go mod tidy
193+
194+ - name : Setup Go with cache
195+ uses : actions/setup-go@v5
196+ with :
197+ go-version : ' 1.22'
198+ cache : true
199+ cache-dependency-path : bigcachetest/go.sum
200+
201+ - name : Download dependencies
202+ working-directory : bigcachetest
203+ run : go mod download
204+
205+ - name : Check Go module cache size
206+ run : du -sh $env:USERPROFILE\go\pkg\mod
0 commit comments