Compare commits

..

2 Commits

Author SHA1 Message Date
CrazyMax
d2aace88c2 Merge pull request #1561 from docker/e2e-aws-ecr-oidc
Some checks failed
codeql / analyze (push) Failing after 2m37s
validate / prepare (push) Successful in 23s
zizmor / zizmor (push) Failing after 0s
test / test (push) Successful in 1m34s
validate / validate (push) Successful in 3m8s
e2e / build (Azure Container Registry, acr, officialgithubactions.azurecr.io, officialgithubactions.azurecr.io/test-docker-action, remote) (push) Failing after 2m22s
e2e / build (Google Artifact Registry, gar, us-east4-docker.pkg.dev, us-east4-docker.pkg.dev/sandbox-298914/docker-official-github-actions/test-docker-action, remote) (push) Failing after 2m19s
e2e / build (Docker Hub, dockerhub, , dockereng/build-push-action-test, remote) (push) Failing after 2m58s
e2e / build (GitHub, ghcr, ghcr.io, ghcr.io/docker/build-push-action-test, remote) (push) Failing after 3m0s
e2e / build (distribution, Distribution, none, local) (push) Failing after 57s
e2e / build (Artifactory, artifactory, infradock.jfrog.io, infradock.jfrog.io/test-ghaction/build-push-action, remote) (push) Failing after 3m27s
e2e / build (GitLab, gitlab, registry.gitlab.com, registry.gitlab.com/test1716/test, remote) (push) Failing after 3m25s
e2e / build (harbor, Harbor, none, local) (push) Failing after 40s
ci / git-context-query (push) Failing after 10s
e2e / build (Quay, quay, quay.io, quay.io/docker_build_team/ghactiontest, remote) (push) Failing after 1m25s
e2e / build (nexus, Nexus, none, local) (push) Failing after 43s
ci / path-context (push) Failing after 11s
ci / error (push) Failing after 14s
ci / docker-driver (push) Successful in 25s
ci / example (push) Failing after 59s
ci / error-buildx (push) Successful in 59s
ci / export-docker (push) Successful in 22s
e2e / build (AWS ECR Public, aws, public.ecr.aws, public.ecr.aws/q3b5f1u4/test-docker-action, remote) (push) Failing after 5m22s
ci / secret (push) Successful in 40s
ci / secret-files (push) Successful in 37s
ci / secret-envs (push) Successful in 35s
e2e / build (AWS ECR, aws, 175142243308.dkr.ecr.us-east-2.amazonaws.com, 175142243308.dkr.ecr.us-east-2.amazonaws.com/sandbox/test-docker-action, remote) (push) Failing after 5m43s
ci / network (push) Successful in 49s
ci / ulimit (push) Successful in 38s
ci / shm-size (push) Successful in 47s
ci / cgroup-parent (push) Successful in 46s
ci / add-hosts (push) Successful in 41s
ci / attests-compat (moby/buildkit:buildx-stable-1, v0.9.1) (push) Failing after 25s
ci / no-cache-filters (push) Successful in 32s
ci / attests-compat (moby/buildkit:buildx-stable-1, latest) (push) Successful in 1m36s
ci / attests-compat (moby/buildkit:latest, edge) (push) Successful in 1m35s
ci / provenance (mode=max, /tmp/buildx-build, binary) (push) Failing after 8s
ci / minimal (push) Successful in 4m44s
ci / provenance (mode=max, type=image,name=localhost:5000/name/app:latest,push=true, image) (push) Failing after 9s
ci / sbom (/tmp/buildx-build, binary) (push) Failing after 7s
ci / sbom (type=image,name=localhost:5000/name/app:latest,push=true, image) (push) Failing after 8s
ci / multi (multi) (push) Failing after 8s
ci / multi (multi-sudo) (push) Failing after 9s
ci / provenance (, type=image,name=localhost:5000/name/app:latest,push=true, image) (push) Failing after 1m33s
ci / digest (docker, false, true) (push) Failing after 10s
ci / digest (docker, true, false) (push) Failing after 9s
ci / digest (docker-container, false, false) (push) Failing after 8s
ci / attests-compat (moby/buildkit:v0.10.6, latest) (push) Successful in 2m0s
ci / git-context (push) Failing after 5m8s
ci / digest (docker-container, false, true) (push) Failing after 8s
ci / digest (docker-container, true, false) (push) Failing after 9s
ci / git-context-secret (push) Failing after 4m59s
ci / digest (docker, false, false) (push) Successful in 29s
ci / registry-cache (push) Failing after 10s
ci / github-cache (push) Failing after 8s
ci / provenance (, /tmp/buildx-build, binary) (push) Failing after 2m12s
ci / proxy-docker-config (push) Failing after 13s
ci / docker-config-malformed (push) Successful in 27s
ci / annotations (push) Failing after 9s
ci / proxy-buildkitd (push) Failing after 16s
ci / multi-output (push) Failing after 8s
ci / named-context-pin (push) Successful in 41s
ci / standalone (push) Successful in 45s
ci / named-context-docker (push) Successful in 49s
ci / named-context-container (push) Successful in 48s
ci / summary-not-supported (push) Failing after 17s
ci / local-cache (push) Failing after 1m11s
ci / checks (edge) (push) Successful in 32s
ci / load-and-push (push) Failing after 1m1s
ci / checks (latest) (push) Successful in 31s
ci / checks (v0.14.1) (push) Successful in 39s
ci / summary-disable (push) Failing after 2m32s
ci / record-upload-disable (push) Failing after 2m27s
ci / record-retention-days (0) (push) Failing after 2m23s
ci / record-retention-days (2) (push) Failing after 2m14s
ci / annotations-disabled (push) Successful in 39s
ci / call-check (push) Successful in 35s
ci / no-default-attestations (push) Failing after 1m31s
ci(e2e): use OIDC for AWS ECR
2026-06-11 23:21:40 +02:00
CrazyMax
ffca5157f0 ci(e2e): use OIDC for AWS ECR
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-11 21:54:33 +02:00
4 changed files with 40 additions and 29 deletions

