Skip to content

Commit cf5a1ab

Browse files
committed
adding dagger support for building
1 parent 3df921d commit cf5a1ab

File tree

7 files changed

+196
-3
lines changed

7 files changed

+196
-3
lines changed

.github/workflows/fee-experimental.yml

+15-3
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,24 @@ permissions:
1010
packages: write
1111

1212
jobs:
13-
build-push:
13+
dagger-build:
14+
name: dagger-ci
1415
runs-on: ubuntu-latest
1516
steps:
16-
# - name: Checkout
17-
# uses: actions/checkout@v4
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
- name: Build and Run Gnoland
20+
uses: dagger/dagger-for-github@v7
21+
with:
22+
version: "v0.15.2"
23+
verb: call
24+
module: misc/gno-fee/dagger
25+
args: build-and-run --source .
1826

27+
build-push:
28+
needs: dagger-build
29+
runs-on: ubuntu-latest
30+
steps:
1931
- name: Login to GitHub Container Registry
2032
uses: docker/login-action@v3
2133
with:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/dagger.gen.go linguist-generated
2+
/internal/dagger/** linguist-generated
3+
/internal/querybuilder/** linguist-generated
4+
/internal/telemetry/** linguist-generated
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/dagger.gen.go
2+
/internal/dagger
3+
/internal/querybuilder
4+
/internal/telemetry

misc/gno-fee/dagger/builder/go.mod

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
module dagger/gno-fee
2+
3+
go 1.23.2
4+
5+
require (
6+
github.com/99designs/gqlgen v0.17.63
7+
github.com/Khan/genqlient v0.7.0
8+
github.com/vektah/gqlparser/v2 v2.5.21
9+
go.opentelemetry.io/otel v1.32.0
10+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0
11+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0
12+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0
13+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0
14+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0
15+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0
16+
go.opentelemetry.io/otel/log v0.8.0
17+
go.opentelemetry.io/otel/metric v1.32.0
18+
go.opentelemetry.io/otel/sdk v1.32.0
19+
go.opentelemetry.io/otel/sdk/log v0.8.0
20+
go.opentelemetry.io/otel/sdk/metric v1.32.0
21+
go.opentelemetry.io/otel/trace v1.32.0
22+
go.opentelemetry.io/proto/otlp v1.3.1
23+
golang.org/x/sync v0.10.0
24+
google.golang.org/grpc v1.68.0
25+
)
26+
27+
require (
28+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
29+
github.com/go-logr/logr v1.4.2 // indirect
30+
github.com/go-logr/stdr v1.2.2 // indirect
31+
github.com/google/uuid v1.6.0 // indirect
32+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect
33+
github.com/sosodev/duration v1.3.1 // indirect
34+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 // indirect
35+
golang.org/x/net v0.33.0 // indirect
36+
golang.org/x/sys v0.28.0 // indirect
37+
golang.org/x/text v0.21.0 // indirect
38+
google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect
39+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect
40+
google.golang.org/protobuf v1.36.1 // indirect
41+
)
42+
43+
replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0
44+
45+
replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0
46+
47+
replace go.opentelemetry.io/otel/log => go.opentelemetry.io/otel/log v0.8.0
48+
49+
replace go.opentelemetry.io/otel/sdk/log => go.opentelemetry.io/otel/sdk/log v0.8.0

misc/gno-fee/dagger/builder/go.sum

+83
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

misc/gno-fee/dagger/builder/main.go

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"dagger/gno-fee/internal/dagger"
6+
"strings"
7+
)
8+
9+
type GnoFee struct{}
10+
11+
func (m *GnoFee) BuildAndRun(ctx context.Context, source *dagger.Directory) (int, error) {
12+
execOpts := dagger.ContainerWithExecOpts{
13+
UseEntrypoint: true,
14+
}
15+
16+
gnoService := source.
17+
DockerBuild(dagger.DirectoryDockerBuildOpts{Target: "gnoland"}).
18+
WithExposedPort(26657).
19+
WithExec([]string{"config", "init"}, execOpts).
20+
WithExec([]string{"config", "set", "rpc.laddr", "tcp://0.0.0.0:26657"}, execOpts).
21+
AsService(dagger.ContainerAsServiceOpts{
22+
Args: []string{"start", "--lazy", "--log-level", "info"},
23+
UseEntrypoint: execOpts.UseEntrypoint,
24+
})
25+
26+
return dag.Container().
27+
From("alpine").
28+
WithServiceBinding("gno", gnoService).
29+
WithExec(strings.Split("apk add jq curl", " ")).
30+
WithExec([]string{"sh", "-c",
31+
"[ $(curl -s gno:26657/status | jq -r '.result.sync_info.latest_block_height') -ge 1 ]"}).
32+
ExitCode(ctx)
33+
}

misc/gno-fee/dagger/dagger.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "gno-fee",
3+
"engineVersion": "v0.16.1",
4+
"sdk": {
5+
"source": "go"
6+
},
7+
"source": "builder"
8+
}

0 commit comments

Comments
 (0)