mirror of
https://github.com/zabbix/zabbix-docker.git
synced 2025-06-24 20:01:43 +02:00
Prepare universal workflow
This commit is contained in:
parent
eab2348fc5
commit
87b28015ec
61
.github/workflows/images_build_rhel.yml
vendored
61
.github/workflows/images_build_rhel.yml
vendored
@ -24,6 +24,7 @@ env:
|
|||||||
|
|
||||||
REGISTRY: "quay.io"
|
REGISTRY: "quay.io"
|
||||||
REGISTRY_NAMESPACE: "redhat-isv-containers"
|
REGISTRY_NAMESPACE: "redhat-isv-containers"
|
||||||
|
PREFLIGHT_IMAGE: "quay.io/opdev/preflight:stable"
|
||||||
PFLT_LOGLEVEL: "warn"
|
PFLT_LOGLEVEL: "warn"
|
||||||
PFLT_ARTIFACTS: "/tmp/artifacts"
|
PFLT_ARTIFACTS: "/tmp/artifacts"
|
||||||
|
|
||||||
@ -285,7 +286,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
ARCH: ${{ matrix.arch }}
|
ARCH: ${{ matrix.arch }}
|
||||||
run: |
|
run: |
|
||||||
echo "arch=${ARCH,,}" >> $GITHUB_OUTPUT
|
echo "arch=${ARCH,,}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Detect Build Base Image
|
- name: Detect Build Base Image
|
||||||
id: build_base_image
|
id: build_base_image
|
||||||
@ -309,10 +310,10 @@ jobs:
|
|||||||
MATRIX_BUILD: ${{ matrix.build }}
|
MATRIX_BUILD: ${{ matrix.build }}
|
||||||
CURRENT_BRANCH: ${{ needs.init_build.outputs.current_branch }}
|
CURRENT_BRANCH: ${{ needs.init_build.outputs.current_branch }}
|
||||||
run: |
|
run: |
|
||||||
IMAGE_NAME=$(jq --raw-output --argjson data "$REDHAT_CERTIFY_CREDENTIALS" -n "\$data.\"$CURRENT_BRANCH\".components.\"$MATRIX_BUILD\".login")
|
IMAGE_NAME=$(jq --raw-output --argjson data "$REDHAT_CERTIFY_CREDENTIALS" -n "\$data.\"$CURRENT_BRANCH\".components.\"$MATRIX_BUILD\".login")
|
||||||
|
|
||||||
echo "::add-mask::$IMAGE_NAME"
|
echo "::add-mask::$IMAGE_NAME"
|
||||||
echo "image_name=$IMAGE_NAME" >> $GITHUB_OUTPUT
|
echo "image_name=$IMAGE_NAME" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Generate credentials
|
- name: Generate credentials
|
||||||
id: login_credentials
|
id: login_credentials
|
||||||
@ -321,15 +322,15 @@ jobs:
|
|||||||
MATRIX_BUILD: ${{ matrix.build }}
|
MATRIX_BUILD: ${{ matrix.build }}
|
||||||
CURRENT_BRANCH: ${{ needs.init_build.outputs.current_branch }}
|
CURRENT_BRANCH: ${{ needs.init_build.outputs.current_branch }}
|
||||||
run: |
|
run: |
|
||||||
IMAGE_NAME=$(jq --raw-output --argjson data "$REDHAT_CERTIFY_CREDENTIALS" -n "\$data.\"$CURRENT_BRANCH\".components.\"$MATRIX_BUILD\".login")
|
IMAGE_NAME=$(jq --raw-output --argjson data "$REDHAT_CERTIFY_CREDENTIALS" -n "\$data.\"$CURRENT_BRANCH\".components.\"$MATRIX_BUILD\".login")
|
||||||
REGISTRY_PASSWORD=$(jq --raw-output --argjson data "$REDHAT_CERTIFY_CREDENTIALS" -n "\$data.\"$CURRENT_BRANCH\".components.\"$MATRIX_BUILD\".secret")
|
REGISTRY_PASSWORD=$(jq --raw-output --argjson data "$REDHAT_CERTIFY_CREDENTIALS" -n "\$data.\"$CURRENT_BRANCH\".components.\"$MATRIX_BUILD\".secret")
|
||||||
|
|
||||||
echo "::add-mask::$IMAGE_NAME"
|
echo "::add-mask::$IMAGE_NAME"
|
||||||
echo "::add-mask::redhat-isv-containers+$IMAGE_NAME-robot"
|
echo "::add-mask::redhat-isv-containers+$IMAGE_NAME-robot"
|
||||||
echo "::add-mask::$REGISTRY_PASSWORD"
|
echo "::add-mask::$REGISTRY_PASSWORD"
|
||||||
|
|
||||||
echo "username=$IMAGE_NAME" >> $GITHUB_OUTPUT
|
echo "username=$IMAGE_NAME" >> $GITHUB_OUTPUT
|
||||||
echo "password=$REGISTRY_PASSWORD" >> $GITHUB_OUTPUT
|
echo "password=$REGISTRY_PASSWORD" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Log in to Quay.io
|
- name: Log in to Quay.io
|
||||||
uses: redhat-actions/podman-login@v1.6
|
uses: redhat-actions/podman-login@v1.6
|
||||||
@ -415,9 +416,15 @@ jobs:
|
|||||||
PFLT_ARTIFACTS: ${{ env.PFLT_ARTIFACTS }}
|
PFLT_ARTIFACTS: ${{ env.PFLT_ARTIFACTS }}
|
||||||
PFLT_LOGLEVEL: ${{ env.PFLT_LOGLEVEL }}
|
PFLT_LOGLEVEL: ${{ env.PFLT_LOGLEVEL }}
|
||||||
IMAGE_TAG: ${{ steps.build_image.outputs.image-with-tag }}
|
IMAGE_TAG: ${{ steps.build_image.outputs.image-with-tag }}
|
||||||
|
PREFLIGHT_IMAGE: ${{ env.PREFLIGHT_IMAGE }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p $PFLT_ARTIFACTS
|
mkdir -p $PFLT_ARTIFACTS
|
||||||
podman run \
|
echo "::group::Pull preflight image"
|
||||||
|
podman pull "$PREFLIGHT_IMAGE"
|
||||||
|
echo "::endgroup::"
|
||||||
|
|
||||||
|
echo "::group::Perform certification tests"
|
||||||
|
podman run \
|
||||||
-it \
|
-it \
|
||||||
--rm \
|
--rm \
|
||||||
--security-opt=label=disable \
|
--security-opt=label=disable \
|
||||||
@ -429,7 +436,9 @@ jobs:
|
|||||||
--env PFLT_DOCKERCONFIG=/temp-authfile.json \
|
--env PFLT_DOCKERCONFIG=/temp-authfile.json \
|
||||||
-v $PFLT_ARTIFACTS:/artifacts \
|
-v $PFLT_ARTIFACTS:/artifacts \
|
||||||
-v $PFLT_DOCKERCONFIG:/temp-authfile.json:ro \
|
-v $PFLT_DOCKERCONFIG:/temp-authfile.json:ro \
|
||||||
quay.io/opdev/preflight:stable check container $IMAGE_TAG --submit
|
"$PREFLIGHT_IMAGE" check container $IMAGE_TAG --submit
|
||||||
|
podman rmi -i -f "$PREFLIGHT_IMAGE"
|
||||||
|
echo "::endgroup::"
|
||||||
|
|
||||||
- name: Push to RedHat certification procedure
|
- name: Push to RedHat certification procedure
|
||||||
id: push_to_registry_all_tags
|
id: push_to_registry_all_tags
|
||||||
@ -440,9 +449,16 @@ jobs:
|
|||||||
|
|
||||||
- name: Cleanup artifacts
|
- name: Cleanup artifacts
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
|
env:
|
||||||
|
PREFLIGHT_IMAGE: ${{ env.PREFLIGHT_IMAGE }}
|
||||||
|
PFLT_ARTIFACTS: ${{ env.PFLT_ARTIFACTS }}
|
||||||
|
TAGS: ${{ steps.meta.outputs.tags }}
|
||||||
run: |
|
run: |
|
||||||
echo "${{ steps.meta.outputs.tags }}" | while IFS= read -r image_name ; do podman rmi -i -f $image_name; done
|
echo "::group::Post build actions"
|
||||||
rm -rf ${{ env.PFLT_ARTIFACTS }}
|
echo "$TAGS" | while IFS= read -r image_name ; do podman rmi -i -f "$image_name"; done
|
||||||
|
rm -rf "$PFLT_ARTIFACTS"
|
||||||
|
podman rmi -i -f "$PREFLIGHT_IMAGE"
|
||||||
|
echo "::endgroup::"
|
||||||
|
|
||||||
clean_artifacts:
|
clean_artifacts:
|
||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
@ -451,22 +467,22 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
build: [mysql, sqlite3]
|
build: [build-mysql, build-sqlite3]
|
||||||
arch: [X64, ARM64]
|
arch: [X64, ARM64]
|
||||||
runs-on: [self-hosted, linux, "${{ matrix.arch }}"]
|
runs-on: [self-hosted, linux, "${{ matrix.arch }}"]
|
||||||
if: ${{ always() && needs.build_base_database.result == 'success' }}
|
if: ${{ always() && needs.build_base_database.result == 'success' }}
|
||||||
permissions: {}
|
permissions: {}
|
||||||
steps:
|
steps:
|
||||||
- name: Download SHA256 tag of build-${{ matrix.build }}:${{ matrix.arch }}
|
- name: Download SHA256 tag of ${{ matrix.build }}:${{ matrix.arch }}
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: build_${{ matrix.build }}_${{ matrix.arch }}
|
path: ${{ matrix.build }}_${{ matrix.arch }}
|
||||||
key: build-${{ matrix.build }}-${{ matrix.arch }}-${{ github.run_id }}
|
key: ${{ matrix.build }}-${{ matrix.arch }}-${{ github.run_id }}
|
||||||
|
|
||||||
- name: Remove build-${{ matrix.build }}:${{ matrix.arch }} SHA256 tag
|
- name: Remove ${{ matrix.build }}:${{ matrix.arch }} SHA256 tag
|
||||||
env:
|
env:
|
||||||
MATRIX_ARCH: ${{ matrix.arch }}
|
MATRIX_ARCH: ${{ matrix.arch }}
|
||||||
BASE_IMAGE: build_${{ matrix.build }}
|
BASE_IMAGE: ${{ matrix.build }}
|
||||||
IMAGES_PREFIX: ${{ env.IMAGES_PREFIX }}
|
IMAGES_PREFIX: ${{ env.IMAGES_PREFIX }}
|
||||||
run: |
|
run: |
|
||||||
BASE_TAG=$(cat "${BASE_IMAGE}_${MATRIX_ARCH}")
|
BASE_TAG=$(cat "${BASE_IMAGE}_${MATRIX_ARCH}")
|
||||||
@ -482,7 +498,6 @@ jobs:
|
|||||||
|
|
||||||
|
|
||||||
- name: Remove ${{ env.BASE_BUILD_NAME }}:${{ matrix.arch }} SHA256 tag
|
- name: Remove ${{ env.BASE_BUILD_NAME }}:${{ matrix.arch }} SHA256 tag
|
||||||
if: ${{ matrix.build == 'mysql' }}
|
|
||||||
env:
|
env:
|
||||||
MATRIX_ARCH: ${{ matrix.arch }}
|
MATRIX_ARCH: ${{ matrix.arch }}
|
||||||
BASE_IMAGE: ${{ env.BASE_BUILD_NAME }}
|
BASE_IMAGE: ${{ env.BASE_BUILD_NAME }}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user