Skip to content

Commit 4e9d982

Browse files
committed
less permissions
1 parent a1f4631 commit 4e9d982

3 files changed

Lines changed: 83 additions & 10 deletions

File tree

.github/workflows/build_all_images.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,44 @@ jobs:
3939
echo "projects=$project_folders"
4040
} >> "$GITHUB_OUTPUT"
4141
42+
build_tool_images:
43+
runs-on: ubuntu-latest
44+
permissions:
45+
contents: read
46+
attestations: read
47+
steps:
48+
- name: Checkout code
49+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
50+
with:
51+
fetch-depth: 0
52+
persist-credentials: false
53+
- name: build_grype
54+
run:
55+
make build-grype
56+
docker save "local_grype:latest" -o grype_image.tar
57+
- name: build_syft
58+
run:
59+
make build-syft
60+
docker save "local_syft:latest" -o syft_image.tar
61+
- name: build_grant
62+
run:
63+
make build-grant
64+
docker save "local_grant:latest" -o grant_image.tar
65+
66+
- name: build_tflint
67+
run:
68+
make build-tflint
69+
docker save "local_tflint:latest" -o tflint_image.tar
70+
71+
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
72+
name: Upload docker images
73+
with:
74+
name: docker_artifact
75+
path: |
76+
grype_image.tar
77+
syft_image.tar
78+
grant_image.tar
79+
tflint_image.tar
4280
package_base_docker_image:
4381
uses: ./.github/workflows/build_multi_arch_image.yml
4482
with:

.github/workflows/build_multi_arch_image.yml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,30 @@ jobs:
134134
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f
135135
with:
136136
node-version: '24.14.0'
137+
- name: docker_artifact download
138+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
139+
with:
140+
name: docker_artifact
141+
path: images/
142+
- name: extract docker images
143+
run: |
144+
for image in images/*.tar; do
145+
docker load -i "$image"
146+
done
147+
rm -rf images
137148
- name: setup syft and grype
138149
run: |
139150
mkdir -p "$RUNNER_TEMP/bin"
140-
docker build --output="$RUNNER_TEMP/bin" -f "src/base/.devcontainer/Dockerfile.syft" src/base/.devcontainer/
141-
docker build --output="$RUNNER_TEMP/bin" -f "src/base/.devcontainer/Dockerfile.grype" src/base/.devcontainer/
151+
id=$(docker create local_grype:latest)
152+
docker cp "$id":/grype - | tar -xOf - grype > "$RUNNER_TEMP/bin/grype"
153+
chmod +x "$RUNNER_TEMP/bin/grype"
154+
docker rm -v "$id"
155+
156+
mkdir -p "$RUNNER_TEMP/bin"
157+
id=$(docker create local_syft:latest)
158+
docker cp "$id":/syft - | tar -xOf - syft > "$RUNNER_TEMP/bin/syft"
159+
chmod +x "$RUNNER_TEMP/bin/syft"
160+
docker rm -v "$id"
142161
echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH"
143162
- name: make install
144163
run: |

Makefile

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,19 +65,35 @@ build-all: build-base-image build-node-24-image build-node-24-python-3-10-image
6565
build-regression-tests-image
6666

6767
build-syft:
68-
docker build -f src/base/.devcontainer/Dockerfile.syft --tag local_syft:latest src/base/.devcontainer/
68+
@if docker image inspect local_syft:latest >/dev/null 2>&1; then \
69+
echo "Image local_syft:latest already exists. Skipping build."; \
70+
else \
71+
docker build -f src/base/.devcontainer/Dockerfile.syft --tag local_syft:latest src/base/.devcontainer/; \
72+
fi
6973
build-grype:
70-
docker build -f src/base/.devcontainer/Dockerfile.grype --tag local_grype:latest src/base/.devcontainer/
74+
@if docker image inspect local_grype:latest >/dev/null 2>&1; then \
75+
echo "Image local_grype:latest already exists. Skipping build."; \
76+
else \
77+
docker build -f src/base/.devcontainer/Dockerfile.grype --tag local_grype:latest src/base/.devcontainer/; \
78+
fi
7179

7280
build-grant:
73-
docker build -f src/base/.devcontainer/Dockerfile.grant --tag local_grant:latest src/base/.devcontainer/
81+
@if docker image inspect local_grant:latest >/dev/null 2>&1; then \
82+
echo "Image local_grant:latest already exists. Skipping build."; \
83+
else \
84+
docker build -f src/base/.devcontainer/Dockerfile.grant --tag local_grant:latest src/base/.devcontainer/; \
85+
fi
7486

7587
build-tflint:
76-
docker buildx build \
77-
--secret id=GH_TOKEN,env=GITHUB_TOKEN \
78-
-f src/projects/eps-storage-terraform/.devcontainer/Dockerfile.tflint \
79-
--tag local_tflint:latest \
80-
src/projects/eps-storage-terraform/.devcontainer/
88+
@if docker image inspect local_tflint:latest >/dev/null 2>&1; then \
89+
echo "Image local_tflint:latest already exists. Skipping build."; \
90+
else \
91+
docker buildx build \
92+
--secret id=GH_TOKEN,env=GITHUB_TOKEN \
93+
-f src/projects/eps-storage-terraform/.devcontainer/Dockerfile.tflint \
94+
--tag local_tflint:latest \
95+
src/projects/eps-storage-terraform/.devcontainer/; \
96+
fi
8197

8298
build-image: build-syft build-grype build-grant build-tflint guard-CONTAINER_NAME guard-BASE_VERSION_TAG guard-BASE_FOLDER guard-IMAGE_TAG
8399
workspace_folder="$${CONTAINER_NAME}"; \

0 commit comments

Comments
 (0)