From 834c4490270221de3290a8fb852c0a7adc204660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Fri, 16 May 2025 16:05:10 +0200 Subject: [PATCH 01/18] ci: add default dagger action --- .github/workflows/dagger.yaml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/dagger.yaml diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml new file mode 100644 index 0000000..c614d4a --- /dev/null +++ b/.github/workflows/dagger.yaml @@ -0,0 +1,33 @@ +name: dagger +on: + push: + branches: [main] + +jobs: + build-publish: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Call Dagger Function to build and publish to ghcr.io + uses: dagger/dagger-for-github@8.0.0 + with: + version: "latest" + verb: call + module: github.com/daggerverse/dagger-ghcr-demo@v0.1.5 + args: build-and-push --registry=$DOCKER_REGISTRY --image-name=$DOCKER_IMAGE_NAME --username=$DOCKER_USERNAME --password=env://DOCKER_PASSWORD --build-context=github.com/daggerverse/dagger-ghcr-demo + # assumes the Dagger Cloud token is in + # a repository secret named DAGGER_CLOUD_TOKEN + # set via the GitHub UI/CLI + cloud-token: ${{ secrets.DAGGER_CLOUD_TOKEN }} + env: + DOCKER_REGISTRY: ghcr.io + DOCKER_IMAGE_NAME: ${{ github.repository }} + DOCKER_USERNAME: ${{ github.actor }} + # assumes the container registry password is in + # a repository secret named REGISTRY_PASSWORD + # set via the GitHub UI/CL + DOCKER_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} From 3ba76a463056151dce1c3a3e018ad691776daabc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Fri, 16 May 2025 16:11:53 +0200 Subject: [PATCH 02/18] ci: push and pray --- .github/workflows/dagger.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index c614d4a..488bca0 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -17,6 +17,7 @@ jobs: with: version: "latest" verb: call + module: github.com/daggerverse/dagger-ghcr-demo@v0.1.5 args: build-and-push --registry=$DOCKER_REGISTRY --image-name=$DOCKER_IMAGE_NAME --username=$DOCKER_USERNAME --password=env://DOCKER_PASSWORD --build-context=github.com/daggerverse/dagger-ghcr-demo # assumes the Dagger Cloud token is in From 92e506ac8c769158e3ccac1b59dba7f362952161 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Fri, 16 May 2025 16:30:32 +0200 Subject: [PATCH 03/18] ci: trigger on PR --- .github/workflows/dagger.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index 488bca0..22ee388 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -3,6 +3,13 @@ on: push: branches: [main] + pull_request: + types: + - opened + - reopened + - synchronize + - ready_for_review + jobs: build-publish: runs-on: ubuntu-latest From 677ab700a1f00a19ced1fca4b43adb26bfb852f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Fri, 16 May 2025 17:01:42 +0200 Subject: [PATCH 04/18] ci: run local dagger pipeline --- .github/workflows/dagger.yaml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index 22ee388..5ee6bd8 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -25,17 +25,9 @@ jobs: version: "latest" verb: call - module: github.com/daggerverse/dagger-ghcr-demo@v0.1.5 - args: build-and-push --registry=$DOCKER_REGISTRY --image-name=$DOCKER_IMAGE_NAME --username=$DOCKER_USERNAME --password=env://DOCKER_PASSWORD --build-context=github.com/daggerverse/dagger-ghcr-demo + module: .dagger + args: test # assumes the Dagger Cloud token is in # a repository secret named DAGGER_CLOUD_TOKEN # set via the GitHub UI/CLI cloud-token: ${{ secrets.DAGGER_CLOUD_TOKEN }} - env: - DOCKER_REGISTRY: ghcr.io - DOCKER_IMAGE_NAME: ${{ github.repository }} - DOCKER_USERNAME: ${{ github.actor }} - # assumes the container registry password is in - # a repository secret named REGISTRY_PASSWORD - # set via the GitHub UI/CL - DOCKER_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} From a14342bf655f5c3a32612c097675477042c68e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Fri, 16 May 2025 17:28:40 +0200 Subject: [PATCH 05/18] ci: add dagger pipeline file --- .dagger/.gitattributes | 4 ++ .dagger/.gitignore | 4 ++ .dagger/go.mod | 50 +++++++++++++++++++++++++ .dagger/go.sum | 85 ++++++++++++++++++++++++++++++++++++++++++ .dagger/main.go | 37 ++++++++++++++++++ dagger.json | 8 ++++ 6 files changed, 188 insertions(+) create mode 100644 .dagger/.gitattributes create mode 100644 .dagger/.gitignore create mode 100644 .dagger/go.mod create mode 100644 .dagger/go.sum create mode 100644 .dagger/main.go create mode 100644 dagger.json diff --git a/.dagger/.gitattributes b/.dagger/.gitattributes new file mode 100644 index 0000000..3a45493 --- /dev/null +++ b/.dagger/.gitattributes @@ -0,0 +1,4 @@ +/dagger.gen.go linguist-generated +/internal/dagger/** linguist-generated +/internal/querybuilder/** linguist-generated +/internal/telemetry/** linguist-generated diff --git a/.dagger/.gitignore b/.dagger/.gitignore new file mode 100644 index 0000000..7ebabcc --- /dev/null +++ b/.dagger/.gitignore @@ -0,0 +1,4 @@ +/dagger.gen.go +/internal/dagger +/internal/querybuilder +/internal/telemetry diff --git a/.dagger/go.mod b/.dagger/go.mod new file mode 100644 index 0000000..5fb0b7d --- /dev/null +++ b/.dagger/go.mod @@ -0,0 +1,50 @@ +module dagger/rip + +go 1.24.3 + +require ( + github.com/99designs/gqlgen v0.17.73 + github.com/Khan/genqlient v0.8.0 + github.com/vektah/gqlparser/v2 v2.5.26 + go.opentelemetry.io/otel v1.34.0 + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0 + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0 + go.opentelemetry.io/otel/log v0.8.0 + go.opentelemetry.io/otel/metric v1.34.0 + go.opentelemetry.io/otel/sdk v1.34.0 + go.opentelemetry.io/otel/sdk/log v0.8.0 + go.opentelemetry.io/otel/sdk/metric v1.34.0 + go.opentelemetry.io/otel/trace v1.34.0 + go.opentelemetry.io/proto/otlp v1.3.1 + golang.org/x/sync v0.13.0 + google.golang.org/grpc v1.72.0 +) + +require ( + github.com/cenkalti/backoff/v4 v4.3.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect + github.com/sosodev/duration v1.3.1 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 // indirect + golang.org/x/net v0.39.0 // indirect + golang.org/x/sys v0.32.0 // indirect + golang.org/x/text v0.24.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect + google.golang.org/protobuf v1.36.6 // indirect +) + +replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0 + +replace go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp => go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0 + +replace go.opentelemetry.io/otel/log => go.opentelemetry.io/otel/log v0.8.0 + +replace go.opentelemetry.io/otel/sdk/log => go.opentelemetry.io/otel/sdk/log v0.8.0 diff --git a/.dagger/go.sum b/.dagger/go.sum new file mode 100644 index 0000000..f512a57 --- /dev/null +++ b/.dagger/go.sum @@ -0,0 +1,85 @@ +github.com/99designs/gqlgen v0.17.73 h1:A3Ki+rHWqKbAOlg5fxiZBnz6OjW3nwupDHEG15gEsrg= +github.com/99designs/gqlgen v0.17.73/go.mod h1:2RyGWjy2k7W9jxrs8MOQthXGkD3L3oGr0jXW3Pu8lGg= +github.com/Khan/genqlient v0.8.0 h1:Hd1a+E1CQHYbMEKakIkvBH3zW0PWEeiX6Hp1i2kP2WE= +github.com/Khan/genqlient v0.8.0/go.mod h1:hn70SpYjWteRGvxTwo0kfaqg4wxvndECGkfa1fdDdYI= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4= +github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/vektah/gqlparser/v2 v2.5.26 h1:REqqFkO8+SOEgZHR/eHScjjVjGS8Nk3RMO/juiTobN4= +github.com/vektah/gqlparser/v2 v2.5.26/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= +go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0 h1:WzNab7hOOLzdDF/EoWCt4glhrbMPVMOO5JYTmpz36Ls= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0/go.mod h1:hKvJwTzJdp90Vh7p6q/9PAOd55dI6WA6sWj62a/JvSs= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0 h1:S+LdBGiQXtJdowoJoQPEtI52syEP/JYBUpjO49EQhV8= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0/go.mod h1:5KXybFvPGds3QinJWQT7pmXf+TN5YIa7CNYObWRkj50= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0 h1:t/Qur3vKSkUCcDVaSumWF2PKHt85pc7fRvFuoVT8qFU= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.32.0/go.mod h1:Rl61tySSdcOJWoEgYZVtmnKdA0GeKrSqkHC1t+91CH8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0 h1:IJFEoHiytixx8cMiVAO+GmHR6Frwu+u5Ur8njpFO6Ac= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.32.0/go.mod h1:3rHrKNtLIoS0oZwkY2vxi+oJcwFRWdtUyRII+so45p8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0 h1:9kV11HXBHZAvuPUZxmMWrH8hZn/6UnHX4K0mu36vNsU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.32.0/go.mod h1:JyA0FHXe22E1NeNiHmVp7kFHglnexDQ7uRWDiiJ1hKQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0 h1:cMyu9O88joYEaI47CnQkxO1XZdpoTF9fEnW2duIddhw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.32.0/go.mod h1:6Am3rn7P9TVVeXYG+wtcGE7IE1tsQ+bP3AuWcKt/gOI= +go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk= +go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8= +go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= +go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= +go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= +go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= +go.opentelemetry.io/otel/sdk/log v0.8.0 h1:zg7GUYXqxk1jnGF/dTdLPrK06xJdrXgqgFLnI4Crxvs= +go.opentelemetry.io/otel/sdk/log v0.8.0/go.mod h1:50iXr0UVwQrYS45KbruFrEt4LvAdCaWWgIrsN3ZQggo= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= +go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= +go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= +go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= +golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= +golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= +golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0= +google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a/go.mod h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ= +google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM= +google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/.dagger/main.go b/.dagger/main.go new file mode 100644 index 0000000..18bb32b --- /dev/null +++ b/.dagger/main.go @@ -0,0 +1,37 @@ +// A generated module for Rip functions +// +// This module has been generated via dagger init and serves as a reference to +// basic module structure as you get started with Dagger. +// +// Two functions have been pre-created. You can modify, delete, or add to them, +// as needed. They demonstrate usage of arguments and return types using simple +// echo and grep commands. The functions can be called from the dagger CLI or +// from one of the SDKs. +// +// The first line in this comment block is a short description line and the +// rest is a long description with more detail on the module's purpose or usage, +// if appropriate. All modules should have a short description. + +package main + +import ( + "context" + "dagger/rip/internal/dagger" +) + +type Rip struct{} + +// Returns a container that echoes whatever string argument is provided +func (m *Rip) ContainerEcho(stringArg string) *dagger.Container { + return dag.Container().From("alpine:latest").WithExec([]string{"echo", stringArg}) +} + +// Returns lines that match a pattern in the files of the provided Directory +func (m *Rip) GrepDir(ctx context.Context, directoryArg *dagger.Directory, pattern string) (string, error) { + return dag.Container(). + From("alpine:latest"). + WithMountedDirectory("/mnt", directoryArg). + WithWorkdir("/mnt"). + WithExec([]string{"grep", "-R", pattern, "."}). + Stdout(ctx) +} diff --git a/dagger.json b/dagger.json new file mode 100644 index 0000000..36bc31c --- /dev/null +++ b/dagger.json @@ -0,0 +1,8 @@ +{ + "name": "rip", + "engineVersion": "v0.18.8", + "sdk": { + "source": "go" + }, + "source": ".dagger" +} From c0344cb57a0380161e76c7660ed43cb45bc79944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Fri, 16 May 2025 17:29:58 +0200 Subject: [PATCH 06/18] ci: try the default init functions --- .github/workflows/dagger.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index 5ee6bd8..1a58a1b 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -25,8 +25,7 @@ jobs: version: "latest" verb: call - module: .dagger - args: test + args: container-echo --string-arg yoyo # assumes the Dagger Cloud token is in # a repository secret named DAGGER_CLOUD_TOKEN # set via the GitHub UI/CLI From 48926f3072cbba27fd5742a3814db2745dfc4b79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Fri, 16 May 2025 17:35:07 +0200 Subject: [PATCH 07/18] ci: run "go test" instead of "echo" --- .dagger/main.go | 7 +++++-- .github/workflows/dagger.yaml | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.dagger/main.go b/.dagger/main.go index 18bb32b..1ac31ed 100644 --- a/.dagger/main.go +++ b/.dagger/main.go @@ -22,8 +22,11 @@ import ( type Rip struct{} // Returns a container that echoes whatever string argument is provided -func (m *Rip) ContainerEcho(stringArg string) *dagger.Container { - return dag.Container().From("alpine:latest").WithExec([]string{"echo", stringArg}) +func (m *Rip) Test(ctx context.Context) (string, error) { + return dag.Container(). + From("golang:1.24.3"). + WithExec([]string{"go", "test", "./..."}). + Stdout(ctx) } // Returns lines that match a pattern in the files of the provided Directory diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index 1a58a1b..6d1c883 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -25,7 +25,7 @@ jobs: version: "latest" verb: call - args: container-echo --string-arg yoyo + args: test # assumes the Dagger Cloud token is in # a repository secret named DAGGER_CLOUD_TOKEN # set via the GitHub UI/CLI From 6f7dd77fe415944b75d5ba42ad37b83254547460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Fri, 16 May 2025 17:47:43 +0200 Subject: [PATCH 08/18] ci: add go test with correct workdir --- .dagger/main.go | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.dagger/main.go b/.dagger/main.go index 1ac31ed..7aca8b4 100644 --- a/.dagger/main.go +++ b/.dagger/main.go @@ -21,20 +21,17 @@ import ( type Rip struct{} -// Returns a container that echoes whatever string argument is provided -func (m *Rip) Test(ctx context.Context) (string, error) { +// Returns the std out of a go test +func (m *Rip) Test( + ctx context.Context, + + // +defaultPath=/ + source *dagger.Directory, +) (string, error) { return dag.Container(). From("golang:1.24.3"). + WithDirectory("/src/rip", source). + WithWorkdir("/src/rip"). WithExec([]string{"go", "test", "./..."}). Stdout(ctx) } - -// Returns lines that match a pattern in the files of the provided Directory -func (m *Rip) GrepDir(ctx context.Context, directoryArg *dagger.Directory, pattern string) (string, error) { - return dag.Container(). - From("alpine:latest"). - WithMountedDirectory("/mnt", directoryArg). - WithWorkdir("/mnt"). - WithExec([]string{"grep", "-R", pattern, "."}). - Stdout(ctx) -} From 8568dc4eb9826096bdb4f225a5adaad386f656d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Mon, 19 May 2025 18:17:23 +0200 Subject: [PATCH 09/18] ci: add verbose test output --- .dagger/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dagger/main.go b/.dagger/main.go index 7aca8b4..c8101c7 100644 --- a/.dagger/main.go +++ b/.dagger/main.go @@ -32,6 +32,6 @@ func (m *Rip) Test( From("golang:1.24.3"). WithDirectory("/src/rip", source). WithWorkdir("/src/rip"). - WithExec([]string{"go", "test", "./..."}). + WithExec([]string{"go", "test", "-v", "./..."}). Stdout(ctx) } From 10f41416aabe96bb6710f832fb0ab9987ebb9c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Mon, 19 May 2025 18:17:58 +0200 Subject: [PATCH 10/18] ci: use depot --- .github/workflows/dagger.yaml | 2 +- dagger.json | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index 6d1c883..c91b3b9 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -12,7 +12,7 @@ on: jobs: build-publish: - runs-on: ubuntu-latest + runs-on: depot-ubuntu-latest,dagger=0.18.8 permissions: contents: read packages: write diff --git a/dagger.json b/dagger.json index 36bc31c..09c15e6 100644 --- a/dagger.json +++ b/dagger.json @@ -4,5 +4,12 @@ "sdk": { "source": "go" }, + "dependencies": [ + { + "name": "go", + "source": "github.com/dolanor/daggerverse/go", + "pin": "91f4dfa24ccc4895696fc98a6cbe71fd5d4d48aa" + } + ], "source": ".dagger" } From 7faf18c339aa8791a8dc3f12cb79aea85b8b48eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Mon, 19 May 2025 18:34:16 +0200 Subject: [PATCH 11/18] ci: use the label explained in the latest depot docs --- .github/workflows/dagger.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index c91b3b9..3ad3309 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -12,7 +12,7 @@ on: jobs: build-publish: - runs-on: depot-ubuntu-latest,dagger=0.18.8 + runs-on: depot-ubuntu-24.04,dagger=0.18.8 permissions: contents: read packages: write From ab131ca8612e91ab8846ac62d14a86effd18764d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Mon, 19 May 2025 18:38:43 +0200 Subject: [PATCH 12/18] ci: use dagger 0.18.7 instead --- .github/workflows/dagger.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index 3ad3309..9dfb4eb 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -12,7 +12,7 @@ on: jobs: build-publish: - runs-on: depot-ubuntu-24.04,dagger=0.18.8 + runs-on: depot-ubuntu-24.04,dagger=0.18.7 permissions: contents: read packages: write From 773bab4e85cf4040765c8b347737c641e817586e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Mon, 19 May 2025 18:41:49 +0200 Subject: [PATCH 13/18] ci: use the dagger version from the dagger documentation on depot --- .github/workflows/dagger.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index 9dfb4eb..447ca69 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -12,7 +12,7 @@ on: jobs: build-publish: - runs-on: depot-ubuntu-24.04,dagger=0.18.7 + runs-on: depot-ubuntu-latest,dagger=0.18.4 permissions: contents: read packages: write From f6172aa24e1412e78961975463dc73951af10ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Mon, 19 May 2025 18:53:31 +0200 Subject: [PATCH 14/18] ci: back on dagger 0.18.8 --- .github/workflows/dagger.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index 447ca69..c91b3b9 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -12,7 +12,7 @@ on: jobs: build-publish: - runs-on: depot-ubuntu-latest,dagger=0.18.4 + runs-on: depot-ubuntu-latest,dagger=0.18.8 permissions: contents: read packages: write From e0f0d924e5ab2b69b03870ea9ed1fc70746b19ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Mon, 19 May 2025 19:02:08 +0200 Subject: [PATCH 15/18] ci: trigger new build --- examples/gormprovider/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/gormprovider/main.go b/examples/gormprovider/main.go index 7808d98..6ba5f4a 100644 --- a/examples/gormprovider/main.go +++ b/examples/gormprovider/main.go @@ -11,6 +11,7 @@ import ( "github.com/dolanor/rip" "github.com/dolanor/rip/encoding/html" "github.com/dolanor/rip/encoding/json" + "github.com/dolanor/rip/encoding/yaml" "github.com/dolanor/rip/providers/gormprovider" ) @@ -47,6 +48,7 @@ func main() { ro := rip.NewRouteOptions(). WithCodecs( json.Codec, + yaml.Codec, html.NewEntityCodec("/albums/"), html.NewEntityFormCodec("/albums/"), ) From 64badcc3567f1673c4dd3c0a4bb795bcb972a534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Sat, 31 May 2025 00:15:10 +0200 Subject: [PATCH 16/18] feat: use dolanor/daggerverse/go module --- .dagger/main.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.dagger/main.go b/.dagger/main.go index c8101c7..c5e43cb 100644 --- a/.dagger/main.go +++ b/.dagger/main.go @@ -28,8 +28,7 @@ func (m *Rip) Test( // +defaultPath=/ source *dagger.Directory, ) (string, error) { - return dag.Container(). - From("golang:1.24.3"). + return dag.Go().Container("1.24"). WithDirectory("/src/rip", source). WithWorkdir("/src/rip"). WithExec([]string{"go", "test", "-v", "./..."}). From 15bff3f8fd618e2e9a06a31b39d6fa322e1fb004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Sat, 31 May 2025 00:17:14 +0200 Subject: [PATCH 17/18] feat: don't use depot for now --- .github/workflows/dagger.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index c91b3b9..6d1c883 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -12,7 +12,7 @@ on: jobs: build-publish: - runs-on: depot-ubuntu-latest,dagger=0.18.8 + runs-on: ubuntu-latest permissions: contents: read packages: write From 4d0384881874ca0cfe788a0ba6d0f4a6d26fb756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Sat, 31 May 2025 00:20:47 +0200 Subject: [PATCH 18/18] fix: rename github action --- .github/workflows/dagger.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dagger.yaml b/.github/workflows/dagger.yaml index 6d1c883..06c4acb 100644 --- a/.github/workflows/dagger.yaml +++ b/.github/workflows/dagger.yaml @@ -11,7 +11,7 @@ on: - ready_for_review jobs: - build-publish: + test: runs-on: ubuntu-latest permissions: contents: read