Hey there! I’ve been using Flox on Mac basically without a hitch for 3 months, and I’ve started to explore using Flox for GitHub Actions. However, I can’t seem to get Flox to activate in a linux environment. Here are the steps I went through.
I wanted to test Flox GitHub actions locally, so I installed act
within my Flox environment (GitHub - nektos/act: Run your GitHub Actions locally 🚀)
I then followed the GitHub actions tutorial and set up my workflow like this
name: Flox
on:
workflow_dispatch:
jobs:
build:
name: "Build website"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Install Flox"
uses: "flox/install-flox-action@v2"
- name: "Build"
uses: "flox/activate-action@v1"
with:
command: echo "Hello world"
Running this command provides the following output
act -W .github/workflows/ci-v2.yaml workflow_dispatch
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock'
[Flox/Build website] ⭐ Run Set up job
[Flox/Build website] 🚀 Start image=ghcr.io/catthehacker/ubuntu:act-latest
[Flox/Build website] 🐳 docker pull image=ghcr.io/catthehacker/ubuntu:act-latest platform=linux/amd64 username= forcePull=true
[Flox/Build website] 🐳 docker create image=ghcr.io/catthehacker/ubuntu:act-latest platform=linux/amd64 entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Flox/Build website] 🐳 docker run image=ghcr.io/catthehacker/ubuntu:act-latest platform=linux/amd64 entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Flox/Build website] 🐳 docker exec cmd=[node --no-warnings -e console.log(process.execPath)] user= workdir=
[Flox/Build website] ✅ Success - Set up job
[Flox/Build website] ☁ git clone 'https://github.com/flox/install-flox-action' # ref=v2
[Flox/Build website] ☁ git clone 'https://github.com/flox/activate-action' # ref=v1
[Flox/Build website] ⭐ Run Pre Build
[Flox/Build website] ✅ Success - Pre Build [21.016ms]
[Flox/Build website] ⭐ Run Main Checkout
[Flox/Build website] 🐳 docker cp src=/Users/jordan/GitHub/foundry/. dst=/Users/jordan/GitHub/foundry
[Flox/Build website] ✅ Success - Main Checkout [2.369841583s]
[Flox/Build website] ⭐ Run Main Install Flox
[Flox/Build website] 🐳 docker cp src=/Users/jordan/.cache/act/flox-install-flox-action@v2/ dst=/var/run/act/actions/flox-install-flox-action@v2/
[Flox/Build website] 🐳 docker exec cmd=[/opt/acttoolcache/node/18.20.8/x64/bin/node /var/run/act/actions/flox-install-flox-action@v2/dist/index.js] user= workdir=
[Flox/Build website] ❓ ::group::Download & Install flox
| DOWNLOAD_URL resolved to https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
| [command]/usr/bin/bash -c /run/act/actions/flox-install-flox-action@v2/scripts/install-flox.sh
| Downloading flox...
| % Total % Received % Xferd Average Speed Time Time Time Current
| Dload Upload Total Spent Left Speed
100 56.4M 100 56.4M 0 0 82.3M 0 --:--:-- --:--:-- --:--:-- 82.6M
| Installing flox...
| Selecting previously unselected package flox.
| (Reading database ... 26725 files and directories currently installed.)
| Preparing to unpack flox.x86_64-linux.deb ...
| Unpacking flox (1.4.1) ...
| Setting up flox (1.4.1) ...
[Flox/Build website] ❓ ::endgroup::
[Flox/Build website] ✅ Success - Main Install Flox [6.535572292s]
[Flox/Build website] ⚙ ::set-env:: INPUT_DOWNLOAD_URL=https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
[Flox/Build website] ⭐ Run Main Build
[Flox/Build website] 🐳 docker cp src=/Users/jordan/.cache/act/flox-activate-action@v1/ dst=/var/run/act/actions/flox-activate-action@v1/
[Flox/Build website] ⭐ Run Main Run flox activate
[Flox/Build website] 🐳 docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/2-composite-0.sh] user= workdir=
| Flox collects basic usage metrics in order to improve the user experience.
|
| Flox includes a record of the subcommand invoked along with a unique token.
| It does not collect any personal information.
|
| The collection of metrics can be disabled in the following ways:
|
| environment: FLOX_DISABLE_METRICS=true
| user-wide: flox config --set disable_metrics true
| system-wide: update /etc/flox.toml as described in flox-config(1)
|
| This is a one-time notice.
|
|
⠒ Building environment
Where the animation for the Building environment pauses.
I thought this might have to do with me using an Apple Silicon Macbook and running a linux amd64 container using rosetta locally so I tried deploying the action to GitHub to run on one of their runners and it hangs there too, with different logs though (slightly)
2025-05-13T09:25:09.6046100Z Current runner version: '2.323.0'
2025-05-13T09:25:09.6081245Z ##[group]Operating System
2025-05-13T09:25:09.6082565Z Ubuntu
2025-05-13T09:25:09.6083342Z 24.04.2
2025-05-13T09:25:09.6084101Z LTS
2025-05-13T09:25:09.6084937Z ##[endgroup]
2025-05-13T09:25:09.6085766Z ##[group]Runner Image
2025-05-13T09:25:09.6086771Z Image: ubuntu-24.04
2025-05-13T09:25:09.6087554Z Version: 20250504.1.0
2025-05-13T09:25:09.6089151Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20250504.1/images/ubuntu/Ubuntu2404-Readme.md
2025-05-13T09:25:09.6090531Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20250504.1
2025-05-13T09:25:09.6092367Z ##[endgroup]
2025-05-13T09:25:09.6093391Z ##[group]Runner Image Provisioner
2025-05-13T09:25:09.6094389Z 2.0.422.1
2025-05-13T09:25:09.6095162Z ##[endgroup]
2025-05-13T09:25:09.6097079Z ##[group]GITHUB_TOKEN Permissions
2025-05-13T09:25:09.6099650Z Contents: read
2025-05-13T09:25:09.6100658Z Metadata: read
2025-05-13T09:25:09.6102071Z Packages: read
2025-05-13T09:25:09.6103173Z ##[endgroup]
2025-05-13T09:25:09.6106003Z Secret source: Actions
2025-05-13T09:25:09.6107142Z Prepare workflow directory
2025-05-13T09:25:09.6811112Z Prepare all required actions
2025-05-13T09:25:09.6869063Z Getting action download info
2025-05-13T09:25:10.3673323Z ##[group]Download immutable action package 'actions/checkout@v4'
2025-05-13T09:25:10.3674693Z Version: 4.2.2
2025-05-13T09:25:10.3675806Z Digest: sha256:ccb2698953eaebd21c7bf6268a94f9c26518a7e38e27e0b83c1fe1ad049819b1
2025-05-13T09:25:10.3677317Z Source commit SHA: 11bd71901bbe5b1630ceea73d27597364c9af683
2025-05-13T09:25:10.3678355Z ##[endgroup]
2025-05-13T09:25:10.4541651Z Download action repository 'flox/install-flox-action@v2' (SHA:ba0eb4eb776f1d3b47279d7980f6643caffd8c41)
2025-05-13T09:25:11.0618918Z Download action repository 'flox/activate-action@v1' (SHA:bdcbcf8d84af6f503e588ae4125e48133787df95)
2025-05-13T09:25:11.5880195Z Complete job name: Build website
2025-05-13T09:25:11.6601479Z ##[group]Run actions/checkout@v4
2025-05-13T09:25:11.6602832Z with:
2025-05-13T09:25:11.6603594Z repository: foundrydev/foundry
2025-05-13T09:25:11.6604831Z token: ***
2025-05-13T09:25:11.6605584Z ssh-strict: true
2025-05-13T09:25:11.6606366Z ssh-user: git
2025-05-13T09:25:11.6607185Z persist-credentials: true
2025-05-13T09:25:11.6608069Z clean: true
2025-05-13T09:25:11.6608854Z sparse-checkout-cone-mode: true
2025-05-13T09:25:11.6609814Z fetch-depth: 1
2025-05-13T09:25:11.6610591Z fetch-tags: false
2025-05-13T09:25:11.6611731Z show-progress: true
2025-05-13T09:25:11.6612540Z lfs: false
2025-05-13T09:25:11.6613267Z submodules: false
2025-05-13T09:25:11.6614146Z set-safe-directory: true
2025-05-13T09:25:11.6615328Z ##[endgroup]
2025-05-13T09:25:11.8729508Z Syncing repository: foundrydev/foundry
2025-05-13T09:25:11.8733098Z ##[group]Getting Git version info
2025-05-13T09:25:11.8734594Z Working directory is '/home/runner/work/foundry/foundry'
2025-05-13T09:25:11.8737203Z [command]/usr/bin/git version
2025-05-13T09:25:11.8770258Z git version 2.49.0
2025-05-13T09:25:11.8806132Z ##[endgroup]
2025-05-13T09:25:11.8820378Z Temporarily overriding HOME='/home/runner/work/_temp/ec37b923-3e04-41dd-aa00-ad501e1a0645' before making global git config changes
2025-05-13T09:25:11.8827085Z Adding repository directory to the temporary git global config as a safe directory
2025-05-13T09:25:11.8830746Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/foundry/foundry
2025-05-13T09:25:11.8874155Z Deleting the contents of '/home/runner/work/foundry/foundry'
2025-05-13T09:25:11.8879640Z ##[group]Initializing the repository
2025-05-13T09:25:11.8884884Z [command]/usr/bin/git init /home/runner/work/foundry/foundry
2025-05-13T09:25:11.8947791Z hint: Using 'master' as the name for the initial branch. This default branch name
2025-05-13T09:25:11.8951211Z hint: is subject to change. To configure the initial branch name to use in all
2025-05-13T09:25:11.8954363Z hint: of your new repositories, which will suppress this warning, call:
2025-05-13T09:25:11.8957355Z hint:
2025-05-13T09:25:11.8960699Z hint: git config --global init.defaultBranch <name>
2025-05-13T09:25:11.8962845Z hint:
2025-05-13T09:25:11.8964615Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2025-05-13T09:25:11.8967619Z hint: 'development'. The just-created branch can be renamed via this command:
2025-05-13T09:25:11.8970054Z hint:
2025-05-13T09:25:11.8971504Z hint: git branch -m <name>
2025-05-13T09:25:11.8973732Z Initialized empty Git repository in /home/runner/work/foundry/foundry/.git/
2025-05-13T09:25:11.8981738Z [command]/usr/bin/git remote add origin https://github.com/foundrydev/foundry
2025-05-13T09:25:11.9017715Z ##[endgroup]
2025-05-13T09:25:11.9022228Z ##[group]Disabling automatic garbage collection
2025-05-13T09:25:11.9026121Z [command]/usr/bin/git config --local gc.auto 0
2025-05-13T09:25:11.9051482Z ##[endgroup]
2025-05-13T09:25:11.9055275Z ##[group]Setting up auth
2025-05-13T09:25:11.9058882Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2025-05-13T09:25:11.9095071Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2025-05-13T09:25:11.9397582Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2025-05-13T09:25:11.9426298Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2025-05-13T09:25:11.9668820Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2025-05-13T09:25:11.9706996Z ##[endgroup]
2025-05-13T09:25:11.9711416Z ##[group]Fetching the repository
2025-05-13T09:25:11.9730237Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +39344b34ee050369d76f38e7df062470c9a51a42:refs/remotes/origin/app-router
2025-05-13T09:25:13.5227675Z From https://github.com/foundrydev/foundry
2025-05-13T09:25:13.5228647Z * [new ref] 39344b34ee050369d76f38e7df062470c9a51a42 -> origin/app-router
2025-05-13T09:25:13.5267688Z ##[endgroup]
2025-05-13T09:25:13.5269602Z ##[group]Determining the checkout info
2025-05-13T09:25:13.5272223Z ##[endgroup]
2025-05-13T09:25:13.5274653Z [command]/usr/bin/git sparse-checkout disable
2025-05-13T09:25:13.5340359Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2025-05-13T09:25:13.5382904Z ##[group]Checking out the ref
2025-05-13T09:25:13.5390655Z [command]/usr/bin/git checkout --progress --force -B app-router refs/remotes/origin/app-router
2025-05-13T09:25:13.7977436Z Switched to a new branch 'app-router'
2025-05-13T09:25:13.7992811Z branch 'app-router' set up to track 'origin/app-router'.
2025-05-13T09:25:13.8014049Z ##[endgroup]
2025-05-13T09:25:13.8078651Z [command]/usr/bin/git log -1 --format=%H
2025-05-13T09:25:13.8124036Z 39344b34ee050369d76f38e7df062470c9a51a42
2025-05-13T09:25:13.8307547Z ##[group]Run flox/install-flox-action@v2
2025-05-13T09:25:13.8307867Z with:
2025-05-13T09:25:13.8308048Z channel: stable
2025-05-13T09:25:13.8308240Z ##[endgroup]
2025-05-13T09:25:13.9022289Z ##[group]Download & Install flox
2025-05-13T09:25:13.9080255Z DOWNLOAD_URL resolved to https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
2025-05-13T09:25:13.9114099Z [command]/usr/bin/bash -c /home/runner/work/_actions/flox/install-flox-action/v2/scripts/install-flox.sh
2025-05-13T09:25:13.9274326Z Downloading flox...
2025-05-13T09:25:13.9356944Z % Total % Received % Xferd Average Speed Time Time Time Current
2025-05-13T09:25:13.9358698Z Dload Upload Total Spent Left Speed
2025-05-13T09:25:13.9360204Z
2025-05-13T09:25:13.9677735Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
2025-05-13T09:25:14.4094310Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
2025-05-13T09:25:14.4095003Z 100 56.4M 100 56.4M 0 0 119M 0 --:--:-- --:--:-- --:--:-- 119M
2025-05-13T09:25:14.4119299Z Installing flox...
2025-05-13T09:25:14.4939253Z Selecting previously unselected package flox.
2025-05-13T09:25:17.9695933Z (Reading database ... 222550 files and directories currently installed.)
2025-05-13T09:25:17.9766353Z Preparing to unpack flox.x86_64-linux.deb ...
2025-05-13T09:25:17.9829540Z Unpacking flox (1.4.1) ...
2025-05-13T09:25:18.4503474Z Setting up flox (1.4.1) ...
2025-05-13T09:25:25.8382306Z Processing triggers for man-db (2.12.0-4build2) ...
2025-05-13T09:26:22.5046482Z ##[endgroup]
2025-05-13T09:26:22.5177936Z ##[group]Run flox/activate-action@v1
2025-05-13T09:26:22.5178215Z with:
2025-05-13T09:26:22.5178403Z command: echo "Hello world"
2025-05-13T09:26:22.5178615Z env:
2025-05-13T09:26:22.5178950Z INPUT_DOWNLOAD_URL: https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
2025-05-13T09:26:22.5179357Z ##[endgroup]
2025-05-13T09:26:22.5292314Z ##[group]Run flox activate -- echo "Hello world"
2025-05-13T09:26:22.5292692Z e[36;1mflox activate -- echo "Hello world"e[0m
2025-05-13T09:26:22.5321259Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2025-05-13T09:26:22.5321580Z env:
2025-05-13T09:26:22.5321902Z INPUT_DOWNLOAD_URL: https://downloads.flox.dev/by-env/stable/deb/flox.x86_64-linux.deb
2025-05-13T09:26:22.5322292Z ##[endgroup]
2025-05-13T09:26:22.5549845Z Flox collects basic usage metrics in order to improve the user experience.
2025-05-13T09:26:22.5550503Z
2025-05-13T09:26:22.5551110Z Flox includes a record of the subcommand invoked along with a unique token.
2025-05-13T09:26:22.5551798Z It does not collect any personal information.
2025-05-13T09:26:22.5552154Z
2025-05-13T09:26:22.5552431Z The collection of metrics can be disabled in the following ways:
2025-05-13T09:26:22.5552859Z
2025-05-13T09:26:22.5553026Z environment: FLOX_DISABLE_METRICS=true
2025-05-13T09:26:22.5553544Z user-wide: flox config --set disable_metrics true
2025-05-13T09:26:22.5554179Z system-wide: update /etc/flox.toml as described in flox-config(1)
2025-05-13T09:26:22.5554612Z
2025-05-13T09:26:22.5554748Z This is a one-time notice.
2025-05-13T09:26:22.5554993Z
2025-05-13T09:26:22.5554999Z
2025-05-13T09:38:42.8400796Z ##[error]The operation was canceled.
2025-05-13T09:38:43.0029686Z Post job cleanup.
2025-05-13T09:38:44.0396314Z [command]/usr/bin/git version
2025-05-13T09:38:44.0397435Z git version 2.49.0
2025-05-13T09:38:44.0431891Z Temporarily overriding HOME='/home/runner/work/_temp/f230c2d7-1efa-4391-878c-d3320cf4bce6' before making global git config changes
2025-05-13T09:38:44.0433719Z Adding repository directory to the temporary git global config as a safe directory
2025-05-13T09:38:44.0435194Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/foundry/foundry
2025-05-13T09:38:44.0439386Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2025-05-13T09:38:44.0445280Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2025-05-13T09:38:44.0447162Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2025-05-13T09:38:44.0448021Z http.https://github.com/.extraheader
2025-05-13T09:38:44.0449177Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2025-05-13T09:38:44.0451443Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2025-05-13T09:38:44.0730847Z Cleaning up orphan processes
2025-05-13T09:38:44.1926161Z Terminate orphan process: pid (3903) (.flox-wrapped)
2025-05-13T09:38:44.2074784Z Terminate orphan process: pid (3910) (flox)
2025-05-13T09:38:44.2347617Z Terminate orphan process: pid (10330) (nix)
2025-05-13T09:38:44.3185899Z Terminate orphan process: pid (10343) (nix)
Where it hangs after the This is a one-time notice
. The “operation was canceled” shows up because I manually quit the workflow after about 15 minutes of no changes.
So I’m not too sure where to start debugging but here’s my manifest. I’ve already tried removing all my hooks and services so I’m not adding that here
# Flox manifest version managed by Flox CLI
version = 1
## Install Packages --------------------------------------------------
## $ flox install gum <- puts a package in [install] section below
## $ flox search gum <- search for a package
## $ flox show gum <- show all versions of a package
## -------------------------------------------------------------------
[install]
act-act.pkg-group = "act"
act-act.pkg-path = "act"
act-act.version = "0.2.77"
caddy.flake = "path:.flox/flakes/caddy-s3"
gum.pkg-path = "gum"
nats-natscli.pkg-group = "nats"
nats-natscli.pkg-path = "natscli"
nats-natscli.version = "0.1.5"
nats-nats-server.pkg-group = "nats"
nats-nats-server.pkg-path = "nats-server"
nats-nats-server.version = "2.10.21"
supabase-supabase-cli.pkg-group = "supabase"
supabase-supabase-cli.pkg-path = "supabase-cli"
supabase-supabase-cli.version = "2.22.8"
turborepo-pnpm.pkg-group = "turborepo"
turborepo-pnpm.pkg-path = "pnpm"
turborepo-pnpm.version = "9.12.0"
typesense-typesense.pkg-group = "typesense"
typesense-typesense.pkg-path = "typesense"
typesense-typesense.version = "26.0"
vault.pkg-group = "vault"
vault.pkg-path = "vault"
vault.version = "1.18.2"
vault-consul-template.pkg-group = "vault"
vault-consul-template.pkg-path = "consul-template"
vault-consul-template.version = "0.39.1"
vault-envconsul.pkg-group = "vault"
vault-envconsul.pkg-path = "envconsul"
vault-envconsul.version = "0.13.2"
cloudflared.pkg-path = "cloudflared"
cloudflared.version = "2025.2.0"
nodejs_22.pkg-path = "nodejs_22"
flyctl.pkg-path = "flyctl"
sftpgo.pkg-path = "sftpgo"
sftpgo.version = "2.6.6"
rclone.pkg-path = "rclone"
## Environment Variables ---------------------------------------------
## ... available for use in the activated environment
## as well as [hook], [profile] scripts and [services] below.
## -------------------------------------------------------------------
[vars]
VAULT_ADDR = "https://foundry-vault.fly.dev"
VAULT_ENV = "dev"
## Other Environment Options -----------------------------------------
[options]
# Systems that environment is compatible with
systems = ["aarch64-darwin", "aarch64-linux", "x86_64-darwin", "x86_64-linux"]
# Uncomment to disable CUDA detection.
# cuda-detection = false
My Caddy dependency is a custom flake within the the .flox
directory of my environment and is defined as such
{
description = "Caddy with certmagik-s3";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs {
inherit system;
};
caddy-s3 = pkgs.caddy.withPlugins {
# plugins require a version number, this lib doesn't tag releases, so we just pulled the go pseudo version
# https://github.com/NixOS/nixpkgs/blob/e3e32b642a31e6714ec1b712de8c91a3352ce7e1/pkgs/by-name/ca/caddy/plugins.nix#L44
plugins = [ "github.com/ss098/certmagic-s3@v0.0.0-20240919074713-f227064b6744" ];
hash = "4ZtSgpoXcGBxEF7ALsCDkePM8E0G6geEaNKMrr3MjQE=";
};
in
{
packages.default = caddy-s3;
}
);
}
I took a crash course in Nix but still have a ton to understand but I don’t think I’m doing anything too crazy here.
Any ideas where we can start debugging to figure out the culprit here? I also tried running an Ubuntu machine from Orbstack
and that build also froze (but this is essentially a container just like act
runs so I guess I’m not surprised this failed as well). Anyways, really appreciate any help and more than happy to provide more resources to help debug. Thanks!!