TL;DR - Why can't this pipeline find gcc
?
In the following pipeline, the job is failing because it cannot find gcc
in the PATH
.This is using the official GCC docker image. I've also used this workflow for another project.
image: gccvariables: DEBVER: "1" VERSION: "0.0.1-alpha" JSON_PARSER_MIRROR: "https://gitlab.com/oxr463/json-parser/-/jobs/484303930/artifacts/raw"deb: stage: build before_script: - apt update && apt install -y debhelper devscripts libpam0g-dev - curl -O "${JSON_PARSER_MIRROR}/libjsonparser1.1_1.1.0-1_amd64.deb" - curl -O "${JSON_PARSER_MIRROR}/libjsonparser-dev_1.1.0-1_amd64.deb" - dpkg -i libjsonparser1.1_1.1.0-1_amd64.deb - dpkg -i libjsonparser-dev_1.1.0-1_amd64.deb - mkdir -p build script: - which gcc - export PATH="${PATH}:/usr/local/bin" - tar cvzf "../pam-oauth2_${VERSION}.orig.tar.gz" --exclude='.git*' --exclude='*.deb' . - mv ../*.orig.tar.gz . - tar -xf *.orig.tar.gz -C build/ - cd build - debuild -us -uc -d -i'(.*)' after_script: - rm -rf build artifacts: paths: - "*.deb"
Source: https://gitlab.com/oxr463/pam_oauth2/-/blob/debian-fix/.gitlab-ci.yml
$ debuild -us -uc -d -i'(.*)'dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) dpkg-buildpackage -us -uc -ui -d -i(.*)dpkg-buildpackage: info: source package pam-oauth2dpkg-buildpackage: info: source version 0.0.1-alpha-1dpkg-buildpackage: info: source distribution UNRELEASEDdpkg-buildpackage: info: source changed by Lucas Ramage <ramage.lucas@protonmail.com>dpkg-architecture: warning: cannot determine CC system type, falling back to default (native compilation) dpkg-source -i(.*) --before-build .dpkg-buildpackage: info: host architecture amd64 debian/rules cleandh clean dh_auto_clean make -j1 cleanmake[1]: Entering directory '/builds/oxr463/pam_oauth2/build'rm *.o *.so pam_test pam_oauth2rm: cannot remove '*.o': No such file or directoryrm: cannot remove '*.so': No such file or directoryrm: cannot remove 'pam_test': No such file or directoryrm: cannot remove 'pam_oauth2': No such file or directorymake[1]: [Makefile:43: clean] Error 1 (ignored)make[1]: Leaving directory '/builds/oxr463/pam_oauth2/build' dh_clean dpkg-source -i(.*) -b .dpkg-source: info: using source format '3.0 (quilt)'dpkg-source: info: building pam-oauth2 using existing ./pam-oauth2_0.0.1-alpha.orig.tar.gzdpkg-source: info: building pam-oauth2 in pam-oauth2_0.0.1-alpha-1.debian.tar.xzdpkg-source: info: building pam-oauth2 in pam-oauth2_0.0.1-alpha-1.dsc debian/rules buildmake: 'build' is up to date. debian/rules binarydh binary dh_update_autotools_config debian/rules override_dh_auto_configuremake[1]: Entering directory '/builds/oxr463/pam_oauth2/build'dh_auto_configure -- --with-pam-dir=/lib/x86_64-linux-gnu/securitymake[1]: Leaving directory '/builds/oxr463/pam_oauth2/build' dh_auto_build make -j1make[1]: Entering directory '/builds/oxr463/pam_oauth2/build'gcc -g -O2 -fdebug-prefix-map=/builds/oxr463/pam_oauth2/build=. -fstack-protector-strong -Wformat -Werror=format-security -Werror -fPIC -I/system/apps/pam/latest/include -I/system/apps/curl/latest/include -I/system/apps/json-parser/latest/include -Wdate-time -D_FORTIFY_SOURCE=2 -c -o pam_oauth2_core.o pam_oauth2_core.cmake[1]: gcc: Command not foundmake[1]: *** [<builtin>: pam_oauth2_core.o] Error 127make[1]: Leaving directory '/builds/oxr463/pam_oauth2/build'dh_auto_build: make -j1 returned exit code 2make: *** [debian/rules:6: binary] Error 2dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2debuild: fatal error at line 1182:dpkg-buildpackage -us -uc -ui -d -i(.*) failed
Source: https://gitlab.com/oxr463/pam_oauth2/-/jobs/485171400
Reference: