Skip to content

Commit 8f477b6

Browse files
Merge branch 'ducklake' into add-load-config-test
2 parents 7f2103c + f569060 commit 8f477b6

File tree

85 files changed

+4120
-5952
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+4120
-5952
lines changed

.acceptance.goreleaser.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# Acceptance testing configuration - builds only Linux AMD64 for faster testing
2+
version: 2
3+
14
before:
25
hooks:
36
- go mod tidy
@@ -10,12 +13,17 @@ builds:
1013
- amd64
1114

1215
env:
13-
- CC=x86_64-linux-gnu-gcc
14-
- CXX=x86_64-linux-gnu-g++
16+
- CC=x86_64-linux-gnu-gcc-13
17+
- CXX=x86_64-linux-gnu-g++-13
18+
- CGO_CXXFLAGS=-std=c++17
19+
- CGO_LDFLAGS=-lstdc++ -static-libstdc++
1520

1621
ldflags:
1722
- -s -w -X main.version={{.Version}} -X main.date={{.Date}} -X main.commit={{.Commit}} -X main.builtBy=goreleaser
1823

24+
flags:
25+
- -buildvcs=false
26+
1927
archives:
2028
- id: homebrew
2129
format: tar.gz

.cursor/rules/general.mdc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: false
5+
---
6+
# general rules to always apply
7+
## confirmation/avoid too much initiative
8+
- DO not make any change I have not explicitly asked for
9+
- NEVER make any changes if I have only asked you a question but not explicitly asked you to make an action
10+
- Ask for confirmation before making ANY changes, with a summary of what you will do
11+
## format
12+
- Use lower case for sql always
13+
## general attitude
14+
- Use a neutral tone of voice and do not be too positive/enthusiastic.
15+
- When I report a problem, do NOT say "perfect I see the problem" as that sounds like you know the solution
16+
- When you have made a change do NOT say "now everything will be working" until you have confirmation that it does work
17+
- Always look at my ideas and suggestions critically and look for flaws in my logic
18+
-
19+
20+

.darwin.goreleaser.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Darwin-only goreleaser configuration
2+
version: 2
3+
4+
before:
5+
hooks:
6+
- go mod tidy
7+
8+
builds:
9+
# Darwin AMD64 build with clang
10+
- id: tailpipe-darwin-amd64
11+
binary: tailpipe
12+
goos:
13+
- darwin
14+
goarch:
15+
- amd64
16+
env:
17+
- CC=o64-clang
18+
- CXX=o64-clang++
19+
ldflags:
20+
- -s -w -X main.version={{.Version}} -X main.date={{.Date}} -X main.commit={{.Commit}} -X main.builtBy=goreleaser
21+
flags:
22+
- -buildvcs=false
23+
24+
# Darwin ARM64 build with clang
25+
- id: tailpipe-darwin-arm64
26+
binary: tailpipe
27+
goos:
28+
- darwin
29+
goarch:
30+
- arm64
31+
env:
32+
- CC=oa64-clang
33+
- CXX=oa64-clang++
34+
ldflags:
35+
- -s -w -X main.version={{.Version}} -X main.date={{.Date}} -X main.commit={{.Commit}} -X main.builtBy=goreleaser
36+
flags:
37+
- -buildvcs=false
38+
39+
archives:
40+
- id: darwin
41+
format: tar.gz
42+
name_template: "{{ .ProjectName }}.{{ .Os }}.{{ .Arch }}"
43+
files:
44+
- none*
45+
46+
checksum:
47+
name_template: 'checksums.txt'
48+
49+
snapshot:
50+
name_template: "{{ incpatch .Version }}-next"
51+
52+
changelog:
53+
disable: true
54+
sort: asc
55+
filters:
56+
exclude:
57+
- '^docs:'
58+
- '^test:'

.github/workflows/01-tailpipe-release.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ jobs:
143143
- name: Release publish
144144
run: |-
145145
cd tailpipe
146+
git config --global user.name "Tailpipe GitHub Actions Bot"
147+
git config --global user.email [email protected]
146148
make release
147149
148150
create_pr_in_homebrew:

.github/workflows/11-test-acceptance.yaml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,13 @@ jobs:
5959
go clean -testcache
6060
go test -timeout 30s ./... -test.v
6161
62+
- name: Build Custom Goreleaser Cross Image for Linux
63+
run: |-
64+
cd tailpipe
65+
make build-goreleaser-image
66+
echo "=== Verifying GCC 13 ==="
67+
docker run --rm tailpipe-goreleaser-cross:gcc13 gcc-13 --version | head -1
68+
6269
- name: Build
6370
run: |-
6471
cd tailpipe
@@ -123,7 +130,7 @@ jobs:
123130
name: build-artifact-linux
124131
path: ~/artifacts
125132

126-
- name: Extract Ubuntu Artifacts and Install Binary
133+
- name: Extract Linux Artifacts and Install Binary
127134
if: ${{ matrix.platform == 'ubuntu-latest' }}
128135
run: |
129136
mkdir ~/build
@@ -181,8 +188,8 @@ jobs:
181188
name: build-artifact-linux
182189
failOnError: true
183190

184-
- name: Clean up Darwin Build
191+
- name: Clean up Linux Build
185192
uses: geekyeggo/delete-artifact@f275313e70c08f6120db482d7a6b98377786765b # v5.1.0
186193
with:
187-
name: build-artifact-darwin
194+
name: build-artifact-linux
188195
failOnError: true

.gitignore

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
*.dll
55
*.so
66
*.dylib
7-
7+
/test_apps/
8+
/memtest
89
# Editor cache and lock files
910
*.swp
1011
*.swo
@@ -28,4 +29,7 @@
2829
go.work
2930

