ci: fix race on container image name
Checks
Commit Message
We had a race on the container image name when the prepare job was
running a day before the build job was triggered.
Example:
- a prepare job generated image name on 2023/08/01:
2023-08-01T23:59:32.9711845Z ++ date -u +%Y-%m-%d
2023-08-01T23:59:32.9713485Z + echo image=image-fedora:37-2023-08-01
- a few seconds later, the build jobs later tried to use a different
image name on 2023/08/02:
2023-08-02T00:01:29.9103180Z ++ date -u +%Y-%m-%d
2023-08-02T00:01:29.9113486Z + echo image=image-fedora:37-2023-08-02
Fix this by directly reusing the prepare job output.
Fixes: b35c4b0aa2bc ("ci: add Fedora 35 container in GHA")
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
.github/workflows/build.yml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Comments
David Marchand <david.marchand@redhat.com> writes:
> We had a race on the container image name when the prepare job was
> running a day before the build job was triggered.
>
> Example:
> - a prepare job generated image name on 2023/08/01:
>
> 2023-08-01T23:59:32.9711845Z ++ date -u +%Y-%m-%d
> 2023-08-01T23:59:32.9713485Z + echo image=image-fedora:37-2023-08-01
>
> - a few seconds later, the build jobs later tried to use a different
> image name on 2023/08/02:
>
> 2023-08-02T00:01:29.9103180Z ++ date -u +%Y-%m-%d
> 2023-08-02T00:01:29.9113486Z + echo image=image-fedora:37-2023-08-02
>
> Fix this by directly reusing the prepare job output.
>
> Fixes: b35c4b0aa2bc ("ci: add Fedora 35 container in GHA")
> Cc: stable@dpdk.org
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
Acked-by: Aaron Conole <aconole@redhat.com>
The dangers of dates... :-)
On Wed, Aug 2, 2023 at 2:44 PM Aaron Conole <aconole@redhat.com> wrote:
> David Marchand <david.marchand@redhat.com> writes:
>
> > We had a race on the container image name when the prepare job was
> > running a day before the build job was triggered.
> >
> > Example:
> > - a prepare job generated image name on 2023/08/01:
> >
> > 2023-08-01T23:59:32.9711845Z ++ date -u +%Y-%m-%d
> > 2023-08-01T23:59:32.9713485Z + echo image=image-fedora:37-2023-08-01
> >
> > - a few seconds later, the build jobs tried to use a different
> > image name on 2023/08/02:
> >
> > 2023-08-02T00:01:29.9103180Z ++ date -u +%Y-%m-%d
> > 2023-08-02T00:01:29.9113486Z + echo image=image-fedora:37-2023-08-02
> >
> > Fix this by directly reusing the prepare job output.
> >
> > Fixes: b35c4b0aa2bc ("ci: add Fedora 35 container in GHA")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> Acked-by: Aaron Conole <aconole@redhat.com>
Applied, thanks.
@@ -148,6 +148,8 @@ jobs:
prepare-container-images:
name: ${{ join(matrix.config.*, '-') }}
runs-on: ubuntu-latest
+ outputs:
+ image: ${{ steps.get_keys.outputs.image }}
strategy:
fail-fast: false
@@ -214,14 +216,13 @@ jobs:
id: get_keys
run: |
echo 'ccache=ccache-${{ matrix.config.image }}-${{ matrix.config.compiler }}-'$(date -u +%Y-w%W) >> $GITHUB_OUTPUT
- echo 'image=image-${{ matrix.config.image }}-'$(date -u +%Y-%m-%d) >> $GITHUB_OUTPUT
echo 'logs=meson-logs-${{ join(matrix.config.*, '-') }}' | tr -d ':' >> $GITHUB_OUTPUT
- name: Retrieve image cache
id: image_cache
uses: actions/cache@v3
with:
path: ~/.image
- key: ${{ steps.get_keys.outputs.image }}
+ key: ${{ needs.prepare-container-images.outputs.image }}
- name: Fail if no image (not supposed to happen)
if: steps.image_cache.outputs.cache-hit != 'true'
run: |