Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
a872bad97d
|
|||
0838bc5a56
|
|||
c4ca5f25a0
|
|||
f89936200e
|
|||
e9dd36f1e4
|
|||
001742340c
|
|||
dfa693ea08
|
|||
5b43195fef
|
|||
3123986512
|
|||
3566226083
|
|||
ce87d554dd
|
@@ -8,7 +8,7 @@ RUN go build -o dist/dagger-go main.go
|
||||
|
||||
FROM harbor.front.kjuulh.io/docker-proxy/library/docker:dind
|
||||
|
||||
WORKDIR /src/docker
|
||||
WORKDIR /src
|
||||
|
||||
COPY --from=builder /src/builder/dist/dagger-go .
|
||||
COPY --from=builder /src/builder/dist/dagger-go /usr/bin/
|
||||
|
||||
|
@@ -1,5 +1,3 @@
|
||||
{{ $imageTag := "harbor.front.kjuulh.io/library/${DRONE_REPO_NAME}" }}
|
||||
|
||||
type: docker
|
||||
kind: pipeline
|
||||
name: "drone-dagger-test"
|
||||
@@ -18,7 +16,7 @@ steps:
|
||||
- mkdir -p tmp/dagger-go
|
||||
- git clone "https://git.front.kjuulh.io/kjuulh/dagger-go.git" tmp/dagger-go
|
||||
- docker build -t dagger-go-builder:${DRONE_COMMIT} -f tmp/dagger-go/Dockerfile .
|
||||
- 'docker run -v /var/run/docker.sock:/var/run/docker.sock dagger-go-builder:${DRONE_COMMIT} ./dagger-go build --image-tag "{{ or .input.imageTag $imageTag }}"'
|
||||
- 'docker run -v "$PWD/:/src/" -v /var/run/docker.sock:/var/run/docker.sock dagger-go-builder:${DRONE_COMMIT} dagger-go build'
|
||||
|
||||
services:
|
||||
- name: docker
|
||||
|
27
example/main.go
Normal file
27
example/main.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
|
||||
"git.front.kjuulh.io/kjuulh/dagger-go/internal"
|
||||
"git.front.kjuulh.io/kjuulh/dagger-go/pkg/tasks"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
if err := run(ctx); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func run(ctx context.Context) error {
|
||||
builder, err := internal.New(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer builder.CleanUp()
|
||||
|
||||
return tasks.Build(builder, "some-image", "example/main.go")
|
||||
}
|
@@ -1,18 +1,17 @@
|
||||
package cli
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"git.front.kjuulh.io/kjuulh/dagger-go/internal"
|
||||
"git.front.kjuulh.io/kjuulh/dagger-go/pkg/tasks"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
func Build() *cobra.Command {
|
||||
var (
|
||||
imageTag string
|
||||
)
|
||||
|
||||
func Build(mainGoPath string, imageTag string) *cobra.Command {
|
||||
cmd := &cobra.Command{
|
||||
Use: "build",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
@@ -20,6 +19,14 @@ func Build() *cobra.Command {
|
||||
return err
|
||||
}
|
||||
|
||||
if imageTag == "" {
|
||||
repoName := os.Getenv("DRONE_REPO_NAME")
|
||||
if repoName == "" {
|
||||
return errors.New("could not find DRONE_REPO_NAME")
|
||||
}
|
||||
imageTag = fmt.Sprintf("harbor.front.kjuulh.io/library/%s", repoName)
|
||||
}
|
||||
|
||||
ctx := cmd.Context()
|
||||
|
||||
log.Printf("Building image: %s\n", imageTag)
|
||||
@@ -30,12 +37,9 @@ func Build() *cobra.Command {
|
||||
}
|
||||
defer client.CleanUp()
|
||||
|
||||
return tasks.Build(client, imageTag)
|
||||
return tasks.Build(client, imageTag, mainGoPath)
|
||||
},
|
||||
}
|
||||
|
||||
cmd.PersistentFlags().StringVar(&imageTag, "image-tag", "", "the url for which to tag the docker image, defaults to private url, with repo as image name")
|
||||
cmd.MarkPersistentFlagRequired("image-tag")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
@@ -9,7 +9,7 @@ import (
|
||||
"git.front.kjuulh.io/kjuulh/dagger-go/internal"
|
||||
)
|
||||
|
||||
func Build(builder *internal.Builder, imageTag string) error {
|
||||
func Build(builder *internal.Builder, imageTag string, buildPath string) error {
|
||||
log.Printf("building image: %s", imageTag)
|
||||
|
||||
client := builder.Dagger
|
||||
@@ -33,7 +33,7 @@ func Build(builder *internal.Builder, imageTag string) error {
|
||||
golang := client.Container().From("golang:latest")
|
||||
golang = golang.WithMountedDirectory("/src", src).WithWorkdir("/src")
|
||||
_, err = golang.Exec(dagger.ContainerExecOpts{
|
||||
Args: []string{"go", "build", "-o", "build/"},
|
||||
Args: []string{"go", "build", "-o", "build/", buildPath},
|
||||
}).ExitCode(ctx)
|
||||
|
||||
return err
|
||||
|
Reference in New Issue
Block a user