Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 10, 2026

  • Changed runner from ubuntu-latest to ubuntu-22.04 in .github/workflows/dusk_ci.yml
  • Fixed chromedriver symlink creation to properly check if files point to different locations before creating symlink
Original prompt

Problem

The EndToEnd Testing workflow is failing due to package dependency issues in Ubuntu 24.04. The job fails when trying to install ChromeDriver dependencies:

E: Package 'libasound2' has no installation candidate
##[error]Process completed with exit code 100.

Failing job: https://github.com/Punksolid/rentadmin/actions/runs/20886154492/job/60009595630

Root cause: The workflow currently uses ubuntu-latest which points to Ubuntu 24.04. This version renamed many packages with the "t64" suffix (e.g., libasound2libasound2t64) as part of the 64-bit architecture transition. The chromium-chromedriver package has dependencies on the old package names that no longer exist.

Solution

Change the runner from ubuntu-latest to ubuntu-22.04 in the workflow file .github/workflows/dusk_ci.yml.

Why Ubuntu 22.04:

  • It's an LTS version with support until 2027
  • It doesn't have the "t64" package naming issues
  • It's more stable for CI/CD workflows
  • ChromeDriver works without compatibility issues

Changes needed

In .github/workflows/dusk_ci.yml, line 6:

dusk-php:
  runs-on: ubuntu-22.04  # Change from ubuntu-latest

This is the only change required to fix the failing workflow.

This pull request was created from Copilot chat.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: Punksolid <416409+Punksolid@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix EndToEnd testing workflow by updating Ubuntu version Fix EndToEnd Testing workflow Ubuntu 24.04 package dependency failures Jan 10, 2026
Copilot AI requested a review from Punksolid January 10, 2026 23:51
Copy link
Owner

@Punksolid Punksolid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot revisa el error de github actions, según la información dice

El trabajo falló debido a este error:

ln: '/usr/lib/chromium-browser/chromedriver' and '/usr/bin/chromedriver' are the same file

Este mensaje indica que el script intenta crear un enlace simbólico para chromedriver, pero los archivos origen y destino ya son el mismo archivo, lo cual provoca el fallo (exit code 1).

Solución recomendada:
Antes de crear el enlace simbólico, verifica si ya existe o si fuente y destino son iguales. Puedes modificar el comando en tu flujo de trabajo (probablemente en .github/workflows/dusk_ci.yml) así:

- name: Fix chromedriver symlink
  run: |
    if [ ! -e /usr/bin/chromedriver ] && [ -e /usr/lib/chromium-browser/chromedriver ]; then
      ln -s /usr/lib/chromium-browser/chromedriver /usr/bin/chromedriver
    fi

O, mejor aún, valida si el destino y origen apuntan al mismo archivo:

- name: Safe symlink for chromedriver
  run: |
    if [ "$(readlink -f /usr/bin/chromedriver)" != "/usr/lib/chromium-browser/chromedriver" ]; then
      ln -sf /usr/lib/chromium-browser/chromedriver /usr/bin/chromedriver
    fi

Realiza este cambio en el archivo de workflow dusk_ci.yml para evitar que vuelva a producirse este error. ¿Necesitas ayuda localizando o editando esa sección del workflow?

@Punksolid Punksolid changed the base branch from develop to add-login-and-register-turnstile January 11, 2026 00:16
Co-authored-by: Punksolid <416409+Punksolid@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 11, 2026

@copilot revisa el error de github actions, según la información dice

El trabajo falló debido a este error:...

Fixed in commit 33a5a44. Added a check to verify if the files are already the same before creating the symlink using readlink -f to compare the resolved paths.

@Punksolid
Copy link
Owner

@copilot corrige esto

El error principal es:
ln: '/usr/lib/chromium-browser/chromedriver' and '/usr/bin/chromedriver' are the same file
Esto ocurre al intentar crear un enlace simbólico (ln) donde origen y destino son exactamente el mismo archivo. El workflow se detiene con exit code 1.

Solución:
Corrige el script para crear el symlink solo si los archivos son diferentes. Puedes modificar el paso relevante en el workflow (.github/workflows/dusk_ci.yml) con un condicional así:

- name: Symlink chromedriver
  run: |
    if [ "/usr/lib/chromium-browser/chromedriver" != "/usr/bin/chromedriver" ]; then
      ln -sf /usr/lib/chromium-browser/chromedriver /usr/bin/chromedriver
    fi

Esto evita el error y permite que el flujo continúe si ya existe el symlink correcto.

Si necesitas más ayuda con ese workflow, dime y te muestro el bloque que debes modificar.

Co-authored-by: Punksolid <416409+Punksolid@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 11, 2026

@copilot corrige esto

El error principal es:
...

Fixed in commit 3d6a632. The issue was comparing a resolved path to a literal string. Now properly comparing resolved paths of both files and only creating the symlink if they point to different locations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants