Compare commits

..

3 Commits

Author SHA1 Message Date
CrazyMax
2fe276c794 ci(e2e): use OIDC for AWS ECR
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-10 13:05:34 +02:00
CrazyMax
f72b3cf665 Merge pull request #1555 from crazy-max/e2e-dockerhub
ci(e2e): use org-owned Docker Hub credentials for e2e pushes
2026-06-08 19:08:26 +02:00
CrazyMax
405b217da0 ci(e2e): use org-owned Docker Hub credentials for e2e pushes
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-06-04 16:03:24 +02:00
3 changed files with 41 additions and 30 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

@@ -35,12 +35,12 @@ jobs:
node-version: ${{ env.NODE_VERSION }} node-version: ${{ env.NODE_VERSION }}
- -
name: Initialize CodeQL name: Initialize CodeQL
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0
with: with:
languages: javascript-typescript languages: javascript-typescript
build-mode: none build-mode: none
- -
name: Perform CodeQL Analysis name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0
with: with:
category: "/language:javascript-typescript" category: "/language:javascript-typescript"

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: ghactionstest/ghactionstest 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' && secrets.DOCKERHUB_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.DOCKERHUB_TOKEN || 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 ||
'' ''
}} }}