Skip to content

chore(deps): update docker.io/library/python:3.10.20 docker digest to… #10452

chore(deps): update docker.io/library/python:3.10.20 docker digest to…

chore(deps): update docker.io/library/python:3.10.20 docker digest to… #10452

Workflow file for this run

on:
push: {}
workflow_dispatch: {}
jobs:
setup:
runs-on: ubuntu-24.04
outputs:
image-names: ${{ steps.image-names.outputs.image_names }}
images-ci: ${{ steps.paths-filter.outputs.images }}
tools: ${{ steps.paths-filter.outputs.tools }}
validate-policy-bot-config: ${{ steps.paths-filter.outputs.policy-bot == 'true' }}
steps:
- uses: actions/checkout@v6
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4
id: paths-filter
with:
base: main
list-files: json
filters: |
images:
- 'images/**'
policy-bot:
- '.policy.yml'
tools:
- 'Makefile'
- 'Dockerfile'
- 'poetry.lock'
- 'pyproject.toml'
- run: |
set -x
wget https://github.com/mikefarah/yq/releases/download/v4.25.2/yq_linux_amd64 -O ${GITHUB_WORKSPACE}/yq
chmod +x ${GITHUB_WORKSPACE}/yq
- id: image-names
shell: bash
run: |
set -euo pipefail
if [[ "${{ steps.paths-filter.outputs.tools }}" == 'true' ]]; then
mapfile -t dirs < <(find images -mindepth 1 -maxdepth 1 | cut -d'/' -f2 | sort -u)
if (( ${#dirs[@]} == 0 )); then
images='[]'
else
printf -v images '[%s]' "$(printf '"%s",' "${dirs[@]}" | sed 's/,$//')"
fi
else
# Only images affected by the PR
images=$(echo ${{ steps.paths-filter.outputs.images_files }} | yq -o=json -I0 '.[] |= sub("images/([^/]+)/.*$", "${1}") | unique' -)
fi
echo "$images"
echo "IMAGE_NAMES=${images}" >> $GITHUB_OUTPUT
- run: echo ${{ steps.image-names.outputs.image_names }}
permissions:
contents: read
pull-requests: read
policy-bot:
name: Validate policy-bot configuration
needs: setup
if: needs.setup.outputs.validate-policy-bot-config == 'true'
uses: coopnorge/github-workflow-policy-bot-config-validation/.github/workflows/policy-bot-config-validation.yaml@v0
permissions:
contents: read
secrets:
policy-bot-server-url: ${{ secrets.POLICY_BOT_BASE_URL }}
image-ci:
runs-on: ubuntu-24.04
needs: ["setup"]
if: ${{ needs.setup.outputs.images-ci == 'true' || needs.setup.outputs.tools == 'true' }}
concurrency:
group: ${{ github.workflow }}-${{ matrix.image }}-${{ github.ref }}
cancel-in-progress: true
permissions:
id-token: write
packages: write
contents: read
strategy:
matrix:
image: ${{ fromJSON(needs.setup.outputs.image-names) }}
steps:
- uses: actions/checkout@v6
- name: Install poetry
run: pipx install poetry
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.14"
cache: "poetry"
cache-dependency-path: poetry.lock
- name: Run Poetry Install
id: toolchain
shell: bash
run: |
poetry install -vvv
- uses: crazy-max/ghaction-github-runtime@04d248b84655b509d8c44dc1d6f990c879747487 # v4
- uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4
- uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4
- name: Validate python
run: |
make VERBOSE=all validate-python
- name: Build images
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IMAGE_NAMES: ${{ matrix.image }}
run: |
export docker_image_build_args="--cache-from type=gha --cache-to type=gha,mode=max"
make VERBOSE=all validate-static build-images
- name: Tag images
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IMAGE_NAMES: ${{ matrix.image }}
run: |
make tag-images oci_remote_ref_prefixes=ghcr.io/${{ github.repository }}/e0/
make tag-images oci_remote_ref_prefixes=europe-north1-docker.pkg.dev/engineering-production-af50/images/
- name: Test images
env:
IMAGE_NAMES: ${{ matrix.image }}
run: |
make VERBOSE=all -j4 test
- name: Auth to GCP
if: github.ref == 'refs/heads/main'
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3
with:
workload_identity_provider: projects/943318002566/locations/global/workloadIdentityPools/github-actions/providers/github-actions-provider
service_account: gha-docker-images@engineering-production-af50.iam.gserviceaccount.com
create_credentials_file: true
- name: Login to GCP artifact registry
if: github.ref == 'refs/heads/main'
run: |
gcloud auth configure-docker europe-north1-docker.pkg.dev
- name: Push images
if: github.ref == 'refs/heads/main'
env:
IMAGE_NAMES: ${{ matrix.image }}
run: |
echo "${{ github.token }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin
make push-images oci_remote_ref_prefixes=ghcr.io/${{ github.repository }}/e0/
make push-images oci_remote_ref_prefixes=europe-north1-docker.pkg.dev/engineering-production-af50/images/
techdocs:
permissions:
contents: read
id-token: write
packages: read
pull-requests: read
name: TechDocs
uses: coopnorge/github-workflow-techdocs/.github/workflows/techdocs.yaml@v0
build:
needs:
- image-ci
- techdocs
- policy-bot
if: always()
runs-on: ubuntu-24.04
steps:
- run: exit 1
name: "Catch errors"
if: |
needs.image-ci.result == 'failure' ||
needs.techdocs.result == 'failure' ||
needs.policy-bot.result == 'failure' ||
needs.policy-bot.result == 'cancelled'
permissions: {}