Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider avoiding the dependency on quay.io server in the GitHub Action "Check if generated files are up to date" job #112088

Closed
vstinner opened this issue Nov 14, 2023 · 7 comments
Labels
3.12 bugs and security fixes 3.13 bugs and security fixes build The build process and cross-build

Comments

@vstinner
Copy link
Member

vstinner commented Nov 14, 2023

Last weeks/months, the quay.io server failed time time time. The problem is that the Python workflow has a GitHub Action "Check if generated files are up to date" job which pulls a container image from quay.io to run the make regen-configure command.

Should we consider avoiding the dependency on the quay.io server to make our workflow more reliable?

Linked PRs

@vstinner
Copy link
Member Author

vstinner commented Nov 14, 2023

Recently, I documented commands to run make regen-configure with no container: https://docs.python.org/dev/using/configure.html#generated-files

I tried to run autoreconf -ivf -Werror in an Ubuntu 22.04 container (same Ubuntu version than the one currently used by the GHA job) to see if we can get the exact output. Sadly, it changes the output :-(

On Fedora, I create an Ubuntu 22.04 container with:

podman image pull ubuntu:22.04
podman image list --all
podman run --name ubuntu-dev --hostname ubuntu-dev --interactive --tty ubuntu:22.04

Commands which are supposed to produce the same output than make regen-configure:

apt update
apt install -y git autotools-dev autoconf autoconf-archive pkgconf
git clone https://github.com/python/cpython/ --depth=1
cd cpython/
autoreconf -ivf -Werror
git diff

Output:

diff --git a/aclocal.m4 b/aclocal.m4
index da8ee95..b309f4d 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.16.4 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
 
 # Copyright (C) 1996-2021 Free Software Foundation, Inc.
 

Versions retrieved by dpkg -l|grep -E 'autotools|autoconf|pkgconf':

  • autoconf 2.71-2
  • autoconf-archive 20210219-2.1
  • autotools-dev 20220109.1
  • libpkgconf3:amd64 1.8.0-1
  • pkgconf 1.8.0-1

@vstinner
Copy link
Member Author

cc @erlend-aasland

@vstinner
Copy link
Member Author

Last weeks/months, the quay.io server failed time time time.

Example:

Trying to pull quay.io/tiran/cpython_autoconf:271...
Error: initializing source docker://quay.io/tiran/cpython_autoconf:271: reading manifest 271 in quay.io/tiran/cpython_autoconf: received unexpected HTTP status: 504 Gateway Time-out

build: https://github.com/python/cpython/actions/runs/6869118007/job/18682243065?pr=112063

@vstinner
Copy link
Member Author

This latest server issue is tracked at: https://status.quay.io/incidents/z7sbjqmb34p1

vstinner added a commit to vstinner/cpython that referenced this issue Nov 14, 2023
The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the unstable quay.io
server.
@vstinner
Copy link
Member Author

The server fails with different errors:

podman run --rm --pull=always -v /home/runner/work/cpython/cpython:/src quay.io/tiran/cpython_autoconf:271
Trying to pull quay.io/tiran/cpython_autoconf:271...
Error: initializing source docker://quay.io/tiran/cpython_autoconf:271: can't talk to a V1 container registry

@vstinner
Copy link
Member Author

apt install -y git autotools-dev autoconf autoconf-archive pkgconf

Hum, pkg-config should be installed, not pkgconf.

vstinner added a commit to vstinner/cpython that referenced this issue Nov 14, 2023
The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Regenerate aclocal.m4 and configure using Ubuntu 22.04 versions.
@vstinner
Copy link
Member Author

vstinner commented Nov 14, 2023

vstinner added a commit to vstinner/cpython that referenced this issue Nov 15, 2023
The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.
vstinner added a commit to vstinner/cpython that referenced this issue Nov 15, 2023
The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.
@erlend-aasland erlend-aasland added build The build process and cross-build 3.12 bugs and security fixes 3.13 bugs and security fixes labels Nov 15, 2023
vstinner added a commit that referenced this issue Nov 15, 2023
The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Nov 15, 2023
…H-112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.
(cherry picked from commit d9fd33a)

Co-authored-by: Victor Stinner <vstinner@python.org>
vstinner added a commit to vstinner/cpython that referenced this issue Nov 16, 2023
…112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.

(cherry picked from commit d9fd33a)
vstinner added a commit that referenced this issue Nov 16, 2023
) (#112159)

gh-112088: Run autoreconf in GHA check_generated_files (#112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.

(cherry picked from commit d9fd33a)
aisk pushed a commit to aisk/cpython that referenced this issue Feb 11, 2024
…112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.12 bugs and security fixes 3.13 bugs and security fixes build The build process and cross-build
Projects
None yet
Development

No branches or pull requests

2 participants