promyloph / guix-install-action Goto Github PK
View Code? Open in Web Editor NEWGitHub action to install GNU Guix
License: MIT License
GitHub action to install GNU Guix
License: MIT License
We use guix-install-action at https://github.com/atlas-engineer/nyxt/ (thanks a lot by the way, very useful!) but recently it has been failing increasingly at this line:
https://github.com/PromyLOPh/guix-install-action/blob/v1/action.yml#L33
See for instance
https://github.com/atlas-engineer/nyxt/runs/6399684430?check_suite_focus=true ๐
Run PromyLOPh/guix-install-action@v1
Run echo LANG=en_US.utf8 >> $GITHUB_ENV
Run wget -nv https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh -O guix-install.sh
2022-05-12 04:09:03 URL:https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh [20087/20087] -> "guix-install.sh" [1]
https://ci.guix.gnu.org/search/latest/archive?query=spec:tarball+status:success+system:x86_64-linux+guix-binary.tar.xz:
2022-05-12 04:09:03 ERROR 500: Internal Server Error.
Error: Process completed with exit code 8.
Looks like the Guix CI is erroring out. Any idea?
I'm not sure how exactly Github Actions are executed on remote server. I suppose, currently it will guix pull
every time it runs, which is a lot of redundant work to do. But there is probably a way to speed up this process. Do you have any idea about that?
I've been running a bunch of Guix actions today and systematically got this:
Run PromyLOPh/guix-install-action@v1
Run echo LANG=en_US.utf8 >> $GITHUB_ENV
Run wget -nv https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh -O guix-install.sh
2022-07-04 16:34:13 URL:https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh [20087/20087] -> "guix-install.sh" [1]
2022-07-04 16:34:18 URL:https://ci.guix.gnu.org/download/813 [98114060/98114060] -> "guix-binary-nightly.x86_64-linux.tar.xz" [1]
Run wget "https://sv.gnu.org/people/viewgpg.php?user_id=127547" -qO - | sudo gpg --import -
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: key 1260E46482E63562: 2 signatures not checked due to missing keys
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 1260E46482E63562: public key "Maxim Cournoyer <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: no ultimately trusted keys found
gpg: key 090B11993D9AEBB5: 127 signatures not checked due to missing keys
gpg: key 090B11993D9AEBB5: public key "Ludovic Courtรจs <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: no ultimately trusted keys found
Run export GUIX_BINARY_FILE_NAME=guix-binary-nightly.x86_64-linux.tar.xz
โโโ โโโ
โโโโโโโโโโโโโ โโโโโโโโโโโโโ
โโโโโโโโโโโโโโ โโโโโโโโโโโโโ
โโโโโโโโโโโ โโโโโโโโโโ
โโโโโโ โโโโโโ
โโโโโ โโโโโโ
โโโโโ โโโโโ
โโโโโโ โโโโโ
โโโโโ โโโโโ
โโโโโ โโโโโ
โโโโโโโโโโโ
โโโโโโโโโ
โโโโโโโ
_____ _ _ _ _ _____ _
/ ____| \ | | | | | / ____| (_)
| | __| \| | | | | | | __ _ _ ___ __
| | |_ | . ' | | | | | | |_ | | | | \ \/ /
| |__| | |\ | |__| | | |__| | |_| | |> <
\_____|_| \_|\____/ \_____|\__,_|_/_/\_\
This script installs GNU Guix on your system
https://www.gnu.org/software/guix/
Press return to continue...[1656952459.771]: Starting installation (Mon 04 Jul 2022 04:34:19 PM UTC)
[1656952459.773]: [ PASS ] verification of required commands completed
[1656952459.793]: [ INFO ] init system is: systemd
[1656952459.801]: [ WARN ] We recommend installing and/or starting your distribution 'nscd' service
[1656952459.802]: [ WARN ] Please read 'info guix "Application Setup"' about "Name Service Switch"
[1656952459.803]: [ INFO ] system is x86_64-linux
[1656952459.804]: [ INFO ] Using manually provided binary guix-binary-nightly.x86_64-linux.tar.xz
[1656952467.876]: [ PASS ] unpacked archive
[1656952467.877]: [ INFO ] Installing /var/guix and /gnu...
[1656952467.881]: [ INFO ] Linking the root user's profile
[1656952467.885]: [ PASS ] activated root profile at /root/.config/guix/current
[1656952467.908]: [ PASS ] group <guixbuild> created
[1656952467.910]: [ INFO ] group kvm exists and build users will be added to it
[1656952467.933]: [ PASS ] user added <guixbuilder01>
[1656952467.948]: [ PASS ] user added <guixbuilder02>
[1656952467.964]: [ PASS ] user added <guixbuilder03>
[1656952467.979]: [ PASS ] user added <guixbuilder04>
[1656952467.995]: [ PASS ] user added <guixbuilder05>
[1656952468.010]: [ PASS ] user added <guixbuilder06>
[1656952468.026]: [ PASS ] user added <guixbuilder07>
[1656952468.041]: [ PASS ] user added <guixbuilder08>
[1656952468.057]: [ PASS ] user added <guixbuilder09>
[1656952468.073]: [ PASS ] user added <guixbuilder10>
Created symlink /etc/systemd/system/guix-daemon.service.wants/gnu-store.mount โ /etc/systemd/system/gnu-store.mount.
Created symlink /etc/systemd/system/multi-user.target.wants/guix-daemon.service โ /etc/systemd/system/guix-daemon.service.
[1656952469.096]: [ PASS ] enabled Guix daemon via systemd
[1656952469.097]: [ INFO ] making the guix command available to other users
Backtrace:
In ice-9/boot-9.scm:
222:29 19 (map1 (((srfi srfi-1)) ((srfi srfi-9)) ((srfi #)) (#) โฆ))
222:29 18 (map1 (((srfi srfi-9)) ((srfi srfi-11)) ((srfi #)) (#) โฆ))
222:29 17 (map1 (((srfi srfi-11)) ((srfi srfi-26)) ((srfi #)) # โฆ))
222:29 16 (map1 (((srfi srfi-26)) ((srfi srfi-34)) ((srfi #)) # โฆ))
222:29 15 (map1 (((srfi srfi-34)) ((srfi srfi-35)) ((srfi #)) # โฆ))
222:29 14 (map1 (((srfi srfi-35)) ((srfi srfi-37)) ((gnu #)) (โฆ) โฆ))
222:29 13 (map1 (((srfi srfi-37)) ((gnu packages)) ((guix #) โฆ) โฆ))
222:17 12 (map1 (((gnu packages)) ((guix status) #:select (#)) # โฆ))
3327:17 11 (resolve-interface (gnu packages) #:select _ #:hide _ # โฆ)
In ice-9/threads.scm:
390:8 10 (_ _)
In ice-9/boot-9.scm:
3253:13 9 (_)
In ice-9/threads.scm:
390:8 8 (_ _)
In ice-9/boot-9.scm:
3544:20 7 (_)
2836:4 6 (save-module-excursion #<procedure 7f63d5938cf0 at ice-โฆ>)
3564:26 5 (_)
In unknown file:
4 (primitive-load-path "gnu/packages" #<procedure 7f63d59โฆ>)
In gnu/packages.scm:
150:17 3 (_)
In guix/describe.scm:
123:12 2 (package-path-entries)
110:24 1 (_)
In ice-9/ports.scm:
433:17 0 (call-with-input-file _ _ #:binary _ #:encoding _ # _)
ice-9/ports.scm:433:17: In procedure call-with-input-file:
ERROR:
1. &message: "unsupported manifest format"
yes: standard output: Broken pipe
Error: Process completed with exit code 1.
Any idea what's going on?
Currently, the install action terminates (on Ubuntu20.04 runners) after creating the systemd entry (example log), i.e. at the first yes/no prompt.
This is the first point that the guix-install script as it is executed by the action encounters the recently modified prompt_yes_no()
function. It was modified in this commit. Apparently, the changes lead to the yes
utility no longer adequatly stopping the prompt...
The https://github.com/guix-mirror/guix.git mirror stopped updating some time ago, and apparently was just removed completely instead of fixing. The default value for the channels
input refers to that mirror; that reference should be removed to make the action work without specifying that input manually.
The URL that fetches the Guix binary is not working.
See an example of a CI action failing below.
https://github.com/atlas-engineer/nyxt/actions/runs/4927423723/jobs/8804386083
Is there a workaround? Thanks.
building /gnu/store/f13b12c633n0xdjasawm9rihamr7yv9d-gcc-cross-x86_64-linux-gnu-10.3.0.drv...
building /gnu/store/b7nqdcpqikxi1q3j0v6fm91805c4zmdk-x86_64-linux-gnu-toolchain-10.3.0.drv...
substitute:
substitute: updating substitutes from 'https://ci.guix.gnu.org/'... 0.0%guix substitute: error: TLS error in procedure 'write_to_session_record_port': Error in the push function.
guix environment: error: `/gnu/store/4lmpqf8dnk86avq5xa2l6bznxnmrz27x-guix-1.4.0-7.44bbfc2/bin/guix substitute' died unexpectedly
It's happen every time on Github action and not happen on real machine or VM Ubuntu 22.04
Hello, how can I provide the channels
setting as a path on my checkout, instead of a string in the action?
Hi! :-)
When using this action and running a new guix pull
, i.e.:
- name: Install Guix
uses: PromyLOPh/guix-install-action@v1
- name: Add custom channel
run: guix pull -C ./channels.scm
...the channels step fails with:
Migrating profile generations to '/var/guix/profiles/per-user/runner'...
guix pull: error: while creating symlink '/home/runner/.config/guix/current': File exists
Error: Process completed with exit code 1.
This is because of a Ubuntu quirk: sudo
on Ubuntu preserves the invoking users $HOME
, causing the wrong ~/.config/guix/current
symlink.
I tried adding passing the --set-home
and --login
arguments to sudo
to no avail.
One workaround is to delete the unprivileged users ~/.config/guix
after running this action:
- name: Work around Ubuntu quirk
run: sudo rm -rf ~/.config/guix
...or just keep running sudo guix ...
, as it does not really matter.
The Install Guix
phase has recently started failing with
[1677520229.916]: [ INFO ] Linking the root user's profile
[1677520230.118]: [ PASS ] activated root profile at /root/.config/guix/current
[1677520230.169]: [ PASS ] group <guixbuild> created
[1677520230.173]: [ INFO ] group kvm exists and build users will be added to it
[1677520230.246]: [ PASS ] user added <guixbuilder01>
[1677520230.270]: [ PASS ] user added <guixbuilder02>
[1677520230.297]: [ PASS ] user added <guixbuilder03>
[1677520230.339]: [ PASS ] user added <guixbuilder04>
[1677520230.375]: [ PASS ] user added <guixbuilder05>
[1677520230.420]: [ PASS ] user added <guixbuilder06>
[1677520230.452]: [ PASS ] user added <guixbuilder07>
[1677520230.479]: [ PASS ] user added <guixbuilder08>
[1677520230.512]: [ PASS ] user added <guixbuilder09>
[1677520230.542]: [ PASS ] user added <guixbuilder10>
Created symlink /etc/systemd/system/guix-daemon.service.wants/gnu-store.mount โ /etc/systemd/system/gnu-store.mount.
Unit /etc/systemd/system/gnu-store.mount is added as a dependency to a non-existent unit guix-daemon.service.
Created symlink /etc/systemd/system/multi-user.target.wants/guix-daemon.service โ /etc/systemd/system/guix-daemon.service.
[1677520232.146]: [ PASS ] enabled Guix daemon via systemd
[1677520232.149]: [ INFO ] making the guix command available to other users
[1677520232.474]: [ PASS ] Authorized public key for ci.guix.gnu.org
[1677520232.632]: [ PASS ] Authorized public key for bordeaux.guix.gnu.org
[1677520232.647]: [ PASS ] installed shell completion
[1677520232.701]: [ PASS ] Bash shell prompt successfully customized for Guix
[1677520232.703]: [ INFO ] cleaning up /tmp/guix.KiwyEv
[1677520232.705]: [ PASS ] Guix has successfully been installed!
[1677520232.707]: [ INFO ] Run 'info guix' to read the manual.
[1677520232.709]: [ INFO ] Please log out and back in to complete the installation.
yes: standard output: Broken pipe
Error: Unable to process file command 'env' successfully.
Error: Access to the path '/home/runner/work/_temp/_runner_file_commands/set_env_ce49b965-d6e4-4c91-8f30-d2ab253d8be5' is denied.
Error: Unable to process file command 'state' successfully.
Error: Access to the path '/home/runner/work/_temp/_runner_file_commands/save_state_ce49b965-d6e4-4c91-8f30-d2ab253d8be5' is denied.
Error: Unable to process file command 'output' successfully.
Error: Access to the path '/home/runner/work/_temp/_runner_file_commands/set_output_ce49b965-d6e4-4c91-8f30-d2ab253d8be5' is denied.
Error: Unable to process file command 'env' successfully.
Error: Access to the path '/home/runner/work/_temp/_runner_file_commands/set_env_00feac3d-a6fe-4153-b14f-0323783bb262' is denied.
Error: Unable to process file command 'state' successfully.
Error: Access to the path '/home/runner/work/_temp/_runner_file_commands/save_state_00feac3d-a6fe-4153-b14f-0323783bb262' is denied.
Error: Unable to process file command 'output' successfully.
Error: Access to the path '/home/runner/work/_temp/_runner_file_commands/set_output_00feac3d-a6fe-4153-b14f-0323783bb262' is denied.
I presume it's due to a change in the GitHub CI API. @PromyLOPh Any idea?
Hello, just started using your Github Action, and I've super easily been able to use it to create docker image tarballs.
I feel this is so nice as to be worth advertising on the cover page of the project, as well as in the demo yaml.
See my half-baked docker image building PR on a toy Rust project, though my understanding of Github Actions is limited, you may do something nicer than I did.
Yes, this just means showing that --format docker
is supported in the READMEs. And yes it's guix
doing all the hard work, but it's kind of a massive positive for a CI system, showcasing creating docker images.
Feel free to close this armchair contribution if it's not worth it. Cheers
Thanks for your maintenance.
The URL https://ci.guix.gnu.org/search/latest/archive?query=spec:tarball+status:success+system:x86_64-linux+guix-binary.tar.xz , which is written in here, responses "502 bad gateway". I tried it yesterday and today but the responses are same.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.