bundle test #86
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |