Skip to content
Closed
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 @@ -19,6 +19,8 @@ on:
- LICENSE

env:
# Use repository variable if set, otherwise fallback to default registry
REGISTRY: ${{ vars.REGISTRY || 'quay.io/devfile' }}
USERSTORY: CloneGitRepoAPI
TS_API_TEST_KUBERNETES_COMMAND_LINE_TOOL: kubectl
DEPLOYMENT_TIMEOUT: 90s
Expand Down Expand Up @@ -71,12 +73,12 @@ jobs:
- name: Build base image
run: |
eval $(minikube docker-env)
cd base/ubi9 && docker build -t quay.io/devfile/base-developer-image:ubi9-latest .
cd base/ubi9 && docker build -t ${{ env.REGISTRY }}/base-developer-image:ubi9-latest .

- name: Build universal image
run: |
eval $(minikube docker-env)
cd universal/ubi9 && docker build -t quay.io/devfile/universal-developer-image:${{ env.PR_NUMBER }} .
cd universal/ubi9 && docker build -t ${{ env.REGISTRY }}/universal-developer-image:${{ env.PR_NUMBER }} .

- name: Checkout DWO
uses: actions/checkout@master
Expand Down Expand Up @@ -104,7 +106,7 @@ jobs:
- name: Check that UDI is present in the image list
run: |
# we used it for the build above and do not need it anymore. It saves the disk space
minikube image rm quay.io/devfile/base-developer-image:ubi9-latest
minikube image rm ${{ env.REGISTRY }}/base-developer-image:ubi9-latest
minikube image list --format table

- name: Install NodeJs
Expand Down Expand Up @@ -159,7 +161,7 @@ jobs:
cpuRequest: 30m
- name: che-code-runtime-description
container:
image: quay.io/devfile/universal-developer-image:${{ env.PR_NUMBER }}
image: ${{ env.REGISTRY }}/universal-developer-image:${{ env.PR_NUMBER }}
memoryLimit: 1024Mi
memoryRequest: 256Mi
cpuLimit: 500m
Expand Down Expand Up @@ -242,7 +244,7 @@ jobs:

- name: Run Empty workspace smoke test
run: |
export TS_API_TEST_UDI_IMAGE=quay.io/devfile/universal-developer-image:${{ env.PR_NUMBER }}
export TS_API_TEST_UDI_IMAGE=${{ env.REGISTRY }}/universal-developer-image:${{ env.PR_NUMBER }}
export TS_API_TEST_CHE_CODE_EDITOR_DEVFILE_URI=http://file-service.default.svc:80/devfile.yaml
cd che/tests/e2e
npm i
Expand Down
205 changes: 205 additions & 0 deletions .github/workflows/pr-check-ubi10.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
#
# Copyright (c) 2021-2025 Red Hat, Inc.
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#

name: Pull Request Check UBI 10

# Trigger the workflow on pull request
on: [pull_request]

env:
# Use repository variable if set, otherwise fallback to default registry
REGISTRY: ${{ vars.REGISTRY || 'quay.io/devfile' }}

jobs:
build-base-image:
name: Build base image
strategy:
fail-fast: false
matrix:
runners: ['ubuntu-22.04', 'ubuntu-22.04-arm']
runs-on: ${{matrix.runners}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Debug Registry Configuration
run: |
echo "🔍 Registry Configuration Debug:"
echo "Repository Variable (vars.REGISTRY): '${{ vars.REGISTRY }}'"
echo "Resolved REGISTRY env var: '${{ env.REGISTRY }}'"
echo "GitHub Repository: ${{ github.repository }}"
echo "Repository Owner: ${{ github.repository_owner }}"
if [ "${{ vars.REGISTRY }}" != "" ]; then
echo "✅ Using custom registry from repository variable"
else
echo "⚠️ Using fallback registry (no custom REGISTRY variable set)"
fi
- 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
- name: Free runner space
run: sudo rm -rf /usr/local/lib/android
- name: Cleanup docker images
run: docker system prune -af
- name: Build base image
run: |
cd base/ubi10 && docker buildx build \
--platform linux/${{env.arch}} \
--progress=plain \
-t base-developer-image-${{env.arch}} .
- name: Display docker images
run: docker images
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
# TODO: Remove this step once UDI on UBI 10 is ready and we have proper PR workflow for UDI
# This temporary step pushes base image to registry for testing purposes
- name: Tag and push base image for testing
run: |
docker tag base-developer-image-${{env.arch}} ${{ env.REGISTRY }}/base-developer-image:${{env.arch}}-ubi10-pr-${{github.event.number}}
docker push ${{ env.REGISTRY }}/base-developer-image:${{env.arch}}-ubi10-pr-${{github.event.number}}
- name: Compress image to a file
run: docker save base-developer-image-${{env.arch}} | gzip > base-developer-image-${{env.arch}}.tgz
- name: Upload image artifact
uses: actions/upload-artifact@v4
with:
name: base-developer-image-${{env.arch}}
path: base-developer-image-${{env.arch}}.tgz

publish-base-image:
name: Publish base image
runs-on: ubuntu-22.04
needs: build-base-image
steps:
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
# TODO: Remove this job once UDI on UBI 10 is ready and we have proper PR workflow for UDI
# This temporary job publishes base image manifest for testing purposes
- name: publish base image manifest
run: |
docker manifest create ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}} \
--amend ${{ env.REGISTRY }}/base-developer-image:amd64-ubi10-pr-${{github.event.number}} \
--amend ${{ env.REGISTRY }}/base-developer-image:arm64-ubi10-pr-${{github.event.number}}

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

