On 11/15/23 14:02, Ales Musil wrote:
> On Wed, Nov 15, 2023 at 1:53 PM Dumitru Ceara <[email protected]> wrote:
>
>> 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.
>>
Avoiding IMAGE_NAME is not as easy as it sounds. We run system tests as
root so we'd also have to run the step that pulls and tags the image as
root. It's simpler to just set IMAGE_NAME as env variable as we
preserve the env when running the system tests.
>>>
>>>> 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.
>>
>
> Alright, let's move IMAGE_NAME too then.
>
>
OK, will do that.
>>
>>>
>>>>
>>>> - 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>
>>>> <
>> 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
>>
>>
> Thanks,
> Ales
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev