Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
.PHONY: release
.PHONY: release generate
SHELL := /bin/bash
VERSION := $(shell head -n 1 VERSION)

generate:
go generate ./...

release:
@GOOS=linux GOARCH=amd64 go build -ldflags="-s -w -X main.version=$(VERSION)" \
-o="artifacts/goci-$(VERSION)-linux-amd64" ./cmd/goci
Expand Down
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,17 @@ Publishes a workflow to [workflow-manager](https://github.com/clever/workflow-ma
```
$ ./circleci/workflow-publish [WF_URL] [WF_USER] [WF_PASS] [WF_JSON]
```

## Platform Events Schema Management

### Updating deploy.created Schema

The `deploy.created` event schema is managed in the [EventBridge Schema Registry](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-schema-registry.html). Go code bindings are generated from the schema registry and committed to the repository.

The [schemabindings](https://github.com/Clever/slingshot/tree/master/cmd/schemabindings) CLI ([more on Guru](https://app.getguru.com/card/Taq46GGc/Platform-Events#kNyrF1btlJhv)) is declared as a Go tool dependency in [go.mod](./go.mod), and a `//go:generate` directive lives in [internal/platformevents/generate.go](./internal/platformevents/generate.go). To regenerate the bindings after the schema changes in the registry authenticate using the infra-admin AWS credentials then run:

```bash
make generate
```

The generated bindings are used in [internal/platformevents/deploy_publisher.go](./internal/platformevents/deploy_publisher.go) to publish deploy events.
6 changes: 3 additions & 3 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
v1.8.0
Add add SyncEntity call to k8s deployApps command
v1.9.0
Move k8s deploys to platform events

Previously:
- Add SyncEntity call to k8s deployApps command
- Support configurable deployment branches
- Add new deploy-apps command
- Temporarily disable Go version checks
4 changes: 2 additions & 2 deletions cmd/goci/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import (
"github.com/Clever/ci-scripts/internal/docker"
"github.com/Clever/ci-scripts/internal/environment"
"github.com/Clever/ci-scripts/internal/lambda"
"github.com/Clever/ci-scripts/internal/platformevents"
"github.com/Clever/ci-scripts/internal/repo"
"github.com/Clever/ci-scripts/internal/slingshot"
ciIntegrationsModels "github.com/Clever/circle-ci-integrations/gen-go/models"
)

Expand Down Expand Up @@ -321,7 +321,7 @@ func deployApps(appIds []string) error {
}

if shouldDeploy() {
if err := slingshot.New().DeployApps(ctx, appIds); err != nil {
if err := platformevents.NewDeployPublisher(ctx).DeployApps(ctx, appIds); err != nil {
return err
}
}
Expand Down
95 changes: 59 additions & 36 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,80 +1,101 @@
module github.com/Clever/ci-scripts

go 1.24.0
go 1.25

require (
github.com/Clever/catapult/gen-go/models v1.206.0
github.com/Clever/catapult/gen-go/models v1.213.0
github.com/Clever/circle-ci-integrations/gen-go/client v0.15.0
github.com/Clever/circle-ci-integrations/gen-go/models v0.15.0
github.com/Clever/slingshot/gen-go/client v1.1.0
github.com/Clever/slingshot/gen-go/models v1.1.0
github.com/Clever/wag/logging/wagclientlogger v0.0.0-20250514163731-344287ef8d81
github.com/aws/aws-sdk-go-v2 v1.36.5
github.com/aws/aws-sdk-go-v2 v1.41.9
github.com/aws/aws-sdk-go-v2/config v1.29.17
github.com/aws/aws-sdk-go-v2/credentials v1.17.70
github.com/aws/aws-sdk-go-v2/service/ecr v1.45.1
github.com/aws/aws-sdk-go-v2/service/eventbridge v1.46.2
github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0
github.com/aws/aws-sdk-go-v2/service/sts v1.34.0
github.com/docker/docker v23.0.2+incompatible
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32
github.com/moby/buildkit v0.11.5
golang.org/x/sync v0.15.0
golang.org/x/sync v0.19.0
gopkg.in/yaml.v3 v3.0.1
)

require (
github.com/Clever/discovery-go v1.9.1 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/Clever/slingshot v1.7.1-0.20260528184044-b35458a1f220 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.25 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.25 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.26 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 // indirect
github.com/aws/aws-sdk-go-v2/service/schemas v1.34.14 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 // indirect
github.com/aws/smithy-go v1.22.4 // indirect
github.com/aws/smithy-go v1.26.0 // indirect
github.com/containerd/containerd v1.7.0 // indirect
github.com/docker/distribution v2.8.1+incompatible // indirect
github.com/docker/go-connections v0.4.0 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/go-openapi/analysis v0.23.0 // indirect
github.com/go-openapi/errors v0.22.1 // indirect
github.com/go-openapi/jsonpointer v0.21.1 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/loads v0.22.0 // indirect
github.com/go-openapi/spec v0.21.0 // indirect
github.com/go-openapi/strfmt v0.23.0 // indirect
github.com/go-openapi/swag v0.23.1 // indirect
github.com/go-openapi/validate v0.24.0 // indirect
github.com/dprotaso/go-yit v0.0.0-20220510233725-9ba8df137936 // indirect
github.com/getkin/kin-openapi v0.139.0 // indirect
github.com/go-openapi/analysis v0.24.1 // indirect
github.com/go-openapi/errors v0.22.4 // indirect
github.com/go-openapi/jsonpointer v0.22.4 // indirect
github.com/go-openapi/jsonreference v0.21.3 // indirect
github.com/go-openapi/loads v0.23.2 // indirect
github.com/go-openapi/spec v0.22.1 // indirect
github.com/go-openapi/strfmt v0.25.0 // indirect
github.com/go-openapi/swag v0.25.4 // indirect
github.com/go-openapi/swag/cmdutils v0.25.4 // indirect
github.com/go-openapi/swag/conv v0.25.4 // indirect
github.com/go-openapi/swag/fileutils v0.25.4 // indirect
github.com/go-openapi/swag/jsonname v0.25.4 // indirect
github.com/go-openapi/swag/jsonutils v0.25.4 // indirect
github.com/go-openapi/swag/loading v0.25.4 // indirect
github.com/go-openapi/swag/mangling v0.25.4 // indirect
github.com/go-openapi/swag/netutils v0.25.4 // indirect
github.com/go-openapi/swag/stringutils v0.25.4 // indirect
github.com/go-openapi/swag/typeutils v0.25.4 // indirect
github.com/go-openapi/swag/yamlutils v0.25.4 // indirect
github.com/go-openapi/validate v0.25.1 // indirect
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/google/uuid v1.6.1-0.20241114170450-2d3c2a9cc518 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/klauspost/compress v1.16.7 // indirect
github.com/mailru/easyjson v0.9.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/klauspost/compress v1.18.0 // indirect
github.com/mailru/easyjson v0.9.1 // indirect
github.com/moby/patternmatcher v0.5.0 // indirect
github.com/moby/sys/sequential v0.5.0 // indirect
github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
github.com/oapi-codegen/oapi-codegen/v2 v2.7.0 // indirect
github.com/oasdiff/yaml v0.1.0 // indirect
github.com/oasdiff/yaml3 v0.0.13 // indirect
github.com/oklog/ulid v1.3.1 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/opencontainers/runc v1.1.4 // indirect
github.com/perimeterx/marshmallow v1.1.5 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/rogpeppe/go-internal v1.13.1 // indirect
github.com/sirupsen/logrus v1.9.0 // indirect
go.mongodb.org/mongo-driver v1.17.4 // indirect
golang.org/x/mod v0.25.0 // indirect
golang.org/x/net v0.41.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/time v0.12.0 // indirect
golang.org/x/tools v0.34.0 // indirect
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/speakeasy-api/jsonpath v0.6.3 // indirect
github.com/speakeasy-api/openapi v1.19.2 // indirect
github.com/vmware-labs/yaml-jsonpath v0.3.2 // indirect
github.com/woodsbury/decimal128 v1.4.0 // indirect
go.mongodb.org/mongo-driver v1.17.6 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/mod v0.33.0 // indirect
golang.org/x/net v0.50.0 // indirect
golang.org/x/sys v0.41.0 // indirect
golang.org/x/text v0.34.0 // indirect
golang.org/x/tools v0.42.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gotest.tools/v3 v3.4.0 // indirect
)
Expand All @@ -83,3 +104,5 @@ replace (
github.com/Clever/workflow-manager/gen-go/client => github.com/Clever/workflow-manager/gen-go/client v0.16.2
github.com/Clever/workflow-manager/gen-go/models => github.com/Clever/workflow-manager/gen-go/models v0.16.2
)

tool github.com/Clever/slingshot/cmd/schemabindings
Loading