Skip to content

Merge pull request #119 from omkarjoshi0304/lcore #106

Merge pull request #119 from omkarjoshi0304/lcore

Merge pull request #119 from omkarjoshi0304/lcore #106

name: "Build and push operator container image"
on:
push:
branches:
- main
- lcore-migration
workflow_dispatch: {}
env:
REGISTRY: quay.io
IMAGE_ORG: openstack-lightspeed
OPERATOR_NAME: operator
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v6
- name: Prepare variables
id: vars
run: |
SHA=${{ github.sha }}
VERSION="0.1.0-${SHA::7}"
IMAGE_TAG_BASE=${REGISTRY}/${IMAGE_ORG}/${OPERATOR_NAME}
OPERATOR_IMAGE=${IMAGE_TAG_BASE}:v${VERSION}
BUNDLE_IMAGE=${IMAGE_TAG_BASE}-bundle:v${VERSION}
CATALOG_IMAGE=${IMAGE_TAG_BASE}-catalog:v${VERSION}
# `main` branch -> `latest` tag
# any other branch -> `[branch-name]-latest` tag
if [[ "${{ github.ref_name }}" == "main" ]]; then
LATEST_TAG=latest
else
LATEST_TAG=${{ github.ref_name }}-latest
fi
OPERATOR_IMAGE_LATEST=${IMAGE_TAG_BASE}:${LATEST_TAG}
BUNDLE_IMAGE_LATEST=${IMAGE_TAG_BASE}-bundle:${LATEST_TAG}
CATALOG_IMAGE_LATEST=${IMAGE_TAG_BASE}-catalog:${LATEST_TAG}
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "IMAGE_TAG_BASE=$IMAGE_TAG_BASE" >> $GITHUB_ENV
echo "OPERATOR_IMAGE=$OPERATOR_IMAGE" >> $GITHUB_ENV
echo "BUNDLE_IMAGE=$BUNDLE_IMAGE" >> $GITHUB_ENV
echo "CATALOG_IMAGE=$CATALOG_IMAGE" >> $GITHUB_ENV
echo "OPERATOR_IMAGE_LATEST=$OPERATOR_IMAGE_LATEST" >> $GITHUB_ENV
echo "BUNDLE_IMAGE_LATEST=$BUNDLE_IMAGE_LATEST" >> $GITHUB_ENV
echo "CATALOG_IMAGE_LATEST=$CATALOG_IMAGE_LATEST" >> $GITHUB_ENV
- name: Install operator-sdk
uses: redhat-actions/openshift-tools-installer@v1
with:
source: github
operator-sdk: 1.38.0
- name: Log in to Quay
uses: docker/login-action@v4
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: Log in to Red Hat Registry
uses: docker/login-action@v4
with:
registry: registry.redhat.io
username: ${{ secrets.REDHAT_REGISTRY_USERNAME }}
password: ${{ secrets.REDHAT_REGISTRY_PASSWORD }}
- name: Build operator image
run: |
make docker-build IMG=$OPERATOR_IMAGE
docker tag $OPERATOR_IMAGE $OPERATOR_IMAGE_LATEST
make docker-push IMG=$OPERATOR_IMAGE
make docker-push IMG=$OPERATOR_IMAGE_LATEST
- name: Generate bundle
run: |
make bundle IMG=$OPERATOR_IMAGE USE_IMAGE_DIGESTS=true
make bundle-build BUNDLE_IMG=$BUNDLE_IMAGE
docker tag $BUNDLE_IMAGE $BUNDLE_IMAGE_LATEST
make bundle-push BUNDLE_IMG=$BUNDLE_IMAGE
make bundle-push BUNDLE_IMG=$BUNDLE_IMAGE_LATEST
- name: Build catalog image
run: |
make catalog-build CATALOG_IMG=$CATALOG_IMAGE BUNDLE_IMG=$BUNDLE_IMAGE
docker tag $CATALOG_IMAGE $CATALOG_IMAGE_LATEST
make catalog-push CATALOG_IMG=$CATALOG_IMAGE
make catalog-push CATALOG_IMG=$CATALOG_IMAGE_LATEST