Skip to content

bundle test

bundle test #86

name: operator-bundle-and-catalog-builder-ci
on:
push:
branches:
- operator_buider_ci_add_bundle
pull_request:
workflow_dispatch:
inputs:
production:
description: 'Click the checkbox for production image'
default: false
type: boolean
required: false
env:
IMAGE_VERSION: 'v0.9.1'
jobs:
prepare_env:
name: "Prepare env"
runs-on: ubuntu-latest
env:
PRODUCTION: "${{ inputs.production }}"
BUILD_NUMBER: "${{ github.run_number }}"
GITHUB_SHA: "${{ github.sha }}"
OPERATOR_PROD_REPOSITORY: csiblock/ibm-block-csi-operator
OPERATOR_STAGING_REPOSITORY: csiblock/ibm-block-csi-operator-staging
BUNDLE_OPERATOR_PROD_REPOSITORY: csiblock/ibm-block-csi-operator-bundle
BUNDLE_OPERATOR_STAGING_REPOSITORY: csiblock/ibm-block-csi-operator-bundle-staging
CATALOG_OPERATOR_PROD_REPOSITORY: csiblock/ibm-block-csi-operator-catalog-source
CATALOG_OPERATOR_STAGING_REPOSITORY: csiblock/ibm-block-csi-operator-catalog-source
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Setup dependencies
id: setup_dependencies
run: |
build/ci/github_actions/setup_ci_dependencies.sh
outputs:
operator_repository: "${{ steps.setup_dependencies.outputs.operator_repository }}"
bundle_repository: "${{ steps.setup_dependencies.outputs.bundle_repository }}"
catalog_repository: "${{ steps.setup_dependencies.outputs.catalog_repository }}"
specific_tag: "${{ steps.setup_dependencies.outputs.specific_tag }}"
global_tag: "${{ steps.setup_dependencies.outputs.global_tag }}"
#================================================================================================
#================================================================================================
build_and_push_multiarch_operator_and_catalog_images:
name: "build and push operator image"
runs-on: ubuntu-latest
env:
REGISTRY: quay.io
needs:
- prepare_env
steps:
- name: Checkout
uses: actions/[email protected]
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.operator_repository }}
tags: |
type=raw,value=${{ needs.prepare_env.outputs.global_tag }}
type=raw,value=${{ needs.prepare_env.outputs.specific_tag }}
labels: |
commit=${{ github.sha }}
- name: Login to quay.io
uses: docker/login-action@v2
with:
registry: quay.io
username: '${{ secrets.CSIBLOCK_DOCKER_REGISTRY_USERNAME }}'
password: '${{ secrets.CSIBLOCK_DOCKER_REGISTRY_PASSWORD }}'
- name: replace operator image path in csv
run: |
set -x
echo - 1. replace operator tag in csv
pwd
IMAGEPATH='deploy/olm-catalog/ibm-block-csi-operator/1.12.0/manifests/ibm-block-csi-operator.clusterserviceversion.yaml'
IMAGESSTR1='Image\: registry.connect.redhat.com\/ibm\/ibm-block-csi-operator\:1.12.0'
IMAGESSTR2='Image\: ${{ env.REGISTRY }}\/${{ needs.prepare_env.outputs.operator_repository }}\:${{ needs.prepare_env.outputs.specific_tag }}'
cat $IMAGEPATH | grep image:
sed -i "s|$IMAGESSTR1|$IMAGESSTR2|g" "$IMAGEPATH"
IMAGESSTR1='image\: registry.connect.redhat.com\/ibm\/ibm-block-csi-operator\:1.12.0'
IMAGESSTR2='image\: ${{ env.REGISTRY }}\/${{ needs.prepare_env.outputs.operator_repository }}\:${{ needs.prepare_env.outputs.specific_tag }}'
sed -i "s|$IMAGESSTR1|$IMAGESSTR2|g" "$IMAGEPATH"
cat $IMAGEPATH | grep image:
echo - 2. add operator tag in common file
DEFAULT_IMAGE_TAG="DEFAULT_IMAGE_TAG=${{ needs.prepare_env.outputs.specific_tag }}"
DEFAULT_IMAGE_TAG="DEFAULT_IMAGE_TAG="v0.9.1_b85_f8b5052_operator_buider_ci_add_bundle"
DEFAULT_IMAGE_TAG_PATH="hack/common.sh"
echo $DEFAULT_IMAGE_TAG >> $DEFAULT_IMAGE_TAG_PATH
cat $DEFAULT_IMAGE_TAG_PATH | grep DEFAULT_IMAGE_TAG
# - name: Build and push operator image
# uses: docker/build-push-action@v3
# with:
# context: .
# platforms: linux/amd64,linux/ppc64le,linux/s390x
# push: true
# tags: ${{ steps.meta.outputs.tags }}
# labels: ${{ steps.meta.outputs.labels }}
# file: build/Dockerfile.operator
# cache-from: type=gha
# cache-to: type=gha,mode=max
# build-args: |
# VERSION: ${{ env.IMAGE_VERSION }}
# BUILD_NUMBER: ${{ github.run_number }}
#
# - name: show chosen image
# run: |
# echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.operator_repository }}:${{ needs.prepare_env.outputs.specific_tag }}
# echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.operator_repository }}:${{ needs.prepare_env.outputs.global_tag }}
# - name: save image names
# run: |
# echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.operator_repository }} >> /tmp/operator_images.txt
# echo ${{ needs.prepare_env.outputs.specific_tag }} >> /tmp/operator_images.txt
# echo ${{ needs.prepare_env.outputs.global_tag }} >> /tmp/operator_images.txt
# - uses: actions/upload-artifact@v3
# with:
# name: images
# path: /tmp/operator_images.txt
# retention-days: 90
#================================================================================================
#brkd remove cat part
# - name: test parameters
# run: |
# set -x
# echo "tags: ${{ steps.meta.outputs.tags }}"
# echo "labels: ${{ steps.meta.outputs.labels }}"
# echo "VERSION: ${{ env.IMAGE_VERSION }}"
# echo "BUILD_NUMBER: ${{ github.run_number }}"
# echo "${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.bundle_repository }}:${{ needs.prepare_env.outputs.specific_tag }}"
# echo "${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.bundle_repository }}:${{ needs.prepare_env.outputs.global_tag }}"
# echo "operator_repository: "${{ steps.setup_dependencies.outputs.operator_repository }}""
# echo "bundle_repository: "${{ steps.setup_dependencies.outputs.bundle_repository }}""
# echo "catalog_repository: "${{ steps.setup_dependencies.outputs.catalog_repository }}""
# echo "specific_tag: "${{ steps.setup_dependencies.outputs.specific_tag }}""
# echo "global_tag: "${{ steps.setup_dependencies.outputs.global_tag }}""
- name: build and push operator bundle image
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64,linux/ppc64le,linux/s390x
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
file: deploy/olm-catalog/ibm-block-csi-operator/1.12.0/bundle-1.12.0.Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
VERSION: ${{ env.IMAGE_VERSION }}
BUILD_NUMBER: ${{ github.run_number }}
- name: show chosen image
run: |
echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.bundle_repository }}:${{ needs.prepare_env.outputs.specific_tag }}
echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.bundle_repository }}:${{ needs.prepare_env.outputs.global_tag }}
- name: save image names
run: |
echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.bundle_repository }} >> /tmp/bundle_images.txt
echo ${{ needs.prepare_env.outputs.specific_tag }} >> /tmp/bundle_images.txt
echo ${{ needs.prepare_env.outputs.global_tag }} >> /tmp/bundle_images.txt
- uses: actions/upload-artifact@v3
with:
name: images
path: /tmp/bundle_images.txt
retention-days: 90
#================================================================================================
#brkd remove cat part
# - name: test parameters
# run: |
# set -x
# echo "tags: ${{ steps.meta.outputs.tags }}"
# echo "labels: ${{ steps.meta.outputs.labels }}"
# echo "VERSION: ${{ env.IMAGE_VERSION }}"
# echo "BUILD_NUMBER: ${{ github.run_number }}"
# echo "${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.bundle_repository }}:${{ needs.prepare_env.outputs.specific_tag }}"
# echo "${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.bundle_repository }}:${{ needs.prepare_env.outputs.global_tag }}"
# echo "operator_repository: "${{ steps.setup_dependencies.outputs.operator_repository }}""
# echo "bundle_repository: "${{ steps.setup_dependencies.outputs.bundle_repository }}""
# echo "catalog_repository: "${{ steps.setup_dependencies.outputs.catalog_repository }}""
# echo "specific_tag: "${{ steps.setup_dependencies.outputs.specific_tag }}""
# echo "global_tag: "${{ steps.setup_dependencies.outputs.global_tag }}""
#brkd remove cat part
- name: run build opeartor catalog script
run: |
make build-catalog
cat ibm-block-csi-catalog/ibm-block-csi-operator/index.yaml
cat ibm-block-csi-catalog.Dockerfile
- name: build and push operator catalog image
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64,linux/ppc64le,linux/s390x
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
file: deploy/olm-catalog/ibm-block-csi-operator/1.12.0/ibm-block-csi-operator.Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
VERSION: ${{ env.IMAGE_VERSION }}
BUILD_NUMBER: ${{ github.run_number }}
- name: show chosen image
run: |
echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.catalog_repository }}:${{ needs.prepare_env.outputs.specific_tag }}
echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.catalog_repository }}:${{ needs.prepare_env.outputs.global_tag }}
- name: save image names
run: |
echo ${{ env.REGISTRY }}/${{ needs.prepare_env.outputs.catalog_repository }} >> /tmp/catalog_images.txt
echo ${{ needs.prepare_env.outputs.specific_tag }} >> /tmp/catalog_images.txt
echo ${{ needs.prepare_env.outputs.global_tag }} >> /tmp/catalog_images.txt
- uses: actions/upload-artifact@v3
with:
name: images
path: /tmp/catalog_images.txt
retention-days: 90