Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,17 @@ jobs:
strategy:
fail-fast: false
matrix:
runners: ['ubuntu-22.04', 'ubuntu-22.04-arm']
runs-on: ${{matrix.runners}}
include:
- name: amd64-build
runner: ubuntu-22.04
arch: amd64
- name: arm64-build
runner: ubuntu-22.04-arm
arch: arm64
- name: ppc64le-build
runner: ubuntu-22.04
arch: ppc64le
runs-on: ${{ matrix.runner }}
steps:

- name: Checkout
Expand All @@ -54,12 +63,7 @@ jobs:
docker rmi -f $(docker images -aq)

- name: Set arch environment variable
run: |
if [[ ${{matrix.runners}} == 'ubuntu-22.04' ]]; then
echo arch="amd64" >> $GITHUB_ENV
else
echo arch="arm64" >> $GITHUB_ENV
fi
run: echo "arch=${{ matrix.arch }}" >> $GITHUB_ENV

- name: Start minikube cluster
run: |
Expand Down
46 changes: 29 additions & 17 deletions .github/workflows/pr-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,22 @@ jobs:
strategy:
fail-fast: false
matrix:
runners: ['ubuntu-22.04', 'ubuntu-22.04-arm']
runs-on: ${{matrix.runners}}
include:
- name: amd64-build
runner: ubuntu-22.04
arch: amd64
- name: arm64-build
runner: ubuntu-22.04-arm
arch: arm64
- name: ppc64le-build
runner: ubuntu-22.04
arch: ppc64le
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set arch environment variable
run: |
if [[ ${{matrix.runners}} == 'ubuntu-22.04' ]]; then
echo arch="amd64" >> $GITHUB_ENV
else
echo arch="arm64" >> $GITHUB_ENV
fi
run: echo "arch=${{ matrix.arch }}" >> $GITHUB_ENV
- name: Free runner space
run: sudo rm -rf /usr/local/lib/android
- name: Cleanup docker images
Expand All @@ -59,17 +63,21 @@ jobs:
strategy:
fail-fast: false
matrix:
runners: ['ubuntu-22.04', 'ubuntu-22.04-arm']
runs-on: ${{matrix.runners}}
include:
- name: amd64-build
runner: ubuntu-22.04
arch: amd64
- name: arm64-build
runner: ubuntu-22.04-arm
arch: arm64
- name: ppc64le-build
runner: ubuntu-22.04
arch: ppc64le
runs-on: ${{ matrix.runner }}
needs: build-base-image
steps:
- name: Set arch environment variable
run: |
if [[ ${{matrix.runners}} == 'ubuntu-22.04' ]]; then
echo arch="amd64" >> $GITHUB_ENV
else
echo arch="arm64" >> $GITHUB_ENV
fi
run: echo "arch=${{ matrix.arch }}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v4
- name: Free runner space
Expand Down Expand Up @@ -119,14 +127,18 @@ jobs:
run: |
docker manifest create ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
--amend ${{ env.REGISTRY }}/universal-developer-image:amd64-pr-${{github.event.number}} \
--amend ${{ env.REGISTRY }}/universal-developer-image:arm64-pr-${{github.event.number}}
--amend ${{ env.REGISTRY }}/universal-developer-image:arm64-pr-${{github.event.number}} \
--amend ${{ env.REGISTRY }}/universal-developer-image:ppc64le-pr-${{github.event.number}}

docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
${{ env.REGISTRY }}/universal-developer-image:amd64-pr-${{github.event.number}} \
--os linux --arch amd64
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
${{ env.REGISTRY }}/universal-developer-image:arm64-pr-${{github.event.number}} \
--os linux --arch arm64
docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}} \
${{ env.REGISTRY }}/universal-developer-image:ppc64le-pr-${{github.event.number}} \
--os linux --arch ppc64le

docker manifest push ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}}
- name: 'Comment PR'
Expand Down
80 changes: 56 additions & 24 deletions .github/workflows/ubi9-build.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@

name: Build of UBI 9 based Developer Images

on:
push:
branches: [ main ]
workflow_dispatch:

workflow_call:
# Map the workflow outputs to job outputs
secrets:
Expand All @@ -15,8 +13,8 @@ on:
required: true
outputs:
uniq_tag:
description: "The first output string"
value: ${{ jobs.build_universal_ubi9_image.outputs.output1 }}
description: "The unique tag for universal developer image"
value: ${{ jobs.publish-udi.outputs.uniq_tag }}

