[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 forbbctl
, 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 theDockerfile
itself runs our tests in a linuxbrew context.
- n.b. this currently depends on docker-in-docker to run locally, which will not be ideal for a future CI job. If a
Relevant logs/screenshots
./ci/test.sh
fails
before: ❯ ./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
ci/test.sh
passes
after: ❯ ./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
Upgrade Notices
N/A
Edited by Daniel Pritchett