es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué las acciones de Github ejecutan el comando “cargo” y no lo encuentran?

Primero, uso runs-on: self-hosted y la mayoría de los comandos, como printf, cp y otros, son así:

yaml
- run: cp "$GITHUB_WORKSPACE/run_bin" "$GITHUB_WORKSPACE/$BIN_PATH/"

Pero, algunos comandos, como cargo, dan error con cargo not found, pero en mi Ubuntu ya está instalado y funciona bien.


- run: cargo build //error: command not found

Sin embargo, algunos comandos como pm2 funcionan con las acciones.


- run: pm2 ls //funciona

Realmente no quiero usar complementos de acciones de GitHub como actions-rs/toolchain, ¡es muy muy muy lento!


Actualizando el índice de crates.io
Compilando libc v0.2.112
Compilando proc-macro2 v1.0.36
Compilando unicode-xid v0.2.2
Compilando syn v1.0.84
Compilando cfg-if v1.0.0
Compilando version_check v0.9.4
Compilando autocfg v1.0.1
Compilando memchr v2.4.1
Compilando log v0.4.14
...
...

Esto tarda más de 10 minutos cada vez, incluso cuando uso el complemento actions/cache@v2, no es estable, a veces 3 minutos y a veces 6 minutos.

Ejecuto el comando cargo build en ssh y todo funciona bien, y solo toma varios minutos cada vez.

He buscado en Google durante semanas, parece que todo el mundo quiere usar complementos del mercado de acciones de GitHub.

¿Es la única forma de usar CI/CD en GitHub?

¿Hay alguna manera de hacer CI/CD como en GitLab?

¡Gracias!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Solución de problemas del error cargo no encontrado en GitHub Actions

    Como experto en tecnología de la información especializado en Rust y Rust-Cargo, es posible que te enfrentes a un problema en el que el comando cargo no funciona con GitHub Actions, incluso si ya está instalado y funciona correctamente en Ubuntu. Puedes utilizar la mayoría de los comandos como printf y cp con runs-on: self-hosted, pero algunos comandos como cargo generan un error. Sin embargo, algunos comandos como pm2 funcionan con acciones.

    Para resolver el error cargo no encontrado, puedes considerar utilizar actions-rs/toolchain. Sin embargo, este complemento de GitHub Actions se sabe que es muy lento, lo que podría llevar más de 10 minutos para construir cada vez. Incluso utilizando actions/cache@v2, el complemento no es estable y puede tardar diferentes tiempos en ejecutarse.

    Una posible solución es ejecutar el comando cargo build en SSH. Funciona perfectamente bien y solo tarda unos minutos en ejecutarse. Además, en lugar de utilizar complementos de GitHub Actions, puedes considerar utilizar un pipeline de CI/CD como GitLab, que ofrece un servicio estable y más rápido.

    En resumen, para solucionar el error cargo no encontrado, puedes:

    1. Utilizar actions-rs/toolchain (lento)
    2. Ejecutar el comando cargo build en SSH (más rápido)
    3. Considerar utilizar un pipeline de CI/CD como GitLab (estable y más rápido)

    Espero que esta respuesta te ayude a resolver el error cargo no encontrado con GitHub Actions.

Comments are closed.