Error to page build from local to remote

In local, the page build works fine, but when I push it to remote, script/cibuild keeps showing errors.

Below is script/cibuild error code at my repo.

Run sh script/bootstrap
Successfully installed bundler-2.2.5
Parsing documentation for bundler-2.2.5
Installing ri documentation for bundler-2.2.5
Done installing documentation for bundler after 3 seconds
1 gem installed
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using public_suffix 4.0.6
Using bundler 2.2.5
Using colorator 1.1.0
Using concurrent-ruby 1.1.7
Fetching eventmachine 1.2.7
Fetching http_parser.rb 0.6.0
Installing http_parser.rb 0.6.0 with native extensions
Installing eventmachine 1.2.7 with native extensions
Fetching ffi 1.14.2
Fetching faraday-net_http 1.0.1
Installing faraday-net_http 1.0.1
Using multipart-post 2.1.1
Using ruby2_keywords 0.0.2
Using forwardable-extended 2.6.0
Using mercenary 0.4.0
Fetching racc 1.5.2
Installing ffi 1.14.2 with native extensions
Installing racc 1.5.2 with native extensions
Using parallel 1.20.1
Using rainbow 3.0.0
Using yell 2.2.2
Using rb-fsevent 0.10.4
Using rexml 3.2.4
Using liquid 4.0.3
Using rouge 3.26.0
Using safe_yaml 1.0.5
Using unicode-display_width 1.7.0
Using addressable 2.7.0
Using i18n 1.8.7
Using em-websocket 0.5.2
Using faraday 1.3.0
Using pathutil 0.16.2
Fetching nokogiri 1.11.1 (x86_64-linux)
Using kramdown 2.3.0
Using terminal-table 2.0.0
Using sawyer 0.8.2
Using ethon 0.12.0
Fetching sassc 2.4.0
Installing sassc 2.4.0 with native extensions
Installing nokogiri 1.11.1 (x86_64-linux)
Using rb-inotify 0.10.1
Using kramdown-parser-gfm 1.1.0
Using typhoeus 1.4.0
Using octokit 4.20.0
Fetching nokogumbo 2.0.4
Fetching listen 3.4.1
Installing listen 3.4.1
Installing nokogumbo 2.0.4 with native extensions
Using jekyll-gist 1.5.0
Using jekyll-sass-converter 2.1.0
Using jekyll-watch 2.2.1
Using jekyll 4.2.0
Using jekyll-feed 0.15.1
Using jekyll-include-cache 0.2.1
Using jekyll-seo-tag 2.7.1
Using jekyll-sitemap 1.4.0
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/home/runner/work/Jwmc999.github.io/Jwmc999.github.io/vendor/bundle/ruby/2.7.0/gems/nokogumbo-2.0.4/ext/nokogumbo
/opt/hostedtoolcache/Ruby/2.7.2/x64/bin/ruby -I
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0 -r
./siteconf20210115-1854-719v9m.rb extconf.rb
Ignoring wdm-0.1.1 because its extensions are not built. Try: gem pristine wdm
--version 0.1.1
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/opt/hostedtoolcache/Ruby/2.7.2/x64/bin/$(RUBY_BASE_NAME)
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:155:in
`require': cannot load such file -- nokogiri/nokogiri (LoadError)
from
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:155:in
`require'
from
/home/runner/work/Jwmc999.github.io/Jwmc999.github.io/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.11.1-x64-mingw32/lib/nokogiri.rb:32:in
`rescue in <top (required)>'
from
/home/runner/work/Jwmc999.github.io/Jwmc999.github.io/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.11.1-x64-mingw32/lib/nokogiri.rb:11:in
`<top (required)>'
from
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in
`require'
from
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in
`rescue in require'
from
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:156:in
`require'
	from extconf.rb:4:in `<main>'
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:103:in
`require':
/home/runner/work/Jwmc999.github.io/Jwmc999.github.io/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.11.1-x64-mingw32/lib/nokogiri/2.7/nokogiri.so:
invalid ELF header -
/home/runner/work/Jwmc999.github.io/Jwmc999.github.io/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.11.1-x64-mingw32/lib/nokogiri/2.7/nokogiri.so
(LoadError)
from
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:103:in
`require'
from
/home/runner/work/Jwmc999.github.io/Jwmc999.github.io/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.11.1-x64-mingw32/lib/nokogiri.rb:13:in
`<top (required)>'
from
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in
`require'
from
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in
`rescue in require'
from
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:156:in
`require'
	from extconf.rb:4:in `<main>'
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in
`require': cannot load such file -- nokogiri (LoadError)
from
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in
`require'
	from extconf.rb:4:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in
/home/runner/work/Jwmc999.github.io/Jwmc999.github.io/vendor/bundle/ruby/2.7.0/gems/nokogumbo-2.0.4
for inspection.
Results logged to
/home/runner/work/Jwmc999.github.io/Jwmc999.github.io/vendor/bundle/ruby/2.7.0/extensions/x86_64-linux/2.7.0/nokogumbo-2.0.4/gem_make.out

An error occurred while installing nokogumbo (2.0.4), and Bundler cannot
continue.
Make sure that `gem install nokogumbo -v '2.0.4' --source
'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  html-proofer was resolved to 3.18.5, which depends on
    nokogumbo
