espruino / Espruino

The Espruino JavaScript interpreter - Official Repo
http://www.espruino.com/
Other
2.73k stars 741 forks source link

Workflow File for Linux #2452

Closed d3nd3 closed 5 months ago

d3nd3 commented 5 months ago

Artifact creation doens't seem to work for Linux builds.

bin/espruino doesn't match the bin/*.* regexes?

I changed it temporarily for mine to compile.

gfwilliams commented 5 months ago

You mean when using GitHub actions it doesn't upload the binary?

Honestly, I thought that wasn't worth it. When you're on Linux or WSL you just type make on your PC and it's built in about 5 seconds, if that.

d3nd3 commented 5 months ago

Having trouble:

gcc: warning: Git: linker input file unused because linking not done
gcc: error: Git: linker input file not found: No such file or directory
gfwilliams commented 5 months ago

What are you doing that's causing the trouble? What commands? where? what OS?

d3nd3 commented 5 months ago
source ./scripts/provision.sh LINUX
make

Windows 11, WSL2 debian

CC obj/src/jsflash.o
CC obj/src/jspin.o
CC obj/src/jsinteractive.o
CC obj/src/jsdevices.o
src/jsflash.c: In function ‘jsfCacheClearFile’:
...
...
gcc: warning: Git: linker input file unused because linking not done
gcc: error: Git: linker input file not found: No such file or directory
gcc: warning: 2188a9236: linker input file unused because linking not done
gcc: error: 2188a9236: linker input file not found: No such file or directory
make: *** [Makefile:835: obj/src/jsflash.o] Error 1
make: *** Waiting for unfinished jobs....
gcc: warning: Git: linker input file unused because linking not done
gcc: error: Git: linker input file not found: No such file or directory
gcc: warning: 2188a9236: linker input file unused because linking not done
gcc: error: 2188a9236: linker input file not found: No such file or directory
make: *** [Makefile:835: obj/src/jspin.o] Error 1

I aliased python3 to python, to fix some env error. Hope python3 is fine.

gfwilliams commented 5 months ago

That's strange - I wonder why it says Git: though?

I just tried again and it works fine here.

Is it possible you're trying to built it through Git Bash and not WSL?

d3nd3 commented 5 months ago

I am definitely in a debian shell, I will try a clean repo. pulled directly from espruino/Espruino. Ran:

make

same errors. gcc version: gcc (Debian 12.2.0-14) 12.2.0 python version: Python 3.11.2

I can try it on my laptop. It runs linux.

d3nd3 commented 5 months ago

Works on my laptop. Hm.

gfwilliams commented 5 months ago

Maybe try V=1 make and see if it gives some clue as to why it's saying 2188a9236: and Git:

Only other thing I can think is maybe Git is set up to check out everything with Windows Line Endings, and that's why it's screwing it up?

d3nd3 commented 5 months ago

I am using autocrlf=input for linux git and autocrlf=true for windows git

and I do have a weird git wrapper, that either calls windows git or linux git depending on CWD.

/usr/local/bin/git:

#!/usr/bin/env bash
set -e
if [[ $(pwd -P) =~ ^/mnt/. ]]
    then
        echo "windows Git"
        exec /mnt/c/Program\ Files/Git/cmd/git.exe "$@"
    else
        echo "linux Git"
        exec /usr/bin/git "$@"
fi

should I try disable this wrapper?

I have idea, I will try my wsl1 ubuntu distro

d3nd3 commented 5 months ago

Ok, it works on my ubuntu wsl1, which ran python2. It might just be that it works only with python2?

Which python version do you use? Nevermind, it also works with python3 on ubuntu wsl1.

Problem resolved, my wrapper was causing it. You must have some unique scripts that interface the git command in a way that my wrapper does not support!

d3nd3 commented 5 months ago

Okay, that is really funny, my cheeky: echo "windows Git" Obviously messed up some output from some of the scripts, if its piped or something.!!! Silly me! Sorry.

gfwilliams commented 5 months ago

Ok, great! :)