getgrit / gritql

GritQL is a query language for searching, linting, and modifying code.
https://docs.grit.io/
MIT License
2.93k stars 67 forks source link

please support arm64 linux #437

Open scarf005 opened 1 month ago

scarf005 commented 1 month ago

afaik aarch64-unknown-linux-gnu means arm64 linux, but @gritql/cli fails to install on arm64 linux (node:18-alpine).

➤ YN0000: ┌ Link step
➤ YN0000: │ ESM support for PnP uses the experimental loader API and is therefore experimental
➤ YN0007: │ @getgrit/cli@npm:0.1.0-alpha.1719251160 must be built because it never has been before or the last one failed
➤ YN0009: │ @getgrit/cli@npm:0.1.0-alpha.1719251160 couldn't be built successfully (exit code 1, logs can be found here: /tmp/xfs-616ee427/build.log)
➤ YN0000: └ Completed in 0s 636ms
➤ YN0000: · Failed with errors in 1s 917ms
/main # cat  /tmp/xfs-616ee427/build.log
# This file contains the result of Yarn building a package (@getgrit/cli@npm:0.1.0-alpha.1719251160)
# Script name: postinstall

Platform with type "Linux" and architecture "arm64" is not supported by @getgrit/cli.
Your system must be one of the following:

aarch64-apple-darwin,aarch64-pc-windows-msvc,aarch64-unknown-linux-gnu,x86_64-apple-darwin,x86_64-pc-windows-gnu,x86_64-pc-windows-msvc,x86_64-unknown-linux-gnu
morgante commented 1 month ago

What's the environment you are attempting to use? Is it a Linux container on an M1 mac?

scarf005 commented 1 month ago

the target environment is arm64 + alpine linux CI environment, because develop environment uses arm64 darwin (m1).

morgante commented 1 month ago

Is there a GitHub runner that replicates your environment? We can currently only build from supported GitHub runners.

scarf005 commented 1 month ago

sorry, can't provide the original runner, it's ran on custom private runner. instead it can be reproduced on alpine 18 + arm64 docker:

$ brew install docker
$ colima start # in order to use docker in mac
$ docker run -it --rm node:18-alpine /bin/sh
# apk add git
# mkdir proj && cd proj
# yarn set version stable
# yarn init
# yarn add @getgrit/cli@npm:0.1.0-alpha.1719251160
output log ``` docker run -it --rm node:18-alpine /bin/sh / # apk add git fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/main/aarch64/APKINDEX.tar.gz fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/community/aarch64/APKINDEX.tar.gz (1/13) Installing ca-certificates (20240705-r0) (2/13) Installing brotli-libs (1.1.0-r2) (3/13) Installing c-ares (1.28.1-r0) (4/13) Installing libunistring (1.2-r0) (5/13) Installing libidn2 (2.3.7-r0) (6/13) Installing nghttp2-libs (1.62.1-r0) (7/13) Installing libpsl (0.21.5-r1) (8/13) Installing zstd-libs (1.5.6-r0) (9/13) Installing libcurl (8.9.0-r0) (10/13) Installing libexpat (2.6.2-r0) (11/13) Installing pcre2 (10.43-r0) (12/13) Installing git (2.45.2-r0) (13/13) Installing git-init-template (2.45.2-r0) Executing busybox-1.36.1-r29.trigger Executing ca-certificates-20240705-r0.trigger OK: 25 MiB in 29 packages / # apk add git OK: 25 MiB in 29 packages / # mkdir proj && cd proj /proj # yarn set version stable ➤ YN0000: You don't seem to have Corepack enabled; we'll have to rely on yarnPath instead ➤ YN0000: Downloading https://repo.yarnpkg.com/4.3.1/packages/yarnpkg-cli/bin/yarn.js ➤ YN0000: Saving the new release in .yarn/releases/yarn-4.3.1.cjs ➤ YN0000: Done with warnings in 0s 98ms /proj # yarn init ➤ YN0000: · Yarn 4.3.1 ➤ YN0000: ┌ Resolution step ➤ YN0000: └ Completed ➤ YN0000: ┌ Fetch step ➤ YN0000: └ Completed ➤ YN0000: ┌ Link step ➤ YN0000: └ Completed ➤ YN0000: · Done in 0s 57ms /proj # yarn add @getgrit/cli@npm:0.1.0-alpha.1719251160 ➤ YN0000: · Yarn 4.3.1 ➤ YN0000: ┌ Resolution step ➤ YN0085: │ + @getgrit/cli@npm:0.1.0-alpha.1719251160, @isaacs/cliui@npm:8.0.2, @isaacs/fs-minipass@npm:4.0.1, @pkgjs/parseargs@npm:0.11.0, ansi-regex@npm:5.0.1, and 55 more. ➤ YN0000: └ Completed in 3s 165ms ➤ YN0000: ┌ Fetch step ➤ YN0013: │ 60 packages were added to the project (+ 7.89 MiB). ➤ YN0000: └ Completed in 1s 275ms ➤ YN0000: ┌ Link step ➤ YN0000: │ ESM support for PnP uses the experimental loader API and is therefore experimental ➤ YN0007: │ @getgrit/cli@npm:0.1.0-alpha.1719251160 must be built because it never has been before or the last one failed ➤ YN0009: │ @getgrit/cli@npm:0.1.0-alpha.1719251160 couldn't be built successfully (exit code 1, logs can be found here: /tmp/xfs-b1562e09/build.log) ➤ YN0000: └ Completed in 0s 382ms ➤ YN0000: · Failed with errors in 4s 844ms /proj # ```

i think this setup can be mimicked using macos runner + colima, will update after i get home