Skip to content

Merge pull request #75 from openstack-k8s-operators/renovate/openstac… #77

Merge pull request #75 from openstack-k8s-operators/renovate/openstac…

Merge pull request #75 from openstack-k8s-operators/renovate/openstac… #77

name: OpenStack Baremetal Operator image builder
on:
push:
branches:
- '*'
paths-ignore:
- .gitignore
- .pull_request_pipeline
- changelog.txt
- kuttl-test.yaml
- LICENSE
- Makefile
- OWNERS
- PROJECT
- README.md
- .github/
- build/
- docs/
- tests/
env:
imageregistry: 'quay.io'
imagenamespace: ${{ secrets.IMAGENAMESPACE || secrets.QUAY_USERNAME }}
latesttag: latest
jobs:
check-secrets:
runs-on: ubuntu-latest
steps:
- name: Check secrets are set
id: have-secrets
if: "${{ env.imagenamespace != '' }}"
run: echo "::set-output name=ok::true"
outputs:
have-secrets: ${{ steps.have-secrets.outputs.ok }}
build-openstack-baremetal-operator:
name: Build openstack-baremetal-operator image using buildah
runs-on: ubuntu-latest
needs: [check-secrets]
if: needs.check-secrets.outputs.have-secrets == 'true'
steps:
- uses: actions/checkout@v2
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5
- name: Set latest tag for non main branch
if: "${{ steps.branch-name.outputs.current_branch != 'main' }}"
run: |
echo "latesttag=${{ steps.branch-name.outputs.current_branch }}-latest" >> $GITHUB_ENV
- name: Buildah Action
id: build-openstack-baremetal-operator
uses: redhat-actions/buildah-build@v2
with:
image: openstack-baremetal-operator
tags: ${{ env.latesttag }} ${{ github.sha }}
containerfiles: |
./Dockerfile
- name: Push openstack-baremetal-operator To ${{ env.imageregistry }}
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-openstack-baremetal-operator.outputs.image }}
tags: ${{ steps.build-openstack-baremetal-operator.outputs.tags }}
registry: ${{ env.imageregistry }}/${{ env.imagenamespace }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
build-openstack-baremetal-operator-bundle:
needs: [ check-secrets, build-openstack-baremetal-operator ]
name: openstack-baremetal-operator-bundle
runs-on: ubuntu-latest
if: needs.check-secrets.outputs.have-secrets == 'true'
steps:
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.19.x
- name: Checkout openstack-baremetal-operator repository
uses: actions/checkout@v2
- name: Install operator-sdk
uses: redhat-actions/openshift-tools-installer@v1
with:
source: github
operator-sdk: '1.31.0'
- name: Log in to Quay Registry
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.imageregistry }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: Log in to Red Hat Registry
uses: redhat-actions/podman-login@v1
with:
registry: registry.redhat.io
username: ${{ secrets.REDHATIO_USERNAME }}
password: ${{ secrets.REDHATIO_PASSWORD }}
- name: Create bundle image
run: |
pushd "${GITHUB_WORKSPACE}"/.github/
chmod +x "create_bundle.sh"
"./create_bundle.sh"
popd
env:
REGISTRY: ${{ env.imageregistry }}/${{ env.imagenamespace }}
GITHUB_SHA: ${{ github.sha }}
BASE_IMAGE: openstack-baremetal-operator
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5
- name: Set latest tag for non main branch
if: "${{ steps.branch-name.outputs.current_branch != 'main' }}"
run: |
echo "latesttag=${{ steps.branch-name.outputs.current_branch }}-latest" >> $GITHUB_ENV
- name: Build openstack-baremetal-operator-bundle using buildah
id: build-openstack-baremetal-operator-bundle
uses: redhat-actions/buildah-build@v2
with:
image: openstack-baremetal-operator-bundle
tags: ${{ env.latesttag }} ${{ github.sha }}
containerfiles: |
./bundle.Dockerfile
- name: Push openstack-baremetal-operator To ${{ env.imageregistry }}
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-openstack-baremetal-operator-bundle.outputs.image }}
tags: ${{ steps.build-openstack-baremetal-operator-bundle.outputs.tags }}
registry: ${{ env.imageregistry }}/${{ env.imagenamespace }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
build-openstack-baremetal-operator-index:
needs: [ check-secrets, build-openstack-baremetal-operator-bundle ]
name: openstack-baremetal-operator-index
runs-on: ubuntu-latest
if: needs.check-secrets.outputs.have-secrets == 'true'
steps:
- name: Checkout openstack-baremetal-operator repository
uses: actions/checkout@v2
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5
- name: Set latest tag for non main branch
if: "${{ steps.branch-name.outputs.current_branch != 'main' }}"
run: |
echo "latesttag=${{ steps.branch-name.outputs.current_branch }}-latest" >> $GITHUB_ENV
- name: Install opm
uses: redhat-actions/openshift-tools-installer@v1
with:
source: github
opm: 'latest'
- name: Log in to Quay Registry
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.imageregistry }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: Create index image
run: |
pushd "${GITHUB_WORKSPACE}"/.github/
chmod +x "create_opm_index.sh"
"./create_opm_index.sh"
popd
env:
REGISTRY: ${{ env.imageregistry }}/${{ env.imagenamespace }}
GITHUB_SHA: ${{ github.sha }}
BUNDLE_IMAGE: openstack-baremetal-operator-bundle
INDEX_IMAGE_TAG: ${{ env.latesttag }}
INDEX_IMAGE: openstack-baremetal-operator-index
- name: Push openstack-baremetal-operator-index To ${{ env.imageregistry }}
uses: redhat-actions/push-to-registry@v2
with:
image: openstack-baremetal-operator-index
tags: ${{ env.latesttag }} ${{ github.sha }}
registry: ${{ env.imageregistry }}/${{ env.imagenamespace }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
build-openstack-baremetal-operator-downloader:
name: Build openstack-baremetal-operator downloader image using buildah
runs-on: ubuntu-latest
needs: [check-secrets]
if: needs.check-secrets.outputs.have-secrets == 'true'
steps:
- uses: actions/checkout@v2
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5
- name: Set latest tag for non main branch
if: "${{ steps.branch-name.outputs.current_branch != 'main' }}"
run: |
echo "latesttag=${{ steps.branch-name.outputs.current_branch }}-latest" >> $GITHUB_ENV
build-openstack-baremetal-operator-agent:
name: Build openstack-baremetal-operator agent image using buildah
runs-on: ubuntu-latest
needs: [check-secrets]
if: needs.check-secrets.outputs.have-secrets == 'true'
steps:
- uses: actions/checkout@v2
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5
- name: Set latest tag for non main branch
if: "${{ steps.branch-name.outputs.current_branch != 'main' }}"
run: |
echo "latesttag=${{ steps.branch-name.outputs.current_branch }}-latest" >> $GITHUB_ENV
- name: Buildah Action
id: build-openstack-baremetal-operator-agent
uses: redhat-actions/buildah-build@v2
with:
image: openstack-baremetal-operator-agent
tags: ${{ env.latesttag }} ${{ github.sha }}
containerfiles: |
./Dockerfile.agent
- name: Push openstack-baremetal-operator-agent To ${{ env.imageregistry }}
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-openstack-baremetal-operator-agent.outputs.image }}
tags: ${{ steps.build-openstack-baremetal-operator-agent.outputs.tags }}
registry: ${{ env.imageregistry }}/${{ env.imagenamespace }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}