Merge pull request #787 from Kuadrant/fix-image-build #324
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: Build and Publish Controller Image | |
on: | |
push: | |
branches: | |
- main | |
- "release-*" | |
tags: | |
- "v[0-9]+.[0-9]+.[0-9]+" | |
env: | |
IMG_REGISTRY_HOST: quay.io | |
IMG_REGISTRY_ORG: kuadrant | |
IMG_REGISTRY_REPO: multicluster-gateway-controller | |
IMG_REGISTRY_REPO_BUNDLE: multicluster-gateway-controller-bundle | |
IMG_REGISTRY_REPO_CATALOG: multicluster-gateway-controller-catalog | |
MAIN_BRANCH_NAME: main | |
jobs: | |
controller: | |
if: github.repository_owner == 'kuadrant' | |
name: Build controller image | |
runs-on: ubuntu-22.04 | |
outputs: | |
sha_short: ${{ steps.vars.outputs.sha_short }} | |
controller_image: ${{ steps.vars.outputs.base_image }}:${{ steps.vars.outputs.sha_short }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Calculate vars | |
id: vars | |
run: | | |
echo "sha_short=$(echo ${{ github.sha }} | cut -b -7)" >> $GITHUB_OUTPUT | |
echo "base_image=${{ env.IMG_REGISTRY_HOST }}/${{ env.IMG_REGISTRY_ORG }}/${{ env.IMG_REGISTRY_REPO }}" >> $GITHUB_OUTPUT | |
- name: Add image tags | |
id: add-tags | |
run: echo "IMG_TAGS=${{ steps.vars.outputs.base_image }}:${{ steps.vars.outputs.sha_short }},${{ steps.vars.outputs.base_image }}:${{ github.ref_name }}" >> $GITHUB_ENV | |
- name: Add latest tag | |
if: ${{ github.ref_name == env.MAIN_BRANCH_NAME }} | |
id: add-latest-tag | |
run: echo "IMG_TAGS=${{ steps.vars.outputs.base_image }}:latest,${{ env.IMG_TAGS }}" >> $GITHUB_ENV | |
- name: Login to Quay.io | |
uses: docker/login-action@v2 | |
id: registry-login | |
with: | |
registry: ${{ env.IMG_REGISTRY_HOST }} | |
username: ${{ secrets.IMG_REGISTRY_USERNAME }} | |
password: ${{ secrets.IMG_REGISTRY_TOKEN }} | |
- name: Build and push Controller Image | |
id: build-and-push | |
uses: docker/build-push-action@v4 | |
with: | |
push: true | |
tags: ${{ env.IMG_TAGS }} | |
target: controller | |
- name: Print Image URL | |
run: | | |
echo "Image pushed to ${{ env.IMG_TAGS }}" | |
echo "Image digest: ${{ steps.build-and-push.outputs.digest }}" | |
bundle: | |
if: github.repository_owner == 'kuadrant' | |
name: Build bundle image | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Set up Go 1.21.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.21.x | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Calculate vars | |
id: vars | |
run: | | |
echo "sha_short=$(echo ${{ github.sha }} | cut -b -7)" >> $GITHUB_OUTPUT | |
echo "base_image=${{ env.IMG_REGISTRY_HOST }}/${{ env.IMG_REGISTRY_ORG }}/${{ env.IMG_REGISTRY_REPO_CATALOG }}" >> $GITHUB_OUTPUT | |
- name: Add image tags | |
id: add-tags | |
run: echo "IMG_TAGS=${{ steps.vars.outputs.base_image }}:${{ steps.vars.outputs.sha_short }},${{ steps.vars.outputs.base_image }}:${{ github.ref_name }}" >> $GITHUB_ENV | |
- name: Run make bundle | |
id: make-bundle | |
run: make bundle REGISTRY=${{ env.IMG_REGISTRY_HOST }} ORG=${{ env.IMG_REGISTRY_ORG }} IMAGE_TAG=${{ github.ref_name }} | |
- name: Build bundle | |
id: build-bundle | |
run: make bundle-build REGISTRY=${{ env.IMG_REGISTRY_HOST }} ORG=${{ env.IMG_REGISTRY_ORG }} IMAGE_TAG=${{ github.ref_name }} | |
- name: Login to Quay.io | |
uses: docker/login-action@v2 | |
id: registry-login | |
with: | |
registry: ${{ env.IMG_REGISTRY_HOST }} | |
username: ${{ secrets.IMG_REGISTRY_USERNAME }} | |
password: ${{ secrets.IMG_REGISTRY_TOKEN }} | |
- name: Push bundle Image | |
run: make bundle-push REGISTRY=${{ env.IMG_REGISTRY_HOST }} ORG=${{ env.IMG_REGISTRY_ORG }} IMAGE_TAG=${{ github.ref_name }} | |
catalog: | |
if: github.repository_owner == 'kuadrant' | |
needs: bundle | |
name: Build catalog image | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Set up Go 1.21.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.21.x | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Calculate vars | |
id: vars | |
run: | | |
echo "sha_short=$(echo ${{ github.sha }} | cut -b -7)" >> $GITHUB_OUTPUT | |
echo "base_image=${{ env.IMG_REGISTRY_HOST }}/${{ env.IMG_REGISTRY_ORG }}/${{ env.IMG_REGISTRY_REPO_BUNDLE }}" >> $GITHUB_OUTPUT | |
- name: Add image tags | |
id: add-tags | |
run: echo "IMG_TAGS=${{ steps.vars.outputs.base_image }}:${{ steps.vars.outputs.sha_short }},${{ steps.vars.outputs.base_image }}:${{ github.ref_name }}" >> $GITHUB_ENV | |
- name: Run make catalog | |
id: make-catalog-build | |
run: make catalog-build REGISTRY=${{ env.IMG_REGISTRY_HOST }} ORG=${{ env.IMG_REGISTRY_ORG }} IMAGE_TAG=${{ github.ref_name }} | |
- name: Login to Quay.io | |
uses: docker/login-action@v2 | |
id: registry-login | |
with: | |
registry: ${{ env.IMG_REGISTRY_HOST }} | |
username: ${{ secrets.IMG_REGISTRY_USERNAME }} | |
password: ${{ secrets.IMG_REGISTRY_TOKEN }} | |
- name: Make catalog push | |
id: make-catalog-push | |
run: make catalog-push REGISTRY=${{ env.IMG_REGISTRY_HOST }} ORG=${{ env.IMG_REGISTRY_ORG }} IMAGE_TAG=${{ github.ref_name }} |