Skip to content

Commit 989bbbe

Browse files
authored
Relocate agent (#726)
* Relocate agent (automated changes) * Relocate agent (manual changes)
1 parent 1f12770 commit 989bbbe

File tree

176 files changed

+21507
-87
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

176 files changed

+21507
-87
lines changed

.golangci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,6 @@ issues:
123123
# Don't hide multiple issues that belong to one class since GitHub annotations can handle them all nicely.
124124
max-issues-per-linter: 0
125125
max-same-issues: 0
126+
127+
exclude-dirs:
128+
- internal/agent

.goreleaser.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ builds:
1010
-X github.com/cirruslabs/cirrus-cli/internal/version.Version={{.Version}}
1111
-X github.com/cirruslabs/cirrus-cli/internal/version.Commit={{.ShortCommit}}
1212
env:
13-
- CGO_ENABLED=0
13+
- CGO_ENABLED={{if eq .Runtime.Goos "darwin"}}1{{else}}0{{end}}
1414
goos:
1515
- linux
1616
- darwin

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ RUN goreleaser build --timeout 60m --single-target
1111

1212
FROM alpine:latest
1313
LABEL org.opencontainers.image.source=https://github.com/cirruslabs/cirrus-cli/
14-
14+
RUN apk add --no-cache rsync
1515
COPY --from=builder /build/dist/linux_*/cirrus_linux_*/cirrus /usr/local/bin/
1616
ENTRYPOINT ["/usr/local/bin/cirrus"]

cmd/cirrus/main.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"crypto/x509"
66
"fmt"
77
"github.com/breml/rootcerts/embedded"
8+
"github.com/cirruslabs/cirrus-cli/internal/agent"
89
"github.com/cirruslabs/cirrus-cli/internal/commands"
910
"github.com/cirruslabs/cirrus-cli/internal/opentelemetry"
1011
"github.com/cirruslabs/cirrus-cli/internal/version"
@@ -39,6 +40,13 @@ func main() {
3940
defer sentry.Flush(5 * time.Second)
4041
defer sentry.Recover()
4142

43+
// Run the Cirrus CI Agent if requested
44+
if len(os.Args) >= 2 && os.Args[1] == "agent" {
45+
agent.Run()
46+
47+
return
48+
}
49+
4250
// Enrich future events with Cirrus CI-specific tags
4351
if tags, ok := os.LookupEnv("CIRRUS_SENTRY_TAGS"); ok {
4452
sentry.ConfigureScope(func(scope *sentry.Scope) {

go.mod

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/antihax/optional v1.0.0
1010
github.com/avast/retry-go/v4 v4.5.1
1111
github.com/breml/rootcerts v0.2.16
12-
github.com/cirruslabs/cirrus-ci-agent v1.134.1
12+
github.com/cirruslabs/cirrus-ci-agent v1.134.1 // indirect
1313
github.com/cirruslabs/echelon v1.9.0
1414
github.com/cirruslabs/go-java-glob v0.1.0
1515
github.com/cirruslabs/podmanapi v0.3.1
@@ -69,10 +69,21 @@ require (
6969

7070
require (
7171
github.com/IGLOU-EU/go-wildcard v1.0.3
72+
github.com/bmatcuk/doublestar v1.3.4
73+
github.com/cirruslabs/cirrus-ci-annotations v0.10.0
74+
github.com/cirruslabs/terminal v0.16.0
75+
github.com/go-chi/render v1.0.3
76+
github.com/golang-jwt/jwt/v5 v5.2.1
7277
github.com/google/go-github/v59 v59.0.0
78+
github.com/hashicorp/vault/api v1.12.2
79+
github.com/klauspost/pgzip v1.2.6
80+
github.com/pkg/errors v0.9.1
81+
github.com/prometheus/procfs v0.13.0
7382
github.com/puzpuzpuz/xsync/v3 v3.1.0
7483
github.com/samber/lo v1.39.0
7584
github.com/shirou/gopsutil/v3 v3.24.2
85+
github.com/testcontainers/testcontainers-go v0.30.0
86+
github.com/tonistiigi/go-actions-cache v0.0.0-20240227172821-a0b64f338598
7687
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0
7788
go.opentelemetry.io/otel v1.24.0
7889
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.24.0
@@ -81,6 +92,9 @@ require (
8192
go.opentelemetry.io/otel/sdk v1.24.0
8293
go.opentelemetry.io/otel/sdk/metric v1.24.0
8394
go.opentelemetry.io/otel/trace v1.24.0
95+
golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8
96+
golang.org/x/sync v0.6.0
97+
golang.org/x/time v0.5.0
8498
)
8599

86100
require (
@@ -93,7 +107,9 @@ require (
93107
github.com/ProtonMail/go-crypto v1.0.0 // indirect
94108
github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d // indirect
95109
github.com/agext/levenshtein v1.2.3 // indirect
110+
github.com/ajg/form v1.5.1 // indirect
96111
github.com/beorn7/perks v1.0.1 // indirect
112+
github.com/cenkalti/backoff/v3 v3.2.2 // indirect
97113
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
98114
github.com/cespare/xxhash/v2 v2.2.0 // indirect
99115
github.com/cloudflare/circl v1.3.7 // indirect
@@ -102,7 +118,10 @@ require (
102118
github.com/containerd/log v0.1.0 // indirect
103119
github.com/containerd/ttrpc v1.2.3 // indirect
104120
github.com/containerd/typeurl/v2 v2.1.1 // indirect
121+
github.com/cpuguy83/dockercfg v0.3.1 // indirect
122+
github.com/creack/pty v1.1.21 // indirect
105123
github.com/davecgh/go-spew v1.1.1 // indirect
124+
github.com/dimchansky/utfbom v1.1.1 // indirect
106125
github.com/distribution/reference v0.6.0 // indirect
107126
github.com/docker/distribution v2.8.3+incompatible // indirect
108127
github.com/docker/docker-credential-helpers v0.8.1 // indirect
@@ -113,43 +132,55 @@ require (
113132
github.com/felixge/httpsnoop v1.0.4 // indirect
114133
github.com/fvbommel/sortorder v1.1.0 // indirect
115134
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
135+
github.com/go-jose/go-jose/v3 v3.0.3 // indirect
116136
github.com/go-logr/logr v1.4.1 // indirect
117137
github.com/go-logr/stdr v1.2.2 // indirect
118138
github.com/go-ole/go-ole v1.3.0 // indirect
119139
github.com/gogo/googleapis v1.4.1 // indirect
120140
github.com/gogo/protobuf v1.3.2 // indirect
141+
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
121142
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
122143
github.com/google/go-querystring v1.1.0 // indirect
123144
github.com/gorilla/mux v1.8.1 // indirect
124145
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 // indirect
125146
github.com/hashicorp/errwrap v1.1.0 // indirect
147+
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
126148
github.com/hashicorp/go-multierror v1.1.1 // indirect
149+
github.com/hashicorp/go-retryablehttp v0.7.5 // indirect
150+
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
151+
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect
152+
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
153+
github.com/hashicorp/go-sockaddr v1.0.6 // indirect
154+
github.com/hashicorp/hcl v1.0.0 // indirect
127155
github.com/in-toto/in-toto-golang v0.9.0 // indirect
128156
github.com/inconshreveable/mousetrap v1.1.0 // indirect
129157
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
158+
github.com/joshdk/go-junit v1.0.0 // indirect
130159
github.com/kevinburke/ssh_config v1.2.0 // indirect
131160
github.com/klauspost/compress v1.17.7 // indirect
132161
github.com/kr/fs v0.1.0 // indirect
133162
github.com/lestrrat-go/option v1.0.1 // indirect
134163
github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a // indirect
135-
github.com/mattn/go-isatty v0.0.19 // indirect
164+
github.com/magiconair/properties v1.8.7 // indirect
136165
github.com/miekg/pkcs11 v1.1.1 // indirect
166+
github.com/mitchellh/go-homedir v1.1.0 // indirect
167+
github.com/mitchellh/mapstructure v1.5.0 // indirect
137168
github.com/moby/docker-image-spec v1.3.1 // indirect
138169
github.com/moby/locker v1.0.1 // indirect
139170
github.com/moby/patternmatcher v0.6.0 // indirect
140171
github.com/moby/sys/mountinfo v0.7.1 // indirect
141172
github.com/moby/sys/sequential v0.5.0 // indirect
142173
github.com/moby/sys/signal v0.7.0 // indirect
143174
github.com/moby/sys/user v0.1.0 // indirect
175+
github.com/morikuni/aec v1.0.0 // indirect
144176
github.com/opencontainers/runtime-spec v1.2.0 // indirect
145177
github.com/pjbgf/sha1cd v0.3.0 // indirect
146-
github.com/pkg/errors v0.9.1 // indirect
147178
github.com/pmezard/go-difflib v1.0.0 // indirect
148179
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
149180
github.com/prometheus/client_golang v1.19.0 // indirect
150181
github.com/prometheus/client_model v0.6.0 // indirect
151182
github.com/prometheus/common v0.51.1 // indirect
152-
github.com/prometheus/procfs v0.13.0 // indirect
183+
github.com/ryanuber/go-glob v1.0.0 // indirect
153184
github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
154185
github.com/shibumi/go-pathspec v1.3.0 // indirect
155186
github.com/shoenig/go-m1cpu v0.1.6 // indirect
@@ -168,10 +199,10 @@ require (
168199
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
169200
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 // indirect
170201
go.opentelemetry.io/proto/otlp v1.1.0 // indirect
171-
golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect
202+
go.uber.org/multierr v1.11.0 // indirect
203+
go.uber.org/zap v1.27.0 // indirect
172204
golang.org/x/mod v0.16.0 // indirect
173205
golang.org/x/net v0.22.0 // indirect
174-
golang.org/x/sync v0.6.0 // indirect
175206
golang.org/x/term v0.18.0 // indirect
176207
golang.org/x/tools v0.19.0 // indirect
177208
google.golang.org/genproto/googleapis/api v0.0.0-20240325203815-454cdb8f5daa // indirect

0 commit comments

Comments
 (0)