Skip to content

Commit 6d63105

Browse files
authored
Merge pull request #412 from docker/ci/gomodguard
feat: add gomodguard check
2 parents 33249b7 + 64412ba commit 6d63105

File tree

8 files changed

+114
-0
lines changed

8 files changed

+114
-0
lines changed

.github/workflows/gomodguard.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: gomodguard
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
jobs:
8+
check:
9+
name: Check for allowed dependencies per module
10+
runs-on: ubuntu-latest
11+
permissions:
12+
id-token: write
13+
pull-requests: write
14+
contents: write
15+
steps:
16+
- uses: actions/checkout@v5
17+
18+
- name: Hub login
19+
uses: docker/login-action@v3
20+
with:
21+
username: ${{ vars.DOCKERBUILDBOT_USERNAME }}
22+
password: ${{ secrets.DOCKERBUILDBOT_WRITE_PAT }}
23+
24+
- name: Set up Docker Buildx
25+
id: buildx
26+
uses: docker/setup-buildx-action@v3
27+
with:
28+
driver: cloud
29+
endpoint: "docker/secrets-engine"
30+
install: true
31+
32+
- name: Lint
33+
run: make BUILDER=${{ steps.buildx.outputs.name }} gomodguard

Dockerfile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,26 @@ RUN --mount=type=bind,target=.,ro \
8585
golangci-lint run -v $(go list -f '{{.Dir}}/...' -m | xargs)
8686
EOT
8787

88+
FROM golang AS gomodguard
89+
ARG GOMODGUARD_VERSION=v1.4.1
90+
RUN --mount=type=cache,target=/root/.cache/go-build \
91+
--mount=type=cache,target=/go/pkg/mod \
92+
--mount=type=tmpfs,target=/go/src/ \
93+
go install "github.com/ryancurrah/gomodguard/cmd/gomodguard@${GOMODGUARD_VERSION}" \
94+
&& gomodguard -help
95+
96+
FROM golang AS do-gomodguard
97+
COPY --link --from=gomodguard /go/bin/gomodguard /go/bin/gomodguard
98+
WORKDIR /modguard
99+
ENV PATH=/go/bin:$PATH
100+
RUN --mount=type=bind,target=.,ro <<EOT
101+
set -euo pipefail
102+
for dir in $(go list -f '{{.Dir}}' -m); do
103+
if [ -f "$dir/.gomodguard.yaml" ]; then
104+
(cd "$dir" && gomodguard)
105+
fi
106+
done
107+
EOT
88108

89109
FROM golang AS gofumpt
90110
ARG GOFUMPT_VERSION=v0.8.0

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@ mod:
153153
@go work sync
154154
@go work vendor
155155

156+
.PHONY: gomodguard
157+
gomodguard:
158+
@docker buildx build $(DOCKER_BUILD_ARGS) --target=do-gomodguard .
159+
156160
define HELP_BUMP
157161
Usage: make bump MOD=<module>
158162

client/.gomodguard.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
blocked:
3+
modules:
4+
- github.com/docker/secrets-engine/engine:
5+
reason: "Forbidden dependency"
6+
- github.com/docker/secrets-engine/injector:
7+
reason: "Forbidden dependency"
8+
- github.com/docker/secrets-engine/pass:
9+
reason: "Forbidden dependency"
10+
- github.com/docker/secrets-engine/plugin:
11+
reason: "Forbidden dependency"
12+
- github.com/docker/secrets-engine/store:
13+
reason: "Forbidden dependency"

engine/.gomodguard.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
blocked:
3+
modules:
4+
# - github.com/docker/secrets-engine/client:
5+
# reason: "Forbidden dependency"
6+
- github.com/docker/secrets-engine/injector:
7+
reason: "Forbidden dependency"
8+
- github.com/docker/secrets-engine/pass:
9+
reason: "Forbidden dependency"
10+
# - github.com/docker/secrets-engine/plugin:
11+
# reason: "Forbidden dependency"
12+
# - github.com/docker/secrets-engine/store:
13+
# reason: "Forbidden dependency"

injector/.gomodguard.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
blocked:
3+
modules:
4+
- github.com/docker/secrets-engine/store:
5+
reason: "Forbidden dependency"

plugin/.gomodguard.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
blocked:
3+
modules:
4+
- github.com/docker/secrets-engine/client:
5+
reason: "Forbidden dependency"
6+
- github.com/docker/secrets-engine/engine:
7+
reason: "Forbidden dependency"
8+
- github.com/docker/secrets-engine/injector:
9+
reason: "Forbidden dependency"
10+
- github.com/docker/secrets-engine/pass:
11+
reason: "Forbidden dependency"
12+
- github.com/docker/secrets-engine/store:
13+
reason: "Forbidden dependency"

store/.gomodguard.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
blocked:
3+
modules:
4+
- github.com/docker/secrets-engine/client:
5+
reason: "Forbidden dependency"
6+
- github.com/docker/secrets-engine/engine:
7+
reason: "Forbidden dependency"
8+
- github.com/docker/secrets-engine/injector:
9+
reason: "Forbidden dependency"
10+
- github.com/docker/secrets-engine/pass:
11+
reason: "Forbidden dependency"
12+
- github.com/docker/secrets-engine/plugin:
13+
reason: "Forbidden dependency"

0 commit comments

Comments
 (0)