docker manifest push ${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}}
- name: 'Comment PR'
uses: actions/github-script@v7
with:
script: |
const { repo: { owner, repo } } = context;
await github.rest.issues.createComment({
issue_number: ${{github.event.number}},
owner: context.repo.owner,
repo: context.repo.repo,
body: `Pull Request UBI 10 images published ✨\n\nBase Image: [${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}}](https://${{ env.REGISTRY }}/base-developer-image:ubi10-pr-${{github.event.number}})`
})

# build-udi:
# name: Build udi
# strategy:
# fail-fast: false
# matrix:
# runners: ['ubuntu-22.04', 'ubuntu-22.04-arm']
# runs-on: ${{matrix.runners}}
# 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
# - name: Checkout
# uses: actions/checkout@v4
# - name: Free runner space
# run: sudo rm -rf /usr/local/lib/android
# - name: Cleanup docker images
# run: docker system prune -af
# - name: Download BDI artifacts
# uses: actions/download-artifact@v4
# with:
# pattern: base-developer-image-*
# merge-multiple: true
# path: .
# - name: List downloaded files
# run: ls -lah
# - name: Load docker images
# run: docker load -i base-developer-image-${{env.arch}}.tgz
# - name: Display docker images
# run: docker images
# - name: Update UDI Dockerfile
# run: sed "s|${{ env.REGISTRY }}/base-developer-image:ubi10-latest|base-developer-image-${{env.arch}}|" -i "universal/ubi10/Dockerfile"
# - name: Login to Registry
# uses: docker/login-action@v3
# with:
# registry: ${{ env.REGISTRY }}
# username: ${{ secrets.QUAY_USERNAME }}
# password: ${{ secrets.QUAY_PASSWORD }}
# - name: Build udi
# run: |
# cd universal/ubi10 && docker buildx build \
# --platform linux/${{env.arch}} \
# --progress=plain \
# --push \
# -t ${{ env.REGISTRY }}/universal-developer-image:${{env.arch}}-ubi10-pr-${{github.event.number}} .

# publish-udi:
# name: Publish udi
# runs-on: ubuntu-22.04
# needs: build-udi
# steps:
# - name: Login to Registry
# uses: docker/login-action@v3
# with:
# registry: ${{ env.REGISTRY }}
# username: ${{ secrets.QUAY_USERNAME }}
# password: ${{ secrets.QUAY_PASSWORD }}
# - name: publish
# run: |
# docker manifest create ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
# --amend ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} \
# --amend ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}}
#
# docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
# ${{ env.REGISTRY }}/universal-developer-image:amd64-ubi10-pr-${{github.event.number}} \
# --os linux --arch amd64
# docker manifest annotate ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}} \
# ${{ env.REGISTRY }}/universal-developer-image:arm64-ubi10-pr-${{github.event.number}} \
# --os linux --arch arm64
#
# docker manifest push ${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}}
# - name: 'Comment PR'
# uses: actions/github-script@v7
# with:
# script: |
# const { repo: { owner, repo } } = context;
# await github.rest.issues.createComment({
# issue_number: ${{github.event.number}},
# owner: context.repo.owner,
# repo: context.repo.repo,
# body: `Pull Request images published ✨\n\nUDI: [${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}}](https://${{ env.REGISTRY }}/universal-developer-image:ubi10-pr-${{github.event.number}})`
# })
58 changes: 44 additions & 14 deletions .github/workflows/pr-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ name: Pull Request Check
# Trigger the workflow on pull request
on: [pull_request]

