1+ name : Build and Push RAG Container
2+
3+ on :
4+ workflow_dispatch :
5+ inputs :
6+ version :
7+ description : " The version of RHDH documentation you want to build for. E.g. ('1.7')."
8+ required : true
9+ compute_flavor :
10+ description : " The compute flavor for the container build."
11+ required : false
12+ default : " cpu"
13+ type : choice
14+ options :
15+ - cpu
16+ - gpu
17+
18+ env :
19+ IMAGE_NAME : rag-content
20+ IMAGE_REGISTRY : quay.io
21+ REGISTRY_ORG : redhat-ai-dev
22+ LATEST_TAG : release-${{ inputs.version }}-lcs
23+ CONTAINER_FILE : Containerfile.rhdh_lightspeed
24+
25+ jobs :
26+ build :
27+ strategy :
28+ matrix :
29+ include :
30+ - arch : amd64
31+ runner : ubuntu-24.04
32+ - arch : arm64
33+ runner : ubuntu-24.04-arm
34+ runs-on : ${{ matrix.runner }}
35+ permissions :
36+ contents : read
37+ packages : write
38+ steps :
39+ - name : Install buildah
40+ run : |
41+ sudo apt update
42+ sudo apt install -y buildah
43+ - name : Checkout code
44+ uses : actions/checkout@v4
45+ - name : Build image with Buildah
46+ id : build_image
47+ uses : redhat-actions/buildah-build@v2
48+ with :
49+ image : ${{ env.IMAGE_NAME }}
50+ tags : |
51+ ${{ env.LATEST_TAG }}-${{ matrix.arch }}
52+ containerfiles : |
53+ ${{ env.CONTAINER_FILE }}
54+ archs : ${{ matrix.arch }}
55+ oci : true
56+ build-args : |
57+ RHDH_DOCS_VERSION=${{ inputs.version }}
58+ FLAVOR=${{ inputs.compute_flavor }}
59+ - name : Check images
60+ run : |
61+ buildah images | grep '${{ env.IMAGE_NAME }}'
62+ echo '${{ steps.build_image.outputs.image }}'
63+ echo '${{ steps.build_image.outputs.tags }}'
64+ - name : Push architecture-specific image to Quay.io
65+ uses : redhat-actions/push-to-registry@v2
66+ with :
67+ image : ${{ steps.build_image.outputs.image }}
68+ tags : ${{ steps.build_image.outputs.tags }}
69+ registry : ${{ env.IMAGE_REGISTRY }}/${{ env.REGISTRY_ORG }}
70+ username : ${{ secrets.QUAY_REGISTRY_USERNAME }}
71+ password : ${{ secrets.QUAY_REGISTRY_PASSWORD }}
72+
73+ create-manifest :
74+ needs : build
75+ runs-on : ubuntu-24.04
76+ permissions :
77+ contents : read
78+ packages : write
79+ steps :
80+ - name : Install buildah
81+ run : |
82+ sudo apt update
83+ sudo apt install -y buildah
84+ - name : Login to registry
85+ run : |
86+ echo "${{ secrets.QUAY_REGISTRY_PASSWORD }}" | buildah login --username "${{ secrets.QUAY_REGISTRY_USERNAME }}" --password-stdin ${{ env.IMAGE_REGISTRY }}
87+ - name : Create and push manifest
88+ run : |
89+ # Create manifests
90+ buildah manifest create ${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}
91+ buildah manifest add ${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }} ${{ env.IMAGE_REGISTRY }}/${{ env.REGISTRY_ORG }}/${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-amd64
92+ buildah manifest add ${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }} ${{ env.IMAGE_REGISTRY }}/${{ env.REGISTRY_ORG }}/${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-arm64
93+
94+ buildah manifest create ${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-${{ github.sha }}
95+ buildah manifest add ${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-${{ github.sha }} ${{ env.IMAGE_REGISTRY }}/${{ env.REGISTRY_ORG }}/${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-amd64
96+ buildah manifest add ${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-${{ github.sha }} ${{ env.IMAGE_REGISTRY }}/${{ env.REGISTRY_ORG }}/${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-arm64
97+
98+ # Push manifests
99+ buildah manifest push --all ${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }} docker://${{ env.IMAGE_REGISTRY }}/${{ env.REGISTRY_ORG }}/${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}
100+ buildah manifest push --all ${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-${{ github.sha }} docker://${{ env.IMAGE_REGISTRY }}/${{ env.REGISTRY_ORG }}/${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-${{ github.sha }}
0 commit comments