UNCLASSIFIED - NO CUI

Skip to content

[bugfix] Adds linuxbrew test scripts, disables CGO for bbctl formula to fix #2

General MR

Closes #2 (closed).

Summary

  • Per #2 (closed), brew install bbctl was failing on some linux systems with cgo-related compile errors. Since we don't use cgo for bbctl, we may as well remove it here.
  • Adds ci/lint.sh for a future CI linter job
  • Adds ci/test.sh for a future CI test job
    • n.b. this currently depends on docker-in-docker to run locally, which will not be ideal for a future CI job. If a kaniko/buildah job can build the image I'm happy though as the Dockerfile itself runs our tests in a linuxbrew context.

Relevant logs/screenshots

before: ./ci/test.sh fails

❯ ./ci/test.sh
+ make linuxbrew-test
docker build --platform="linux/amd64" . -t "linuxbrew/test:dev"
[+] Building 158.1s (17/17) FINISHED                                                                                                       docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                                                                       0.0s
 => => transferring dockerfile: 1.49kB                                                                                                                     0.0s
 => [internal] load metadata for registry1.dso.mil/ironbank/canonical/ubuntu-pro-stig:20.04_stable                                                         1.4s
 => [auth] ironbank/canonical/ubuntu-pro-stig:pull token for registry1.dso.mil                                                                             0.0s
 => [internal] load .dockerignore                                                                                                                          0.0s
 => => transferring context: 101B                                                                                                                          0.0s
 => [ 1/12] FROM registry1.dso.mil/ironbank/canonical/ubuntu-pro-stig:20.04_stable@sha256:0803164e25001df5aecbb3118789455b3ee066601df02983d935a73af7a7e00  0.0s
 => [internal] load build context                                                                                                                          0.0s
 => => transferring context: 102.61kB                                                                                                                      0.0s
 => CACHED [ 2/12] RUN apt-get update &&     apt-get install build-essential jq curl file git ruby-full locales vim-tiny --no-install-recommends -y &&     0.0s
 => CACHED [ 3/12] RUN localedef -i en_US -f UTF-8 en_US.UTF-8                                                                                             0.0s
 => CACHED [ 4/12] RUN useradd -m -s /bin/bash linuxbrew &&     echo 'linuxbrew ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers                                     0.0s
 => CACHED [ 5/12] RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"                                   0.0s
 => [ 6/12] RUN brew install go                                                                                                                           61.0s
 => [ 7/12] WORKDIR /home/linuxbrew                                                                                                                        0.0s
 => [ 8/12] ADD . ./homebrew-tools-public                                                                                                                  0.0s
 => [ 9/12] RUN git config --global --add safe.directory /home/linuxbrew/homebrew-tools-public/./.git                                                      0.1s
 => [10/12] WORKDIR /home/linuxbrew/homebrew-tools-public                                                                                                  0.1s
 => [11/12] RUN brew tap bigbang/tools-public .                                                                                                            2.7s
 => ERROR [12/12] RUN ./scripts/install-and-test-each-formula.sh                                                                                          92.7s
------
 > [12/12] RUN ./scripts/install-and-test-each-formula.sh:
0.131 ++ brew tap-info bigbang/tools-public --json
0.131 ++ jq --raw-output '.[].formula_names[]'
3.103 + formulae=bigbang/tools-public/bbctl
3.104 + for formula in $formulae
3.104 + brew install bigbang/tools-public/bbctl
6.314 ==> Fetching bigbang/tools-public/bbctl
7.261 ==> Downloading https://repo1.dso.mil/big-bang/product/packages/bbctl/-/archive/0.7.6/bbctl-0.7.6.tar.gz
8.494 ==> Installing bbctl from bigbang/tools-public
10.28 ==> go build -ldflags=-s -w -X static.buildDate=2025-01-10T21:52:52Z
90.19 Last 15 lines from /home/linuxbrew/.cache/Homebrew/Logs/bbctl/01.go:
90.21 go: downloading go.opentelemetry.io/otel v1.30.0
90.21 go: downloading go.opentelemetry.io/otel/trace v1.30.0
90.21 go: downloading github.com/josharian/intern v1.0.0
90.21 go: downloading github.com/distribution/reference v0.6.0
90.21 go: downloading google.golang.org/grpc v1.66.2
90.21 go: downloading github.com/felixge/httpsnoop v1.0.4
90.21 go: downloading go.opentelemetry.io/otel/metric v1.30.0
90.21 go: downloading github.com/vbatts/tar-split v0.11.3
90.21 go: downloading github.com/gorilla/mux v1.8.1
90.21 go: downloading go.starlark.net v0.0.0-20240725214946-42030a7cedce
90.21 go: downloading github.com/docker/go-metrics v0.0.1
90.21 go: downloading github.com/go-logr/stdr v1.2.2
90.21 go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1
90.21 github.com/liggitt/tabwriter: /home/linuxbrew/.linuxbrew/Cellar/go/1.23.4/libexec/pkg/tool/linux_amd64/compile: signal: illegal instruction
90.21 github.com/gobwas/glob/match: /home/linuxbrew/.linuxbrew/Cellar/go/1.23.4/libexec/pkg/tool/linux_amd64/compile: signal: illegal instruction
91.58
91.72 If reporting this issue please do so to (not Homebrew/brew or Homebrew/homebrew-core):
91.72   bigbang/tools-public
91.72
92.64 Warning: Unable to query GitHub for recent issues on the tap
92.64 Validation Failed: [{"message"=>"The listed users and repositories cannot be searched either because the resources do not exist or you do not have permission to view them.", "resource"=>"Search", "field"=>"q", "code"=>"invalid"}]
------
Dockerfile:35
--------------------
  33 |     WORKDIR /home/linuxbrew/homebrew-tools-public
  34 |     RUN brew tap bigbang/tools-public .
  35 | >>> RUN ./scripts/install-and-test-each-formula.sh
--------------------
ERROR: failed to solve: process "/bin/sh -c ./scripts/install-and-test-each-formula.sh" did not complete successfully: exit code: 1

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/p8cpwmgm6jujwfuc2q771zgvn

after: ci/test.sh passes

❯ ./ci/test.sh
+ make linuxbrew-test
docker build --platform="linux/amd64" . -t "linuxbrew/test:dev"
[+] Building 109.4s (17/17) FINISHED                                                                                                       docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                                                                       0.0s
 => => transferring dockerfile: 1.49kB                                                                                                                     0.0s
 => [internal] load metadata for registry1.dso.mil/ironbank/canonical/ubuntu-pro-stig:20.04_stable                                                         1.0s
 => [internal] load .dockerignore                                                                                                                          0.0s
 => => transferring context: 101B                                                                                                                          0.0s
 => [ 1/12] FROM registry1.dso.mil/ironbank/canonical/ubuntu-pro-stig:20.04_stable@sha256:0803164e25001df5aecbb3118789455b3ee066601df02983d935a73af7a7e00  0.0s
 => [internal] load build context                                                                                                                          0.0s
 => => transferring context: 31.07kB                                                                                                                       0.0s
 => CACHED [ 2/12] RUN apt-get update &&     apt-get install build-essential jq curl file git ruby-full locales vim-tiny --no-install-recommends -y &&     0.0s
 => CACHED [ 3/12] RUN localedef -i en_US -f UTF-8 en_US.UTF-8                                                                                             0.0s
 => CACHED [ 4/12] RUN useradd -m -s /bin/bash linuxbrew &&     echo 'linuxbrew ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers                                     0.0s
 => CACHED [ 5/12] RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"                                   0.0s
 => CACHED [ 6/12] RUN brew install go                                                                                                                     0.0s
 => CACHED [ 7/12] WORKDIR /home/linuxbrew                                                                                                                 0.0s
 => [ 8/12] ADD . ./homebrew-tools-public                                                                                                                  0.0s
 => [ 9/12] RUN git config --global --add safe.directory /home/linuxbrew/homebrew-tools-public/./.git                                                      0.1s
 => [10/12] WORKDIR /home/linuxbrew/homebrew-tools-public                                                                                                  0.0s
 => [11/12] RUN brew tap bigbang/tools-public .                                                                                                            8.0s
 => [12/12] RUN ./scripts/install-and-test-each-formula.sh                                                                                                95.5s
 => exporting to image                                                                                                                                     4.7s
 => => exporting layers                                                                                                                                    4.7s
 => => writing image sha256:2be3ba20e05f66471fc51c3ad03c90bbdaad2a5cf5adbe6cb701763a9a85ecba                                                               0.0s
 => => naming to docker.io/linuxbrew/test:dev                                                                                                              0.0s

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/czuwmfje50gnr6la4qkti347d

Linked Issue

#2 (closed)

Upgrade Notices

N/A

Edited by Daniel Pritchett

Merge request reports

Loading