Skip to content

Commit b351118

Browse files
ci: Test published container images
Signed-off-by: Mahendra Paipuri <[email protected]>
1 parent 0d551d4 commit b351118

File tree

3 files changed

+78
-0
lines changed

3 files changed

+78
-0
lines changed

.github/workflows/ci.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,16 @@ jobs:
9191
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
9292
quay_api_token: ${{ secrets.QUAY_API_TOKEN }}
9393

94+
docker-test:
95+
needs: [docker]
96+
uses: ./.github/workflows/step_tests-remote-images.yml
97+
# Since workflow_dispatch inputs are only available on manual triggers
98+
# we need to set default values to the context vars here
99+
with:
100+
registry: ${{ inputs.docker_hub_registry || 'docker.io' }}
101+
organization: ${{ inputs.docker_hub_organization || 'mahendrapaipuri' }}
102+
registry_provider: ${{ inputs.docker_hub_registry_provider || 'dockerhub' }}
103+
94104
quay:
95105
needs: [build]
96106
uses: ./.github/workflows/step_images.yml
@@ -104,3 +114,13 @@ jobs:
104114
login: ${{ secrets.QUAY_LOGIN }}
105115
password: ${{ secrets.QUAY_PASSWORD }}
106116
quay_api_token: ${{ secrets.QUAY_API_TOKEN }}
117+
118+
quay-test:
119+
needs: [quay]
120+
uses: ./.github/workflows/step_tests-remote-images.yml
121+
# Since workflow_dispatch inputs are only available on manual triggers
122+
# we need to set default values to the context vars here
123+
with:
124+
registry: ${{ inputs.quay_registry || 'quay.io' }}
125+
organization: ${{ inputs.quay_organization || 'mahendrapaipuri' }}
126+
registry_provider: ${{ inputs.quay_registry_provider || 'quay' }}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: test-remote-images
2+
run-name: Test remote container images
3+
4+
on:
5+
workflow_call:
6+
inputs:
7+
registry:
8+
type: string
9+
description: Registry
10+
organization:
11+
type: string
12+
description: Organization
13+
registry_provider:
14+
type: string
15+
description: Registry Provider
16+
17+
jobs:
18+
images:
19+
name: images
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v4
24+
25+
- name: Get step vars
26+
id: vars
27+
env:
28+
REGISTRY_PROVIDER: ${{ inputs.registry_provider }}
29+
run: |
30+
if [[ "${GITHUB_EVENT_NAME}" == "push" ]]; then
31+
echo "branch_name=$(echo ${GITHUB_REF##*/})" >> $GITHUB_OUTPUT
32+
elif [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
33+
echo "branch_name=$(echo $GITHUB_BASE_REF)" >> $GITHUB_OUTPUT
34+
else
35+
echo "branch_name=nightly" >> $GITHUB_OUTPUT
36+
fi
37+
38+
# Repo name for container registries
39+
if [[ "${REGISTRY_PROVIDER}" == "dockerhub" ]]; then
40+
echo "repo_name=$(make docker-repo-name)" >> $GITHUB_OUTPUT
41+
else
42+
export DOCKER_REPO="$(echo quay.io/${GITHUB_REPOSITORY_OWNER} | tr -d '-')"
43+
echo "repo_name=$(make docker-repo-name)" >> $GITHUB_OUTPUT
44+
fi
45+
46+
- name: Pull remote container images
47+
run: |
48+
make docker-pull DOCKER_IMAGE_TAG=${{ steps.vars.outputs.branch_name }} DOCKER_REPO=${{ inputs.registry }}/${{ inputs.organization }}
49+
docker images
50+
51+
- name: Test remote container images
52+
run: make test-docker DOCKER_IMAGE_TAG=${{ steps.vars.outputs.branch_name }} DOCKER_REPO=${{ inputs.registry }}/${{ inputs.organization }}

Makefile.common

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ DOCKER_ARCHS ?= amd64
7777
BUILD_DOCKER_ARCHS = $(addprefix common-docker-,$(DOCKER_ARCHS))
7878
PUBLISH_DOCKER_ARCHS = $(addprefix common-docker-publish-,$(DOCKER_ARCHS))
7979
TAG_DOCKER_ARCHS = $(addprefix common-docker-tag-latest-,$(DOCKER_ARCHS))
80+
PULL_DOCKER_ARCHS = $(addprefix common-docker-pull-,$(DOCKER_ARCHS))
8081

8182
SANITIZED_DOCKER_IMAGE_TAG := $(subst +,-,$(DOCKER_IMAGE_TAG))
8283

@@ -226,6 +227,11 @@ $(TAG_DOCKER_ARCHS): common-docker-tag-latest-%:
226227
docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:latest"
227228
docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:v$(DOCKER_MAJOR_VERSION_TAG)"
228229

230+
.PHONY: common-docker-pull $(PULL_DOCKER_ARCHS)
231+
common-docker-pull: $(PULL_DOCKER_ARCHS)
232+
$(PULL_DOCKER_ARCHS): common-docker-pull-%:
233+
docker pull "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)"
234+
229235
.PHONY: common-docker-manifest
230236
common-docker-manifest:
231237
DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create -a "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(SANITIZED_DOCKER_IMAGE_TAG)" $(foreach ARCH,$(DOCKER_ARCHS),$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$(ARCH):$(SANITIZED_DOCKER_IMAGE_TAG))

0 commit comments

Comments
 (0)