Error: Process completed with exit code 5.

However, this ‘nokogumbo 2.0.4’ is installed in local already, see below:

$ script/bootstrap
Successfully installed bundler-2.2.5
Parsing documentation for bundler-2.2.5
Done installing documentation for bundler after 8 seconds
1 gem installed
Using public_suffix 4.0.6
Using addressable 2.7.0
Using bundler 2.2.4
Using colorator 1.1.0
Using concurrent-ruby 1.1.7
Using eventmachine 1.2.7 (x64-mingw32)
Using http_parser.rb 0.6.0
Using em-websocket 0.5.2
Using ffi 1.14.2 (x64-mingw32)
Using ethon 0.12.0
Using faraday-net_http 1.0.0
Using multipart-post 2.1.1
Using ruby2_keywords 0.0.2
Using faraday 1.3.0
Using forwardable-extended 2.6.0
Using mercenary 0.4.0
Using racc 1.5.2
Using nokogiri 1.11.1 (x64-mingw32)
Using nokogumbo 2.0.4
Using parallel 1.20.1
Using rainbow 3.0.0
Using typhoeus 1.4.0
Using yell 2.2.2
Using html-proofer 3.18.5
Using i18n 1.8.7
Using sassc 2.4.0 (x64-mingw32)
Using jekyll-sass-converter 2.1.0
Using rb-fsevent 0.10.4
Using rb-inotify 0.10.1
Using listen 3.4.0
Using jekyll-watch 2.2.1
Using rexml 3.2.4
Using kramdown 2.3.0
Using kramdown-parser-gfm 1.1.0
Using liquid 4.0.3
Using pathutil 0.16.2
Using rouge 3.26.0
Using safe_yaml 1.0.5
Using unicode-display_width 1.7.0
Using terminal-table 2.0.0
Using jekyll 4.2.0
Using jekyll-feed 0.15.1
Using sawyer 0.8.2
Using octokit 4.20.0
Using jekyll-gist 1.5.0
Using jekyll-include-cache 0.2.1
Using jekyll-seo-tag 2.7.1
Using jekyll-sitemap 1.4.0
Using thread_safe 0.3.6
Using tzinfo 1.2.9
Using tzinfo-data 1.2020.6
                    done in 101.496 seconds.
 Auto-regeneration: disabled. Use --watch to enable.w installed.
Bundled gems are installed into `./vendor/bundle`

and both
bundle exec jekyll build and ‘bundle exec jekyll serve’ work perfectly in local as below:

$ bundle exec jekyll build
Configuration file: C:/Users/user/Desktop/Jwmc999.github.io/_config.yml
            Source: C:/Users/user/Desktop/Jwmc999.github.io
       Destination: C:/Users/user/Desktop/Jwmc999.github.io/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 92.344 seconds.
 Auto-regeneration: disabled. Use --watch to enable.
$ bundle exec jekyll serve
Configuration file: C:/Users/user/Desktop/Jwmc999.github.io/_config.yml
            Source: C:/Users/user/Desktop/Jwmc999.github.io
       Destination: C:/Users/user/Desktop/Jwmc999.github.io/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 114.032 seconds.
 Auto-regeneration: enabled for '.'
    Server address: http://127.0.0.1:4000/
  Server running... press ctrl-c to stop.

I wonder why push to remote keeps fail to build the remote page. I’m using Atom to working in local. Any insight on what I missed?

In case, my repo is https://github.com/Jwmc999/Jwmc999.github.io

Try install Ruby dev headers

$ sudo apt-get install ruby-dev

The other error is

from extconf.rb:4:in `<main>'
/opt/hostedtoolcache/Ruby/2.7.2/x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in
`require': cannot load such file -- nokogiri (LoadError)

Despite nokogiri installed.

1 Like

Running is sh uses dash on Linux and behaves differently to Bash. It might not be reading your bashrc, some syntax is different (dash doesn’t accept [[ in bash scripts).

Use bash instead:

bash script/bootstrap
bash script/cibuild

Or make the executable.

chmod +x script *

and change /bin/sh in each to /bin/bash

And run directly as

./script/bootstrap
1 Like

Thank you so much! Changing to bash and bin/bash did work!
Thank you so much for your comments!!

1 Like