On 11/15/23 13:40, Ales Musil wrote:
> On Wed, Nov 15, 2023 at 12:58 PM Dumitru Ceara <[email protected]> wrote:
>
>> That allows us to use different distro bases for different stable
>> branches.
>>
>> Fixes: 60a53abaa38a ("ci: Add automation for building the containers")
>> Signed-off-by: Dumitru Ceara <[email protected]>
>>
>
> Hi Dumitru,
>
> thank you for the series.
>
>
Thanks for the review!
>> ---
>> .ci/ci.sh | 9 ++++++++-
>> .cirrus.yml | 2 +-
>> .github/workflows/containers.yml | 13 ++++++++++---
>> .github/workflows/test.yml | 7 ++++++-
>> utilities/containers/Makefile | 4 ++--
>> 5 files changed, 27 insertions(+), 8 deletions(-)
>>
>> diff --git a/.ci/ci.sh b/.ci/ci.sh
>> index 3f1b41eadc..ccec572c3a 100755
>> --- a/.ci/ci.sh
>> +++ b/.ci/ci.sh
>> @@ -20,7 +20,8 @@ DPDK_PATH=${DPDK_PATH:-$OVN_PATH/dpdk-dir}
>> CONTAINER_CMD=${CONTAINER_CMD:-podman}
>> CONTAINER_WORKSPACE="/workspace"
>> CONTAINER_WORKDIR="/workspace/ovn-tmp"
>> -IMAGE_NAME=${IMAGE_NAME:-"ovn-org/ovn-tests"}
>> +DEFAULT_IMAGE_NAME="ovn-org/ovn-tests:main-fedora"
>> +IMAGE_NAME=${IMAGE_NAME:-${DEFAULT_IMAGE_NAME}}
>>
>> # Test variables
>> ARCH=${ARCH:-$(uname -m)}
>> @@ -167,6 +168,12 @@ if [ -z "$DPDK" ]; then
>> mkdir -p "$DPDK_PATH"
>> fi
>>
>> +# Check if the IMAGE_NAME is a real image we can pull, otherwise fall
>> +# back to DEFAULT_IMAGE_NAME.
>> +if ! $CONTAINER_CMD pull $IMAGE_NAME; then
>> + IMAGE_NAME=$DEFAULT_IMAGE_NAME
>> +fi
>> +
>>
>
> We shouldn't silently fall back to something different if the image doesn't
> exist. This should be solved on a workflow level most likely. We can even
> avoid specifying the IMAGE_NAME if we tag the downloaded image to
> "ovn-org/ovn-tests", but that's just nit.
>
Makes sense, it's better to be explicit, I'll do it like that.
>
>> CONTAINER_ID="$($CONTAINER_CMD run --privileged -d \
>> --pids-limit=-1 \
>> --env ASAN_OPTIONS=$ASAN_OPTIONS \
>> diff --git a/.cirrus.yml b/.cirrus.yml
>> index bd4cd08aaf..23e720cc47 100644
>> --- a/.cirrus.yml
>> +++ b/.cirrus.yml
>> @@ -1,7 +1,7 @@
>> arm_unit_tests_task:
>>
>> arm_container:
>> - image: ghcr.io/ovn-org/ovn-tests:fedora
>> + image: ghcr.io/ovn-org/ovn-tests:main-fedora
>> memory: 4G
>> cpu: 2
>>
>> diff --git a/.github/workflows/containers.yml
>> b/.github/workflows/containers.yml
>> index 57e815ed86..40a44a7c41 100644
>> --- a/.github/workflows/containers.yml
>> +++ b/.github/workflows/containers.yml
>> @@ -7,8 +7,6 @@ on:
>> - cron: '0 0 * * 1'
>>
>> env:
>> - IMAGE_REGISTRY: ghcr.io
>
>
> nit: Unrelated change, it is the same as before.
>
Actually, it's on purpose. I wanted to define all image related
variables in a single place. If you want I can move IMAGE_NAME lower too.
I'll wait for your input before sending v2.
>
>>
>> - IMAGE_NAMESPACE: ovn-org
>> IMAGE_NAME: ovn-tests
>> CONTAINERS_PATH: ./utilities/containers
>> DEPENDENCIES: podman
>> @@ -31,13 +29,22 @@ jobs:
>> - name: Set up QEMU
>> uses: docker/setup-qemu-action@v2
>>
>> + - name: Build image name
>> + run: |
>> + echo
>> "IMAGE_BRANCH=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" \
>> + >> $GITHUB_ENV
>> + echo "IMAGE_REGISTRY=ghcr.io" \
>> + >> $GITHUB_ENV
>> + echo "IMAGE_NAMESPACE=$GITHUB_REPOSITORY_OWNER" \
>> + >> $GITHUB_ENV
>> +
>> - name: Build container images
>> id: build-image
>> uses: redhat-actions/buildah-build@v2
>> with:
>> image: ${{ env.IMAGE_NAME }}
>> archs: amd64, arm64
>> - tags: ${{ matrix.distro }}
>> + tags: ${{ env.IMAGE_BRANCH }}-${{ matrix.distro }}
>> build-args: CONTAINERS_PATH=${{ env.CONTAINERS_PATH }}
>> dockerfiles: ${{ env.CONTAINERS_PATH }}/${{ matrix.distro
>> }}/Dockerfile
>>
>> diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
>> index 5c5ce6ed10..84b358ee46 100644
>> --- a/.github/workflows/test.yml
>> +++ b/.github/workflows/test.yml
>> @@ -83,7 +83,6 @@ jobs:
>> build-linux:
>> needs: build-dpdk
>> env:
>> - IMAGE_NAME: ghcr.io/ovn-org/ovn-tests:ubuntu
>> ARCH: ${{ matrix.cfg.arch }}
>> CC: ${{ matrix.cfg.compiler }}
>> DPDK: ${{ matrix.cfg.dpdk }}
>> @@ -128,6 +127,12 @@ jobs:
>> with:
>> submodules: recursive
>>
>> + - name: Build image name
>> + run: |
>> + IMAGE_BRANCH=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
>> + echo "IMAGE_NAME=
>> ghcr.io/$GITHUB_REPOSITORY_OWNER/ovn-tests:${IMAGE_BRANCH}-ubuntu
>> <http://ghcr.io/$GITHUB_REPOSITORY_OWNER/ovn-tests:$%7BIMAGE_BRANCH%7D-ubuntu>"
>> \
>> + >> $GITHUB_ENV
>> +
>> # For weekly runs, don't update submodules
>> - name: checkout without submodule
>> if: github.event_name == 'schedule'
>> diff --git a/utilities/containers/Makefile b/utilities/containers/Makefile
>> index d79e4ad5ee..e2e8f95064 100644
>> --- a/utilities/containers/Makefile
>> +++ b/utilities/containers/Makefile
>> @@ -1,5 +1,5 @@
>> CONTAINER_CMD ?= podman
>> -IMAGE_NAME ?= "ovn-org/ovn-tests"
>> +IMAGE_NAME ?= "ovn-org/ovn-tests:main"
>> CONTAINERS_PATH ?= "."
>>
>> distros := fedora ubuntu
>> @@ -7,5 +7,5 @@ distros := fedora ubuntu
>> .PHONY: $(distros)
>>
>> $(distros):
>> - $(CONTAINER_CMD) build --no-cache --rm -t $(IMAGE_NAME):$@ \
>> + $(CONTAINER_CMD) build --no-cache --rm -t $(IMAGE_NAME)-$@ \
>> -f $@/Dockerfile . --build-arg=CONTAINERS_PATH=$(CONTAINERS_PATH)
>>
>>
>
> Thanks,
> Ales
>
>
Thanks,
Dumitru
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev