Skip to content

Merge pull request #148 from kubeflow/main #42

Merge pull request #148 from kubeflow/main

Merge pull request #148 from kubeflow/main #42

name: CSI container image build and tag
on:
push:
branches:
- 'main'
tags:
- 'v*'
paths-ignore:
- 'LICENSE*'
- '**.gitignore'
- '**.md'
- '**.txt'
- '.github/ISSUE_TEMPLATE/**'
- '.github/dependabot.yml'
- 'docs/**'
env:
IMG_ORG: opendatahub
IMG_REPO: model-registry-storage-initializer
DOCKER_USER: ${{ secrets.QUAY_USERNAME }}
DOCKER_PWD: ${{ secrets.QUAY_PASSWORD }}
PUSH_IMAGE: true
jobs:
build-csi-image:
runs-on: ubuntu-latest
steps:
# Assign context variable for various action contexts (tag, main, CI)
- name: Assigning tag context
if: github.head_ref == '' && startsWith(github.ref, 'refs/tags/v')
run: echo "BUILD_CONTEXT=tag" >> $GITHUB_ENV
- name: Assigning main context
if: github.head_ref == '' && github.ref == 'refs/heads/main'
run: echo "BUILD_CONTEXT=main" >> $GITHUB_ENV
# checkout branch
- uses: actions/checkout@v4
# set image version
- name: Set main-branch environment
if: env.BUILD_CONTEXT == 'main'
run: |
commit_sha=${{ github.event.after }}
tag=main-${commit_sha:0:7}
echo "VERSION=${tag}" >> $GITHUB_ENV
- name: Set tag environment
if: env.BUILD_CONTEXT == 'tag'
run: |
echo "VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
# docker login
- name: Docker login
shell: bash
run: make docker/login
# build & push
- name: Build CSI Image
working-directory: ./csi
shell: bash
env:
IMG_ORG: ${{ env.IMG_ORG }}
IMG_REPO: ${{ env.IMG_REPO }}
IMG_VERSION: ${{ env.VERSION }}
run: |
make docker-build-dev
- name: Push CSI Image
if: env.PUSH_IMAGE == 'true'
shell: bash
env:
IMG: quay.io/${{ env.IMG_ORG }}/${{ env.IMG_REPO }}
run: IMG=${{ env.IMG }} IMG_VERSION=${{ env.VERSION }} make image/push
# Tag latest and main
- name: Tag Latest
if: env.BUILD_CONTEXT == 'main' && env.PUSH_IMAGE == 'true'
shell: bash
env:
IMG: quay.io/${{ env.IMG_ORG }}/${{ env.IMG_REPO }}
run: |
docker tag ${{ env.IMG }}:$VERSION ${{ env.IMG }}:latest
IMG=${{ env.IMG }} IMG_VERSION=latest make image/push
- name: Tag Main
if: env.BUILD_CONTEXT == 'main' && env.PUSH_IMAGE == 'true'
shell: bash
env:
IMG: quay.io/${{ env.IMG_ORG }}/${{ env.IMG_REPO }}
run: |
docker tag ${{ env.IMG }}:$VERSION ${{ env.IMG }}:main
IMG=${{ env.IMG }} IMG_VERSION=main make image/push