diff --git a/.gitlab/.gitlab-ci.yml b/.gitlab/.gitlab-ci.yml index 958a58824..c974927bd 100644 --- a/.gitlab/.gitlab-ci.yml +++ b/.gitlab/.gitlab-ci.yml @@ -198,23 +198,7 @@ build fbsql amd64: paths: - ./build/fbsql_* -build fbsql arm64 darwin: - stage: test - variables: - BUILD_NAME: build_${CI_COMMIT_SHA}_${CI_CONCURRENT_ID} - tags: - - shell - rules: - - if: '$CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web"' - script: - - export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) - - date - - GOOS="darwin" GOARCH="arm64" make docker-build-fbsql - artifacts: - paths: - - ./build/fbsql_* - -build fbsql arm64 linux: +build fbsql arm64: stage: test variables: BUILD_NAME: build_${CI_COMMIT_SHA}_${CI_CONCURRENT_ID} @@ -225,11 +209,14 @@ build fbsql arm64 linux: script: - export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) - date + - GOOS="darwin" GOARCH="arm64" make docker-build-fbsql - GOOS="linux" GOARCH="arm64" make docker-build-fbsql + artifacts: paths: - ./build/fbsql_* + build amd container fb: stage: test tags: @@ -384,8 +371,7 @@ run go tests cli kafka integration: needs: - job: build amd container fb - job: build fbsql amd64 - - job: build fbsql arm64 linux - - job: build fbsql arm64 darwin + - job: build fbsql arm64 # idk tests run go tests idk race: @@ -752,8 +738,7 @@ s3 dump: needs: - job: build featurebase - job: build fbsql amd64 - - job: build fbsql arm64 linux - - job: build fbsql arm64 darwin + - job: build fbsql arm64 s3 dump tag: stage: post build diff --git a/Dockerfile-darwin-cgo-builder b/Dockerfile-darwin-cgo-builder index 024f87516..2c10ca466 100644 --- a/Dockerfile-darwin-cgo-builder +++ b/Dockerfile-darwin-cgo-builder @@ -13,8 +13,29 @@ # https://developer.apple.com/download/all/. Decide which Xcode version you'd # like to build with AND what version of go you'd like to build with. # -# For this to work, that Xcode.xip file must be in the working directory. For -# now, you'll need to manually define the version. + +# Usage +# +# Assumptions +# 1. For this dockerfile to work, you need to be serving the Xcode*.xip file. +# Here is the command I ran from the directory that contained the +# Xcode*.xip I had. Notice my private IP is hardcoded below. You'll need to +# update that below to you private IP. This was done (as opposed to using +# COPY) to keep the final image as small as possible. +# +# python3 -m http.server --bind 192.168.1.212 +# +# 2. The version of Xcode and the underlying sdk are hard coded below. If +# you're not using Xcode13.4.1.xip, you'll need to change both version +# below. +# +# 3. Note the architecture used to build this build may make it easier / +# harder to build what you intent to build. +# +# Here is a build example: +# +# docker build -f Dockerfile-darwin-cgo-builder -t : . + FROM ubuntu:focal AS builder @@ -40,7 +61,6 @@ RUN apt-get update -y -qq && apt-get install -y -qq \ libmpc-dev \ && rm -rf /var/lib/apt/lists/* -# build compilers for cross compilation (darwin on linux) with cgo WORKDIR / RUN git clone https://github.com/tpoechtrager/osxcross.git \ && wget http://192.168.1.212:8000/Xcode_13.4.1.xip \ diff --git a/Dockerfile-fbsql-darwin b/Dockerfile-fbsql-darwin index 448f0858c..177745dc9 100644 --- a/Dockerfile-fbsql-darwin +++ b/Dockerfile-fbsql-darwin @@ -35,14 +35,10 @@ RUN apt-get update -y -qq && apt-get install -y -qq \ libssl-dev \ zlib1g-dev \ libbz2-dev \ + pkg-config \ + librdkafka-dev \ && rm -rf /var/lib/apt/lists/* -RUN ["git", "clone", "https://github.com/edenhill/librdkafka.git"] -WORKDIR /librdkafka -RUN ./configure --prefix /usr && \ - make && \ - make install - WORKDIR /featurebase COPY . . @@ -67,7 +63,7 @@ FROM ubuntu:jammy AS runner RUN apt-get update -y -qq && apt-get install -y -qq \ ca-certificates \ - musl-tools \ + musl-tools \ netcat \ unixodbc-dev \ && rm -rf /var/lib/apt/lists/*