View File

@@ -10,6 +10,9 @@ on:
type: type:
required: true required: true
type: string type: string
provider:
required: true
type: string
name: name:
required: true required: true
type: string type: string
@@ -108,9 +111,16 @@ jobs:
driver-opts: | driver-opts: |
image=${{ matrix.buildkit_image }} image=${{ matrix.buildkit_image }}
network=host network=host
-
name: Configure AWS credentials
if: inputs.provider == 'aws'
uses: aws-actions/configure-aws-credentials@e7f100cf4c008499ea8adda475de1042d6975c7b # v6.2.0
with:
role-to-assume: arn:aws:iam::175142243308:role/official_gha_cicd
aws-region: us-east-1
- -
name: Login to Registry name: Login to Registry
if: github.event_name != 'pull_request' && (inputs.type == 'remote' || env.REGISTRY_USER != '') if: github.event_name != 'pull_request' && (inputs.type == 'remote' || inputs.provider == 'aws' || env.REGISTRY_USER != '')
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0 uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
with: with:
registry: ${{ env.REGISTRY_FQDN || inputs.registry }} registry: ${{ env.REGISTRY_FQDN || inputs.registry }}

View File

@@ -22,6 +22,7 @@ jobs:
uses: ./.github/workflows/.e2e-run.yml uses: ./.github/workflows/.e2e-run.yml
permissions: permissions:
contents: read contents: read
id-token: write # to get AWS credentials
packages: write # to push image to GHCR packages: write # to push image to GHCR
strategy: strategy:
fail-fast: false fail-fast: false
@@ -30,100 +31,100 @@ jobs:
- -
name: Distribution name: Distribution
id: distribution id: distribution
auth: none provider: none
type: local type: local
- -
name: Docker Hub name: Docker Hub
registry: '' registry: ''
slug: dockereng/build-push-action-test slug: dockereng/build-push-action-test
auth: dockerhub provider: dockerhub
type: remote type: remote
- -
name: GitHub name: GitHub
registry: ghcr.io registry: ghcr.io
slug: ghcr.io/docker/build-push-action-test slug: ghcr.io/docker/build-push-action-test
auth: ghcr provider: ghcr
type: remote type: remote
- -
name: GitLab name: GitLab
registry: registry.gitlab.com registry: registry.gitlab.com
slug: registry.gitlab.com/test1716/test slug: registry.gitlab.com/test1716/test
auth: gitlab provider: gitlab
type: remote type: remote
- -
name: AWS ECR name: AWS ECR
registry: 175142243308.dkr.ecr.us-east-2.amazonaws.com registry: 175142243308.dkr.ecr.us-east-2.amazonaws.com
slug: 175142243308.dkr.ecr.us-east-2.amazonaws.com/sandbox/test-docker-action slug: 175142243308.dkr.ecr.us-east-2.amazonaws.com/sandbox/test-docker-action
auth: aws provider: aws
type: remote type: remote
- -
name: AWS ECR Public name: AWS ECR Public
registry: public.ecr.aws registry: public.ecr.aws
slug: public.ecr.aws/q3b5f1u4/test-docker-action slug: public.ecr.aws/q3b5f1u4/test-docker-action
auth: aws provider: aws
type: remote type: remote
- -
name: Google Artifact Registry name: Google Artifact Registry
registry: us-east4-docker.pkg.dev registry: us-east4-docker.pkg.dev
slug: us-east4-docker.pkg.dev/sandbox-298914/docker-official-github-actions/test-docker-action slug: us-east4-docker.pkg.dev/sandbox-298914/docker-official-github-actions/test-docker-action
auth: gar provider: gar
type: remote type: remote
- -
name: Azure Container Registry name: Azure Container Registry
registry: officialgithubactions.azurecr.io registry: officialgithubactions.azurecr.io
slug: officialgithubactions.azurecr.io/test-docker-action slug: officialgithubactions.azurecr.io/test-docker-action
auth: acr provider: acr
type: remote type: remote
- -
name: Quay name: Quay
registry: quay.io registry: quay.io
slug: quay.io/docker_build_team/ghactiontest slug: quay.io/docker_build_team/ghactiontest
auth: quay provider: quay
type: remote type: remote
- -
name: Artifactory name: Artifactory
registry: infradock.jfrog.io registry: infradock.jfrog.io
slug: infradock.jfrog.io/test-ghaction/build-push-action slug: infradock.jfrog.io/test-ghaction/build-push-action
auth: artifactory provider: artifactory
type: remote type: remote
- -
name: Harbor name: Harbor
id: harbor id: harbor
auth: none provider: none
type: local type: local
- -
name: Nexus name: Nexus
id: nexus id: nexus
auth: none provider: none
type: local type: local
with: with:
id: ${{ matrix.id }} id: ${{ matrix.id }}
type: ${{ matrix.type }} type: ${{ matrix.type }}
provider: ${{ matrix.provider }}
name: ${{ matrix.name }} name: ${{ matrix.name }}
registry: ${{ matrix.registry }} registry: ${{ matrix.registry }}
slug: ${{ matrix.slug }} slug: ${{ matrix.slug }}
secrets: secrets:
# Pass only the registry-specific secrets needed by each matrix entry. # Pass only the registry-specific secrets needed by each matrix entry.
# GHCR uses the called workflow's GITHUB_TOKEN fallback. # GHCR uses the called workflow's GITHUB_TOKEN fallback.
# AWS ECR uses OIDC to get credentials.
registry_username: >- registry_username: >-
${{ ${{
matrix.auth == 'dockerhub' && vars.DOCKERPUBLICBOT_USERNAME || matrix.provider == 'dockerhub' && vars.DOCKERPUBLICBOT_USERNAME ||
matrix.auth == 'gitlab' && secrets.GITLAB_USERNAME || matrix.provider == 'gitlab' && secrets.GITLAB_USERNAME ||
matrix.auth == 'aws' && secrets.AWS_ACCESS_KEY_ID || matrix.provider == 'gar' && secrets.GAR_USERNAME ||
matrix.auth == 'gar' && secrets.GAR_USERNAME || matrix.provider == 'acr' && secrets.AZURE_CLIENT_ID ||
matrix.auth == 'acr' && secrets.AZURE_CLIENT_ID || matrix.provider == 'quay' && secrets.QUAY_USERNAME ||
matrix.auth == 'quay' && secrets.QUAY_USERNAME || matrix.provider == 'artifactory' && secrets.ARTIFACTORY_USERNAME ||
matrix.auth == 'artifactory' && secrets.ARTIFACTORY_USERNAME ||
'' ''
}} }}
registry_password: >- registry_password: >-
${{ ${{
matrix.auth == 'dockerhub' && secrets.DOCKERPUBLICBOT_WRITE_PAT || matrix.provider == 'dockerhub' && secrets.DOCKERPUBLICBOT_WRITE_PAT ||
matrix.auth == 'gitlab' && secrets.GITLAB_TOKEN || matrix.provider == 'gitlab' && secrets.GITLAB_TOKEN ||
matrix.auth == 'aws' && secrets.AWS_SECRET_ACCESS_KEY || matrix.provider == 'gar' && secrets.GAR_JSON_KEY ||
matrix.auth == 'gar' && secrets.GAR_JSON_KEY || matrix.provider == 'acr' && secrets.AZURE_CLIENT_SECRET ||
matrix.auth == 'acr' && secrets.AZURE_CLIENT_SECRET || matrix.provider == 'quay' && secrets.QUAY_TOKEN ||
matrix.auth == 'quay' && secrets.QUAY_TOKEN || matrix.provider == 'artifactory' && secrets.ARTIFACTORY_TOKEN ||
matrix.auth == 'artifactory' && secrets.ARTIFACTORY_TOKEN ||
'' ''
}} }}

View File

@@ -11,7 +11,7 @@ on:
jobs: jobs:
run: run:
uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@716fd1c51a46c5d93a41d44a94b439c9ee802536 # v1.10.0 uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@9ba6e6f9450baf3b1237f8035c1fdc45932510bd # v1.8.0
permissions: permissions:
contents: read contents: read
pull-requests: write pull-requests: write

View File

@@ -19,7 +19,7 @@ on:
jobs: jobs:
zizmor: zizmor:
uses: crazy-max/.github/.github/workflows/zizmor.yml@716fd1c51a46c5d93a41d44a94b439c9ee802536 # v1.10.0 uses: crazy-max/.github/.github/workflows/zizmor.yml@9ba6e6f9450baf3b1237f8035c1fdc45932510bd # v1.8.0
permissions: permissions:
contents: read contents: read
security-events: write security-events: write