Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
aad17bc
add zizmor
anthony-nhs Mar 26, 2026
dd4c7de
Merge remote-tracking branch 'origin/main' into add_script_to_check_g…
anthony-nhs Mar 26, 2026
2e3d943
fix Makefile
anthony-nhs Mar 26, 2026
3afa9b6
install zizmor using pypi
anthony-nhs Mar 26, 2026
07b4ad2
use requirements file
anthony-nhs Mar 26, 2026
3410a72
update following feedback
anthony-nhs Mar 26, 2026
cd72fa6
use later java
anthony-nhs Mar 26, 2026
8c2f0a0
add description of zizmor target
anthony-nhs Mar 26, 2026
5dbf583
add syft and grype
anthony-nhs Mar 26, 2026
7f136dd
correct path
anthony-nhs Mar 26, 2026
efe95b8
Merge branch 'add_script_to_check_github_actions_use_sha' into syft_g…
anthony-nhs Mar 26, 2026
4567f4b
wip
anthony-nhs Mar 27, 2026
e7e7eda
Merge remote-tracking branch 'origin/main' into syft_grype
anthony-nhs Mar 30, 2026
d7ffa26
only run post* scripts once
anthony-nhs Mar 31, 2026
55578d9
add dependabot cooldown
anthony-nhs Mar 31, 2026
f4bcfdc
fix workflows
anthony-nhs Mar 31, 2026
d982d9f
explicit permissions
anthony-nhs Mar 31, 2026
30b5166
explicit permissions
anthony-nhs Mar 31, 2026
4345bed
explicit permissions
anthony-nhs Mar 31, 2026
e2ebcb3
explicit permissions
anthony-nhs Mar 31, 2026
026d590
show vuln output
anthony-nhs Mar 31, 2026
3ae300e
add grype ignore
anthony-nhs Mar 31, 2026
7cb1f52
vulns for node 24
anthony-nhs Mar 31, 2026
c7a574f
more vulns
anthony-nhs Mar 31, 2026
3b8f045
update docs
anthony-nhs Mar 31, 2026
cfcb96c
more vulns
anthony-nhs Mar 31, 2026
1d0ee19
update readme
anthony-nhs Mar 31, 2026
c5812a4
add new target to scan docker image
anthony-nhs Mar 31, 2026
084f5e1
do not fail on grant error
anthony-nhs Apr 1, 2026
69416c4
update following comment
anthony-nhs Apr 1, 2026
70c677e
fix path
anthony-nhs Apr 1, 2026
b5ec463
fix formatting
anthony-nhs Apr 1, 2026
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
15 changes: 0 additions & 15 deletions .devcontainer/Dockerfile.bootstrap
Original file line number Diff line number Diff line change
@@ -1,16 +1,3 @@
# This can be used to bootstrap devcontainer when no images have been pushed
FROM alpine:3.23.3 AS build
ARG TARGETARCH
RUN apk add --no-cache cosign bash curl jq
COPY src/base/.devcontainer/scripts/install_trivy.sh /tmp/install_trivy.sh
RUN case "${TARGETARCH}" in \
x86_64|amd64) TRIVY_ARCH=64bit ;; \
aarch64|arm64) TRIVY_ARCH=ARM64 ;; \
*) echo "Unsupported TARGETARCH: ${TARGETARCH}" && exit 1 ;; \
esac \
&& INSTALL_DIR=/tmp/trivy/ ARCH="${TRIVY_ARCH}" /tmp/install_trivy.sh


FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04
ARG TARGETARCH
ENV TARGETARCH=${TARGETARCH}
Expand Down Expand Up @@ -75,8 +62,6 @@ RUN git clone https://github.com/awslabs/git-secrets.git /tmp/git-secrets && \
chmod 755 /usr/share/secrets-scanner && \
curl -L https://raw.githubusercontent.com/NHSDigital/software-engineering-quality-framework/main/tools/nhsd-git-secrets/nhsd-rules-deny.txt -o /usr/share/secrets-scanner/nhsd-rules-deny.txt