3031
# Dist directory is created by goreleaser
31-
/dist
32+
/dist
33+
34+
# Sysroot directory is created by make build-sysroot
35+
/sysroot

.golangci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,4 @@ run:
7070
issues:
7171
exclude-dirs:
7272
- "tests/acceptance"
73+
- "test_apps"

.goreleaser.yml

Lines changed: 20 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,43 @@
11
version: 2
22

3-
builds:
4-
- id: tailpipe-linux-arm64
5-
binary: tailpipe
6-
goos:
7-
- linux
8-
goarch:
9-
- arm64
10-
11-
env:
12-
- CC=aarch64-linux-gnu-gcc
13-
- CXX=aarch64-linux-gnu-g++
14-
15-
# Custom ldflags.
16-
#
17-
# Default: '-s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.builtBy=goreleaser'
18-
# Templates: allowed
19-
ldflags:
20-
# Go Releaser analyzes your Git repository and identifies the most recent Git tag (typically the highest version number) as the version for your release.
21-
# This is how it determines the value of {{.Version}}.
22-
- -s -w -X main.version={{.Version}} -X main.date={{.Date}} -X main.commit={{.Commit}} -X main.builtBy=goreleaser
3+
before:
4+
hooks:
5+
- go mod tidy
236

7+
builds:
8+
# Linux AMD64 build with GCC 13+
249
- id: tailpipe-linux-amd64
2510
binary: tailpipe
2611
goos:
2712
- linux
2813
goarch:
2914
- amd64
30-
3115
env:
32-
- CC=x86_64-linux-gnu-gcc
33-
- CXX=x86_64-linux-gnu-g++
34-
16+
- CC=x86_64-linux-gnu-gcc-13
17+
- CXX=x86_64-linux-gnu-g++-13
18+
- CGO_CXXFLAGS=-std=c++17
19+
- CGO_LDFLAGS=-lstdc++ -static-libstdc++
3520
ldflags:
3621
- -s -w -X main.version={{.Version}} -X main.date={{.Date}} -X main.commit={{.Commit}} -X main.builtBy=goreleaser
22+
flags:
23+
- -buildvcs=false
3724

38-
- id: tailpipe-darwin-arm64
25+
# Linux ARM64 build with GCC 13+
26+
- id: tailpipe-linux-arm64
3927
binary: tailpipe
4028
goos:
41-
- darwin
29+
- linux
4230
goarch:
4331
- arm64
44-
45-
env:
46-
- CC=oa64-clang
47-
- CXX=oa64-clang++
48-
49-
ldflags:
50-
- -s -w -X main.version={{.Version}} -X main.date={{.Date}} -X main.commit={{.Commit}} -X main.builtBy=goreleaser
51-
52-
- id: tailpipe-darwin-amd64
53-
binary: tailpipe
54-
goos:
55-
- darwin
56-
goarch:
57-
- amd64
58-
5932
env:
60-
- CC=o64-clang
61-
- CXX=o64-clang++
62-
33+
- CC=aarch64-linux-gnu-gcc-13
34+
- CXX=aarch64-linux-gnu-g++-13
35+
- CGO_CXXFLAGS=-std=c++17
36+
- CGO_LDFLAGS=-lstdc++ -static-libstdc++
6337
ldflags:
6438
- -s -w -X main.version={{.Version}} -X main.date={{.Date}} -X main.commit={{.Commit}} -X main.builtBy=goreleaser
39+
flags:
40+
- -buildvcs=false
6541

6642
release:
6743
prerelease: auto

Dockerfile.goreleaser-cross

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Use Ubuntu 24.04 as base to get GCC 13+
2+
FROM ubuntu:noble
3+
4+
# Install essential packages and cross-compilation tools
5+
RUN apt-get update && apt-get install -y \
6+
wget curl git build-essential \
7+
gcc-13 g++-13 \
8+
gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \
9+
gcc-x86-64-linux-gnu g++-x86-64-linux-gnu \
10+
gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
11+
&& rm -rf /var/lib/apt/lists/*
12+
13+
# Install Go 1.24.5
14+
RUN wget https://go.dev/dl/go1.24.5.linux-amd64.tar.gz && \
15+
tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz && \
16+
rm go1.24.5.linux-amd64.tar.gz
17+
18+
# Install goreleaser 2.11.2
19+
RUN wget https://github.com/goreleaser/goreleaser/releases/download/v2.11.2/goreleaser_Linux_x86_64.tar.gz && \
20+
tar -xzf goreleaser_Linux_x86_64.tar.gz && \
21+
mv goreleaser /usr/local/bin/ && \
22+
rm goreleaser_Linux_x86_64.tar.gz
23+
24+
# Set up environment
25+
ENV PATH="/usr/local/go/bin:${PATH}"
26+
ENV GOROOT="/usr/local/go"
27+
ENV GOPATH="/go"
28+
ENV CGO_ENABLED=1
29+
30+
# Set default cross-compilation environment variables for Linux AMD64
31+
ENV CC_linux_amd64=x86_64-linux-gnu-gcc-13
32+
ENV CXX_linux_amd64=x86_64-linux-gnu-g++-13
33+
ENV CGO_CXXFLAGS_linux_amd64="-std=c++17"
34+
ENV CGO_LDFLAGS_linux_amd64="-lstdc++ -static-libstdc++"
35+
36+
# Create working directory
37+
WORKDIR /go/src
38+
39+
# Set entrypoint to goreleaser
40+
ENTRYPOINT ["goreleaser"]

0 commit comments

Comments
 (0)