Profiling and default homebrew configuration in GitHub Actions

Cron Deployment: Cron Deployment

This page is used to post output generated by GitHub Actions on macOS to get the details of the homebrew setup and to run profiling experiments on ways to try to speedup Homebrew on GitHub actions.

Currently, no posting/analysis is being done on the timing data collected during this workflow. However, the CSV files with install times for the three packages are being tracked and updated. These can be downloaded from the deployed webpage (https://izaakbeekman.com/brew-GHA-profiling) or browsed and downloaded from the gh-pages branch of the main repository. The three CSV files with timing data are:

Homebrew defaults on GitHub Actions

key value
date Tue Feb 25 16:10:25 UTC 2020
commit 23929659c03e7ffbde3f3babb9b616d2766ef70d
branch master
repo zbeekman/brew-GHA-profiling

General configuration information

97 kegs, 116,646 files, 6.6GB

Hardware:

    Hardware Overview:

      Model Name: Apple device
      Model Identifier: VMware7,1
      Processor Speed: 3.33 GHz
      Number of Processors: 2
      Total Number of Cores: 4
      L2 Cache (per Core): 256 KB
      L3 Cache (per Processor): 12 MB
      Memory: 12 GB
      Boot ROM Version: VMW71.00V.13989454.B64.1906190538
      Apple ROM Info: [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]Welcome to the Virtual Machine
      SMC Version (system): 2.8f0
      Serial Number (system): VMJVYgG6hYEw
      Hardware UUID: 4203018E-580F-C1B5-9525-B745CECA79EB

key value
cores 4
threads 4

brew config

key value
HOMEBREW_VERSION 2.2.6
ORIGIN https://github.com/Homebrew/brew
HEAD 27fa87c94a6cf7be40fc8f8fc96bc7c387b7781e
Last commit 8 days ago
Core tap ORIGIN https://github.com/Homebrew/homebrew-core
Core tap HEAD 0aba2b8d1e53b95afda1491d4c2fa2426c23f003
Core tap last commit 8 days ago
HOMEBREW_PREFIX /usr/local
HOMEBREW_NO_ANALYTICS_THIS_RUN 1
HOMEBREW_NO_AUTO_UPDATE 1
CPU quad-core 64-bit ivybridge
Homebrew Ruby 2.6.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
Clang 11.0 build 1100
Git 2.25.0 => /usr/local/bin/git
Curl 7.64.1 => /usr/bin/curl
Java 13.0.2-zulu-13.29+9, 12.0.2-zulu-12.3+11, 11.0.6-zulu-11.37+17, 1.8.0_242-zulu-8.44.0.11, 1.7.0_252-zulu-7.36.0.5
macOS 10.15.3-x86_64
CLT 11.3.1.0.1.1576735732
Xcode 11.3.1 => /Applications/Xcode_11.3.1.app/Contents/Developer
HOMEBREW_REPO /usr/local/Homebrew
HOMEBREW_CELLAR /usr/local/Cellar
HOMEBREW_CACHE /Users/runner/Library/Caches/Homebrew

Variables set in environment

key value
HOMEBREW_NO_AUTO_UPDATE 1

Variables brew sets during install from source

key value
CC “clang”
CXX “clang++”
OBJC “clang”
OBJCXX “clang++”
HOMEBREW_CC “clang”
HOMEBREW_CXX “clang++”
MAKEFLAGS “-j4”
CMAKE_PREFIX_PATH “/usr/local”
CMAKE_INCLUDE_PATH “/Applications/Xcode_11.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include/libxml2:/Applications/Xcode_11.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers”
CMAKE_LIBRARY_PATH “/Applications/Xcode_11.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries”
PKG_CONFIG_LIBDIR “/usr/lib/pkgconfig:/usr/local/Homebrew/Library/Homebrew/os/mac/pkgconfig/10.15”
HOMEBREW_GIT “git”
HOMEBREW_SDKROOT “/Applications/Xcode_11.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk”
ACLOCAL_PATH “/usr/local/share/aclocal”
PATH “/usr/local/Homebrew/Library/Homebrew/shims/mac/super:/usr/bin:/bin:/usr/sbin:/sbin”

Installed taps

homebrew/cask: unpinned, 1 command, 3536 casks
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask (3,652 files, 202.5MB)
From: https://github.com/Homebrew/homebrew-cask

homebrew/cask-versions: unpinned, 163 casks
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions (210 files, 64.2MB)
From: https://github.com/Homebrew/homebrew-cask-versions

homebrew/core: unpinned, 4915 formulae
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core (5,172 files, 304.0MB)
From: https://github.com/Homebrew/homebrew-core

Installed packages

homebrew-core

brew doctor

Your system is ready to brew.

homebrew-cask

brew cask doctor

==> Homebrew Version
2.2.6
==> macOS
10.15.3
==> SIP
Enabled
==> Java
13.0.2-zulu-13.29+9, 12.0.2-zulu-12.3+11, 11.0.6-zulu-11.37+17, 1.8.0_242-zulu-8.44.0.11, 1.7.0_252-zulu-7.36.0.5
==> xattr issues
<NONE>
==> Gatekeeper support
Enabled
==> Homebrew Cask Install Location
<NONE>
==> Homebrew Cask Staging Location
/usr/local/Caskroom
==> Homebrew Cask Taps:
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask (3536 casks)
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions (163 casks)
==> Contents of $LOAD_PATH
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ruby-macho-2.2.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-rspec-1.38.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-performance-1.5.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rubocop-0.79.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/unicode-display_width-1.6.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ruby-progressbar-1.10.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-wait-0.0.9/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-retry-0.6.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-its-1.3.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-3.9.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-mocks-3.9.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-expectations-3.9.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-core-3.9.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rspec-support-3.9.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ronn-0.7.3/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rdiscount-2.2.0.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/universal-darwin-19/2.6.0/rdiscount-2.2.0.1
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/rainbow-3.0.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/plist-3.5.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/parser-2.7.0.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/parallel_tests-2.31.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/parallel-1.19.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mustache-1.1.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mechanize-2.7.6/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/webrobots-0.1.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ntlm-http-0.1.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/nokogiri-1.10.8/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/universal-darwin-19/2.6.0/nokogiri-1.10.8
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mini_portile2-2.4.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/net-http-persistent-3.1.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/net-http-digest_auth-1.4.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mime-types-3.3.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/mime-types-data-3.2019.1009/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/jaro_winkler-1.5.4/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/universal-darwin-19/2.6.0/jaro_winkler-1.5.4
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/http-cookie-1.0.3/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/hpricot-0.8.6/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/universal-darwin-19/2.6.0/hpricot-0.8.6
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/domain_name-0.5.20190701/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/unf-0.1.4/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/unf_ext-0.0.7.6/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/universal-darwin-19/2.6.0/unf_ext-0.0.7.6
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/diff-lcs-1.3/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/coveralls-0.8.23/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/thor-1.0.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/term-ansicolor-1.7.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/tins-1.24.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../../../../../../../../Library/Ruby/Gems/2.6.0/gems/sync-0.5.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/simplecov-0.16.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/simplecov-html-0.10.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/docile-1.3.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/json-2.3.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/extensions/universal-darwin-19/2.6.0/json-2.3.0
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/connection_pool-2.2.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/ast-2.4.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/activesupport-6.0.2.1/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/zeitwerk-2.2.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/tzinfo-1.2.6/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/thread_safe-0.3.6/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/minitest-5.14.0/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/i18n-1.8.2/lib
/usr/local/Homebrew/Library/Homebrew/vendor/bundle/bundler/../ruby/2.6.0/gems/concurrent-ruby-1.1.6/lib/concurrent-ruby
/Library/Ruby/Site/2.6.0
/Library/Ruby/Site/2.6.0/x86_64-darwin19
/Library/Ruby/Site/2.6.0/universal-darwin19
/Library/Ruby/Site
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby/2.6.0
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby/2.6.0/x86_64-darwin19
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby/2.6.0/universal-darwin19
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/x86_64-darwin19
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin19
/usr/local/Homebrew/Library/Homebrew
==> Environment Variables
LC_ALL="en_US.UTF-8"
PATH="/usr/local/Homebrew/Library/Homebrew/shims/scm:/usr/bin:/bin:/usr/sbin:/sbin"
SHELL="/bin/bash"

Brewfile summarizing all available software

tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-versions"
tap "homebrew/core"
# Cryptography and SSL/TLS Toolkit
brew "[email protected]"
# Download with resuming and segmented downloading
brew "aria2"
# Microsoft Azure CLI 2.0
brew "azure-cli"
# TAP-compliant test framework for Bash scripts
brew "bats"
# Decentralized dependency manager for Cocoa
brew "carthage"
# Cross-platform make
brew "cmake"
# Get a file from an HTTP, HTTPS or FTP server
brew "curl"
# GNU compiler collection
brew "gcc"
# GNU compiler collection
brew "gcc@8"
# WebDriver <-> Marionette proxy
brew "geckodriver"
# Distributed revision control system
brew "git"
# Git extension for versioning large files
brew "git-lfs"
# Interpreted, interactive, object-oriented programming language
brew "python"
# GNU Pretty Good Privacy (PGP) package
brew "gnupg"
# Open source programming language to build simple/reliable/efficient software
brew "go"
# Open-source build automation tool based on the Groovy and Kotlin DSL
brew "gradle"
# Lightweight and flexible command-line JSON processor
brew "jq"
# Postgres C API library
brew "libpq"
# Next-gen compiler infrastructure
brew "llvm"
# Mac App Store command-line interface
brew "mas"
# Java-based project management
brew "maven"
# Platform built on V8 to build network applications
brew "node@12", link: true
# Shell command parallelization utility
brew "parallel"
# General-purpose scripting language
brew "php"
# Interpreted, interactive, object-oriented programming language
brew "python@2"
# Powerful, clean, object-oriented scripting language
brew "ruby"
# The Rust toolchain installer
brew "rustup-init"
# Browser automation for testing purposes
brew "selenium-server-standalone"
# Version control system designed to be a better CVS
brew "subversion"
# Internet file retriever
brew "wget"
# Drop-in replacement for xcodebuild with a few extra features
brew "xctool"
cask "chromedriver"
cask "fastlane"
cask "firefox"
cask "google-chrome"
cask "microsoft-edge"
cask "powershell"