env:
# Use repository variable if set, otherwise fallback to default registry
Expand All @@ -28,24 +26,37 @@ jobs:
strategy:
fail-fast: false
matrix:
runners: ['ubuntu-22.04', 'ubuntu-22.04-arm']
runs-on: ${{matrix.runners}}
include:
- name: amd64-build
runner: ubuntu-22.04
arch: amd64
- name: arm64-build
runner: ubuntu-22.04-arm
arch: arm64
- name: ppc64le-build
runner: ubuntu-22.04
arch: ppc64le
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set arch environment variable
run: |
if [[ ${{matrix.runners}} == 'ubuntu-22.04' ]]; then
echo arch="amd64" >> $GITHUB_ENV
else
echo arch="arm64" >> $GITHUB_ENV
fi
run: echo "arch=${{ matrix.arch }}" >> $GITHUB_ENV
- name: Set short_sha environment variable
run: echo short_sha="$(git rev-parse --short=7 HEAD)" >> $GITHUB_ENV
- name: Free runner space
run: sudo rm -rf /usr/local/lib/android
- name: Cleanup docker images
run: docker system prune -af
# Setup QEMU for cross-platform builds
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
# Setup Docker Buildx with container driver
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container
platforms: linux/amd64,linux/arm64,linux/ppc64le
- name: Login to Registry
uses: docker/login-action@v3
with:
Expand Down Expand Up @@ -81,7 +92,8 @@ jobs:
do
docker manifest create ${{ env.REGISTRY }}/base-developer-image:${tag} \
--amend ${{ env.REGISTRY }}/base-developer-image:amd64-${{env.short_sha}} \
--amend ${{ env.REGISTRY }}/base-developer-image:arm64-${{env.short_sha}}
--amend ${{ env.REGISTRY }}/base-developer-image:arm64-${{env.short_sha}} \
--amend ${{ env.REGISTRY }}/base-developer-image:ppc64le-${{env.short_sha}}

docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:${tag} \
${{ env.REGISTRY }}/base-developer-image:amd64-${{env.short_sha}} \
Expand All @@ -90,6 +102,10 @@ jobs:
docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:${tag} \
${{ env.REGISTRY }}/base-developer-image:arm64-${{env.short_sha}} \
--os linux --arch arm64

docker manifest annotate ${{ env.REGISTRY }}/base-developer-image:${tag} \
${{ env.REGISTRY }}/base-developer-image:ppc64le-${{env.short_sha}} \
--os linux --arch ppc64le

docker manifest push ${{ env.REGISTRY }}/base-developer-image:${tag}
done
Expand All @@ -99,25 +115,38 @@ jobs:
strategy:
fail-fast: false
matrix:
runners: ['ubuntu-22.04', 'ubuntu-22.04-arm']
runs-on: ${{matrix.runners}}
include:
- name: amd64-build
runner: ubuntu-22.04
arch: amd64
- name: arm64-build
runner: ubuntu-22.04-arm
arch: arm64
- name: ppc64le-build
runner: ubuntu-22.04
arch: ppc64le
runs-on: ${{ matrix.runner }}
needs: publish-base-image
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set arch environment variable
run: |
if [[ ${{matrix.runners}} == 'ubuntu-22.04' ]]; then
echo arch="amd64" >> $GITHUB_ENV
else
echo arch="arm64" >> $GITHUB_ENV
fi
run: echo "arch=${{ matrix.arch }}" >> $GITHUB_ENV
- name: Set short_sha environment variable
run: echo short_sha="$(git rev-parse --short=7 HEAD)" >> $GITHUB_ENV
- name: Free runner space
run: sudo rm -rf /usr/local/lib/android
- name: Cleanup docker images
run: docker system prune -af
# Setup QEMU for cross-platform builds
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
# Setup Docker Buildx with container driver
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container
platforms: linux/amd64,linux/arm64,linux/ppc64le
- name: Login to Registry
uses: docker/login-action@v3
with:
Expand Down Expand Up @@ -153,7 +182,8 @@ jobs:
do
docker manifest create ${{ env.REGISTRY }}/universal-developer-image:${tag} \
--amend ${{ env.REGISTRY }}/universal-developer-image:amd64-${{env.short_sha}} \
--amend ${{ env.REGISTRY }}/universal-developer-image:arm64-${{env.short_sha}}
--amend ${{ env.REGISTRY }}/universal-developer-image:arm64-${{env.short_sha}} \
--amend ${{ env.REGISTRY }}/universal-developer-image:ppc64le-${{env.short_sha}}

docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:${tag} \
${{ env.REGISTRY }}/universal-developer-image:amd64-${{env.short_sha}} \
Expand All @@ -163,11 +193,13 @@ jobs:
${{ env.REGISTRY }}/universal-developer-image:arm64-${{env.short_sha}} \
--os linux --arch arm64

docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:${tag} \
${{ env.REGISTRY }}/universal-developer-image:ppc64le-${{env.short_sha}} \
--os linux --arch ppc64le

docker manifest push ${{ env.REGISTRY }}/universal-developer-image:${tag}
done
- name: Get tag with uniq prefix
id: setTagName
# set the image with uniq tag prefix (for example: quay.io/..../base-developer-image:ubi9-7ad6cab) to env. var
# and define it for output. This output with tag image will be used in caller job
run: |
echo "uniq_tag=${{ env.REGISTRY }}/universal-developer-image:ubi9-${{env.short_sha}}" >> $GITHUB_OUTPUT
Loading