COPY --from=build /tmp/trivy/trivy /usr/local/bin/trivy

USER vscode

ENV PATH="/home/vscode/.asdf/shims:/home/vscode/.local/bin:$PATH:/workspaces/eps-devcontainers/node_modules/.bin"
Expand Down
62 changes: 28 additions & 34 deletions .github/workflows/build_multi_arch_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,18 +63,16 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
fetch-depth: 0
# - name: setup trivy
# run: |
# mkdir -p "$RUNNER_TEMP/bin"
# docker build --output="$RUNNER_TEMP/bin" -f "src/base/.devcontainer/Dockerfile.trivy.${ARCH}" .
# echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH"
# env:
# ARCH: '${{ matrix.arch }}'
- name: setup node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f
with:
node-version: '24.14.0'

- name: setup syft and grype
run: |
mkdir -p "$RUNNER_TEMP/bin"
docker build --output="$RUNNER_TEMP/bin" -f "src/base/.devcontainer/Dockerfile.syft" src/base/.devcontainer/
docker build --output="$RUNNER_TEMP/bin" -f "src/base/.devcontainer/Dockerfile.grype" src/base/.devcontainer/
echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH"
- name: make install
run: |
make install-node
Expand All @@ -99,32 +97,28 @@ jobs:
CONTAINER_NAME: '${{ inputs.container_name }}'
BASE_FOLDER: "${{ inputs.base_folder }}"
IMAGE_TAG: "${{ inputs.docker_tag }}-${{ matrix.arch }}"
EXIT_CODE: 0
EXTRA_COMMON: "${{ inputs.extra_common }}"
# - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
# name: Upload scan results
# with:
# name: "scan_results_docker_${{ inputs.container_name }}_${{ matrix.arch }}.json"
# path: .out/scan_results_docker.json
# - name: Check docker vulnerabilities - table output
# run: |
# make scan-image
# env:
# CONTAINER_NAME: '${{ inputs.container_name }}'
# BASE_FOLDER: "${{ inputs.base_folder }}"
# IMAGE_TAG: "${{ inputs.docker_tag }}-${{ matrix.arch }}"
# EXIT_CODE: "1"
# EXTRA_COMMON: "${{ inputs.extra_common }}"
# - name: Show docker vulnerability output
# if: always()
# run: |
# echo "Scan output for ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-${ARCHITECTURE}"
# if [ -f .out/scan_results_docker.txt ]; then
# cat .out/scan_results_docker.txt
# fi
# env:
# ARCHITECTURE: '${{ matrix.arch }}'
# DOCKER_TAG: '${{ inputs.docker_tag }}'
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
name: Upload scan results
with:
name: "grype_${{ inputs.container_name }}_${{ matrix.arch }}.json"
path: .grype_out/grype_${{ inputs.container_name }}_${{ matrix.arch }}.json
Comment thread
anthony-nhs marked this conversation as resolved.
Outdated
Comment thread
anthony-nhs marked this conversation as resolved.
Outdated
- name: Check docker vulnerabilities - text output
run: |
make scan-image
env:
CONTAINER_NAME: '${{ inputs.container_name }}'
BASE_FOLDER: "${{ inputs.base_folder }}"
IMAGE_TAG: "${{ inputs.docker_tag }}-${{ matrix.arch }}"
- name: Show docker vulnerability output
if: always()
run: |
echo "Scan output for ghcr.io/nhsdigital/eps-devcontainers/base:${DOCKER_TAG}-${ARCHITECTURE}"
if [ -f .out/scan_results_docker.txt ]; then
cat .out/scan_results_docker.txt
fi
Comment thread
anthony-nhs marked this conversation as resolved.
Outdated
env:
ARCHITECTURE: '${{ matrix.arch }}'
DOCKER_TAG: '${{ inputs.docker_tag }}'
Comment thread
anthony-nhs marked this conversation as resolved.
Outdated
- name: Push tagged image and rebuild for github actions
run: |
echo "Pushing image..."
Expand Down
Loading
Loading