env:
# Use repository variable if set, otherwise fallback to default registry
REGISTRY: ${{ vars.REGISTRY || 'quay.io/devfile' }}

jobs:
build-base-image:
name: Build base image
Expand All @@ -23,6 +27,18 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Debug Registry Configuration
run: |
echo "🔍 Registry Configuration Debug:"
echo "Repository Variable (vars.REGISTRY): '${{ vars.REGISTRY }}'"
echo "Resolved REGISTRY env var: '${{ env.REGISTRY }}'"
echo "GitHub Repository: ${{ github.repository }}"
echo "Repository Owner: ${{ github.repository_owner }}"
if [ "${{ vars.REGISTRY }}" != "" ]; then
echo "✅ Using custom registry from repository variable"
else
echo "⚠️ Using fallback registry (no custom REGISTRY variable set)"
fi
- name: Set arch environment variable
run: |
if [[ ${{matrix.runners}} == 'ubuntu-22.04' ]]; then
Expand Down Expand Up @@ -68,6 +84,13 @@ jobs:
fi
- name: Checkout
uses: actions/checkout@v4
- name: Debug Registry Configuration (UDI)
run: |
echo "🔍 UDI Registry Configuration Debug:"
echo "Repository Variable (vars.REGISTRY): '${{ vars.REGISTRY }}'"
echo "Resolved REGISTRY env var: '${{ env.REGISTRY }}'"
echo "GitHub Repository: ${{ github.repository }}"
echo "Target registry for UDI: ${{ env.REGISTRY }}/universal-developer-image"
- name: Free runner space
run: sudo rm -rf /usr/local/lib/android
- name: Cleanup docker images
Expand All @@ -86,10 +109,10 @@ jobs:
run: docker images
- name: Update UDI Dockerfile
run: sed "s|quay.io/devfile/base-developer-image:ubi9-latest|base-developer-image-${{env.arch}}|" -i "universal/ubi9/Dockerfile"
- name: Login to Quay.io
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: quay.io
registry: ${{ env.REGISTRY }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: Build udi
Expand All @@ -98,33 +121,40 @@ jobs:
--platform linux/${{env.arch}} \
--progress=plain \
--push \
-t quay.io/devfile/universal-developer-image:${{env.arch}}-pr-${{github.event.number}} .
-t ${{ env.REGISTRY }}/universal-developer-image:${{env.arch}}-pr-${{github.event.number}} .

publish-udi:
name: Publish udi
runs-on: ubuntu-22.04
needs: build-udi
steps:
- name: Login to Quay.io
- name: Debug Registry Configuration (UDI)
run: |
echo "🔍 UDI Registry Configuration Debug:"
echo "Repository Variable (vars.REGISTRY): '${{ vars.REGISTRY }}'"
echo "Resolved REGISTRY env var: '${{ env.REGISTRY }}'"
echo "GitHub Repository: ${{ github.repository }}"
echo "Target registry for UDI: ${{ env.REGISTRY }}/universal-developer-image"
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: quay.io
registry: ${{ env.REGISTRY }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: publish
run: |
docker manifest create quay.io/devfile/universal-developer-image:pr-${{github.event.number}} \
--amend quay.io/devfile/universal-developer-image:amd64-pr-${{github.event.number}} \
--amend quay.io/devfile/universal-developer-image:arm64-pr-${{github.event.number}}
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}}

docker manifest annotate quay.io/devfile/universal-developer-image:pr-${{github.event.number}} \
quay.io/devfile/universal-developer-image:amd64-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 quay.io/devfile/universal-developer-image:pr-${{github.event.number}} \
quay.io/devfile/universal-developer-image:arm64-pr-${{github.event.number}} \
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 push quay.io/devfile/universal-developer-image:pr-${{github.event.number}}
docker manifest push ${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}}
- name: 'Comment PR'
uses: actions/github-script@v7
with:
Expand All @@ -134,5 +164,5 @@ jobs:
issue_number: ${{github.event.number}},
owner: context.repo.owner,
repo: context.repo.repo,
body: `Pull Request images published ✨\n\nUDI: [quay.io/devfile/universal-developer-image:pr-${{github.event.number}}](https://quay.io/devfile/universal-developer-image:pr-${{github.event.number}})`
body: `Pull Request images published ✨\n\nUDI: [${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}}](https://${{ env.REGISTRY }}/universal-developer-image:pr-${{github.event.number}})`
})
Loading
Loading