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.
> ---
> .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.
> 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.
>
> - 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
--
Ales Musil
Senior Software Engineer - OVN Core
Red Hat EMEA <https://www.redhat.com>
[email protected]
<https://red.ht/sig>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev