Page MenuHomePhabricator

`fresh-node -env -net` not working on macOS 10.15
Closed, ResolvedPublic

Description

I'm following the documentation at Selenium/How-to/Run tests targeting MediaWiki-Docker using Fresh.

Looks like fresh works fine on my machine, but fresh-node -env -net is not.

~/Documents/gerrit/mediawiki/core$ rm /usr/local/bin/fresh-node 

~/Documents/gerrit/mediawiki/core$ bash -c 'curl -fsS https://gerrit.wikimedia.org/g/fresh/+/20.08.1/bin/fresh-node10?format=TEXT \
| base64 --decode > /usr/local/bin/fresh-node \
&& echo "45a5b28a3eb38c1136902edac57a7570a251db99e4e936721d0b2a3572ddfc71  /usr/local/bin/fresh-node" | shasum -c \
&& chmod +x /usr/local/bin/fresh-node \
&& echo -e "\n\xf0\x9f\x8c\xb1\x20Fresh\x20is\x20ready\x21\n"||(echo -e "\xe2\x9d\x8c";false)'
/usr/local/bin/fresh-node: OK
🌱 Fresh is ready!

~/Documents/gerrit/mediawiki/core$ fresh-node                                                                                      
# fresh: 20.08.1 (2020-08-27)
# image: docker-registry.wikimedia.org/releng/node10-test-browser:0.6.2
# software: Debian GNU/Linux 9 (stretch)
#           Node.js v10.15.2 (npm 6.14.5)
#           Chromium 71.0.3578.80
#           Mozilla Firefox 68.11.0esr
#           JSDuck 5.3.4 (Ruby 2.3.3)
# mount: /core      ➟ /Users/z/Documents/gerrit/mediawiki/core      (read-write)
#        /core/.git ➟ /Users/z/Documents/gerrit/mediawiki/core/.git (read-only)
🌱  Fresh!
nobody@5c32f927e276:/core$ exit

When I use fresh-node -env -net, nothing happens. πŸ€·β€β™‚οΈ

~/Documents/gerrit/mediawiki/core$ fresh-node -env -net
~/Documents/gerrit/mediawiki/core$

Environment.

~$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.15.7
BuildVersion:	19H114

$ docker --version
Docker version 20.10.2, build 2291f61

~$ docker-compose --version
docker-compose version 1.27.4, build 40524192

Event Timeline

Works for me, same versions of everything:

krinkle at KrinkleMac in ~/Development/mediawiki
$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.15.7
BuildVersion:	19H114
$  docker --version
Docker version 20.10.2, build 2291f61

$ fresh-node -net -env
# fresh: 20.08.1 (2020-08-27)
# image: docker-registry.wikimedia.org/releng/node10-test-browser:0.6.2
# software: Debian GNU/Linux 9 (stretch)
#           Node.js v10.15.2 (npm 6.14.5)
#           Chromium 71.0.3578.80
#           Mozilla Firefox 68.11.0esr
#           JSDuck 5.3.4 (Ruby 2.3.3)
# mount: /mediawiki      ➟ /Users/krinkle/Development/mediawiki      (read-write)
#        /mediawiki/.git ➟ /Users/krinkle/Development/mediawiki/.git (read-only)
# env: MW_*, MEDIAWIKI_*
# net: expose host

🌱  Fresh!

nobody@docker-desktop:/mediawiki$

Can you modify fresh-node to set -x and try again?

/usr/local/bin/fresh-node
- #!/bin/bash -eu
+ #!/bin/bash -eux

Does -net work on its own? Does -env work on its own? If -env is the one that fails, do you have a .env file in mediawiki/core, and if so, what are its contents? That might help narrow down the issue.

Krinkle renamed this task from `fresh-node -env -net` not working to `fresh-node -env -net` not working on macOS 10.15.Jan 18 2021, 9:20 PM
Krinkle claimed this task.

Thanks for the quick reply!

Can you modify fresh-node to set -x and try again?

Done.

~/Documents/gerrit/mediawiki/core$ head -n1 /usr/local/bin/fresh-node 
#!/bin/bash -eux

Does -net work on its own?

Yes!

