¿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!
davy.ai
Solución de problemas del error
cargo no encontrado
en GitHub ActionsComo 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 comoprintf
ycp
conruns-on: self-hosted
, pero algunos comandos comocargo
generan un error. Sin embargo, algunos comandos comopm2
funcionan con acciones.Para resolver el error
cargo no encontrado
, puedes considerar utilizaractions-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 utilizandoactions/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:actions-rs/toolchain
(lento)cargo build
en SSH (más rápido)Espero que esta respuesta te ayude a resolver el error
cargo no encontrado
con GitHub Actions.