~/Documents/gerrit/mediawiki/core$ fresh-node -net     
+ scriptversion='20.08.1 (2020-08-27)'
+ imagename=docker-registry.wikimedia.org/releng/node10-test-browser
+ imageversion=0.6.2
+ shortname=fresh-node10
+ mountsrc=/Users/z/Documents/gerrit/mediawiki/core
++ basename /Users/z/Documents/gerrit/mediawiki/core
+ mountdest=/core
+ welcometxt_suffix=
+ docker_args=()
+ allow_env_mw=
+ allow_net=
+ allow_root=
+ bind_git_ro=
+ for arg in '"$@"'
+ case "$arg" in
+ allow_net=1
++ tput sgr0
+ CLR_NONE=''
++ tput bold
+ CLR_BOLD=''
++ tput setaf 2
+ CLR_GREEN=''
++ tput setaf 3
+ CLR_YELLOW=''
++ tput setaf 7
+ CLR_GREY=''
+ '[' -e /Users/z/Documents/gerrit/mediawiki/core/.git ']'
+ bind_git_ro=1
+ welcometxt_suffix+='#        /core/.git ➟ /Users/z/Documents/gerrit/mediawiki/core/.git (read-only)\n'
+ '[' -n '' ']'
+ trap 'echo -e '\''\033]2;\007'\''' 0 SIGTERM SIGINT
+ '[' -n 1 ']'
+ welcometxt_suffix+='# net: expose host\n'
+ docker_args+=("--network" "host")
+ '[' -n '' ']'
++ uname -s
+ '[' Darwin == Linux ']'
+ echo -e '\033]2;fresh-node10\007\c'
+ welcomecmd='echo "# fresh: 20.08.1 (2020-08-27)
# image: docker-registry.wikimedia.org/releng/node10-test-browser:0.6.2
# software: Debian GNU/Linux 9 (stretch)
#           Node.js v10.15.2 (npm 6.14.5)
#           Chromium 71.0.3578.80
#           Mozilla Firefox 68.11.0esr
#           JSDuck 5.3.4 (Ruby 2.3.3)
# mount: /core      ➟ /Users/z/Documents/gerrit/mediawiki/core      (read-write)
#        /core/.git ➟ /Users/z/Documents/gerrit/mediawiki/core/.git (read-only)\n# net: expose host\n
🌱  Fresh!
"'
+ '[' -n '' ']'
+ docker_args+=("--interactive" "--tty")
+ runcmd=bash
++ '[' -n 1 ']'
++ printf %s '--mount type=bind,source=/Users/z/Documents/gerrit/mediawiki/core/.git,target=/core/.git,readonly,consistency=cached'
+ docker run --rm -e HOME=/tmp --mount type=bind,source=/Users/z/Documents/gerrit/mediawiki/core,target=/core,consistency=delegated --mount type=bind,source=/Users/z/Documents/gerrit/mediawiki/core/.git,target=/core/.git,readonly,consistency=cached --network host --interactive --tty --entrypoint /bin/sh --security-opt label=disable docker-registry.wikimedia.org/releng/node10-test-browser:0.6.2 -c 'cd /core/;echo "# fresh: 20.08.1 (2020-08-27)
# image: docker-registry.wikimedia.org/releng/node10-test-browser:0.6.2
# software: Debian GNU/Linux 9 (stretch)
#           Node.js v10.15.2 (npm 6.14.5)
#           Chromium 71.0.3578.80
#           Mozilla Firefox 68.11.0esr
#           JSDuck 5.3.4 (Ruby 2.3.3)
# mount: /core      ➟ /Users/z/Documents/gerrit/mediawiki/core      (read-write)
#        /core/.git ➟ /Users/z/Documents/gerrit/mediawiki/core/.git (read-only)\n# net: expose host\n
🌱  Fresh!
";bash'
# fresh: 20.08.1 (2020-08-27)
# image: docker-registry.wikimedia.org/releng/node10-test-browser:0.6.2
# software: Debian GNU/Linux 9 (stretch)
#           Node.js v10.15.2 (npm 6.14.5)
#           Chromium 71.0.3578.80
#           Mozilla Firefox 68.11.0esr
#           JSDuck 5.3.4 (Ruby 2.3.3)
# mount: /core      ➟ /Users/z/Documents/gerrit/mediawiki/core      (read-write)
#        /core/.git ➟ /Users/z/Documents/gerrit/mediawiki/core/.git (read-only)
# net: expose host

🌱  Fresh!

nobody@docker-desktop:/core$

Does -env work on its own?

No.

~/Documents/gerrit/mediawiki/core$ fresh-node -env     
+ scriptversion='20.08.1 (2020-08-27)'
+ imagename=docker-registry.wikimedia.org/releng/node10-test-browser
+ imageversion=0.6.2
+ shortname=fresh-node10
+ mountsrc=/Users/z/Documents/gerrit/mediawiki/core
++ basename /Users/z/Documents/gerrit/mediawiki/core
+ mountdest=/core
+ welcometxt_suffix=
+ docker_args=()
+ allow_env_mw=
+ allow_net=
+ allow_root=
+ bind_git_ro=
+ for arg in '"$@"'
+ case "$arg" in
+ allow_env_mw=1
++ tput sgr0
+ CLR_NONE=''
++ tput bold
+ CLR_BOLD=''
++ tput setaf 2
+ CLR_GREEN=''
++ tput setaf 3
+ CLR_YELLOW=''
++ tput setaf 7
+ CLR_GREY=''
+ '[' -e /Users/z/Documents/gerrit/mediawiki/core/.git ']'
+ bind_git_ro=1
+ welcometxt_suffix+='#        /core/.git ➟ /Users/z/Documents/gerrit/mediawiki/core/.git (read-only)\n'
+ '[' -n 1 ']'
++ mktemp
+ envfile=/var/folders/lp/_zdbscx92l14yr1q1nwjzslm0000gn/T/tmp.yXsePLkF
+ env
+ grep -E 'MW_|MEDIAWIKI_'
~/Documents/gerrit/mediawiki/core$

If -env is the one that fails, do you have a .env file in mediawiki/core, and if so, what are its contents?

Yes.

~/Documents/gerrit/mediawiki/core$ cat .env 
MW_DOCKER_PORT=8080
MW_SCRIPT_PATH=/w
MW_SERVER=http://localhost:8080
MEDIAWIKI_USER=Admin
MEDIAWIKI_PASSWORD=dockerpass
XDEBUG_CONFIG=''

Okay, so the issue here is that grep fails because it finds no matching env variables. I think I fixed that in master already, because now that we support env files, that's okay. (And also, should have a better error, which I added as well).

As quick fix, set one or all of these (also) from your bashrc file.

Krinkle triaged this task as Medium priority.Jan 20 2021, 2:18 AM
Krinkle moved this task from Inbox to Problem on the Fresh board.

As quick fix, set one or all of these (also) from your bashrc file.

Thanks!

I've updated the documentation! The steps now work fine on my machine.

What's the next step to resolve this? Release a new version of Fresh? Is there anything I should do?

I'll resolve this for now. The next release will go out within the next couple of days.