feat: with updated image
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
7d4f4cc700
commit
f46847a523
@ -8,7 +8,7 @@ steps:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
environment:
|
||||
#DOCKER_BUILDKIT: 1
|
||||
DOCKER_BUILDKIT: 1
|
||||
DOCKER_PASSWORD:
|
||||
from_secret: docker_password
|
||||
DOCKER_USERNAME:
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
.shuttle/
|
||||
.env
|
||||
|
91
shuttletask/ci.go
Normal file
91
shuttletask/ci.go
Normal file
@ -0,0 +1,91 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
|
||||
"dagger.io/dagger"
|
||||
"github.com/joho/godotenv"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
func Ci(ctx context.Context) error {
|
||||
_ = godotenv.Load()
|
||||
|
||||
client, err := dagger.Connect(ctx, dagger.WithLogOutput(os.Stdout))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
drone := client.
|
||||
Container(dagger.ContainerOpts{Platform: "linux/amd64"}).
|
||||
From("debian").
|
||||
WithExec([]string{
|
||||
"apt", "update",
|
||||
}).
|
||||
WithExec([]string{
|
||||
"apt", "install", "-y", "wget", "tar",
|
||||
}).
|
||||
WithExec([]string{
|
||||
"wget", "https://github.com/harness/drone-cli/releases/latest/download/drone_linux_amd64.tar.gz",
|
||||
}).
|
||||
WithExec([]string{
|
||||
"tar", "-xvf", "drone_linux_amd64.tar.gz",
|
||||
}).
|
||||
WithExec([]string{
|
||||
"mv", "drone", "/usr/local/bin",
|
||||
}).
|
||||
WithExec([]string{
|
||||
"drone", "--version",
|
||||
})
|
||||
|
||||
_, err = drone.ExitCode(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
templates := client.Host().Directory("templates")
|
||||
droneTemplates := drone.
|
||||
WithEnvVariable("DRONE_SERVER", "https://ci.i.kjuulh.io").
|
||||
WithEnvVariable("DRONE_TOKEN", os.Getenv("DRONE_TOKEN")).
|
||||
WithExec([]string{"drone", "info"}).
|
||||
WithMountedDirectory("/mnt/templates", templates).
|
||||
WithWorkdir("/mnt/templates")
|
||||
|
||||
entries, err := templates.Entries(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
egrp, _ := errgroup.WithContext(ctx)
|
||||
for _, entry := range entries {
|
||||
entry := entry
|
||||
egrp.Go(func() error {
|
||||
name := path.Base(entry)
|
||||
namespace := "kjuulh"
|
||||
|
||||
log.Printf("running for: %s", entry)
|
||||
|
||||
_, err := droneTemplates.
|
||||
WithExec([]string{
|
||||
"drone", "template", "add", "--namespace", namespace, "--name", name, "--data", fmt.Sprintf("@%s", name),
|
||||
}).
|
||||
WithExec([]string{
|
||||
"drone", "template", "update", "--namespace", namespace, "--name", name, "--data", fmt.Sprintf("@%s", name),
|
||||
}).
|
||||
ExitCode(ctx)
|
||||
|
||||
return err
|
||||
})
|
||||
}
|
||||
|
||||
if err := egrp.Wait(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
@ -17,6 +17,7 @@ require (
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/golang/protobuf v1.5.2 // indirect
|
||||
github.com/iancoleman/strcase v0.2.0 // indirect
|
||||
github.com/joho/godotenv v1.5.1 // indirect
|
||||
github.com/opencontainers/go-digest v1.0.0 // indirect
|
||||
github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
|
@ -33,6 +33,8 @@ github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad
|
||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0=
|
||||
github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
|
||||
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
|
||||
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
|
||||
github.com/kevinmbeaulieu/eq-go v1.0.0/go.mod h1:G3S8ajA56gKBZm4UB9AOyoOS37JO3roToPzKNM8dtdM=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
|
||||
|
@ -1,16 +1,45 @@
|
||||
type: docker
|
||||
kind: pipeline
|
||||
name: "drone-dagger-test"
|
||||
name: "shuttle-drone-templates"
|
||||
steps:
|
||||
- name: "build"
|
||||
image: docker.io/kjuulh/shuttle-drone
|
||||
- name: "wait for dind"
|
||||
image: docker:dind
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
environment:
|
||||
DOCKER_BUILDKIT: 1
|
||||
DOCKER_PASSWORD:
|
||||
from_secret: docker_password
|
||||
DOCKER_USERNAME:
|
||||
from_secret: docker_username
|
||||
commands:
|
||||
- sleep 5
|
||||
- ls /var/run
|
||||
- set -eu
|
||||
- sleep 10
|
||||
- echo "$${DOCKER_PASSWORD}" | docker login --password-stdin --username="$${DOCKER_USERNAME}" "$${DOCKER_HOST}"
|
||||
- name: "build"
|
||||
image: docker.io/kasperhermansen/shuttle-drone:1680894029336
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
environment:
|
||||
DOCKER_BUILDKIT: 1
|
||||
DOCKER_PASSWORD:
|
||||
from_secret: docker_password
|
||||
DOCKER_USERNAME:
|
||||
from_secret: docker_username
|
||||
DRONE_TOKEN:
|
||||
from_secret: drone_token
|
||||
SSH_KEY:
|
||||
from_secret: gitea_id_ed25519
|
||||
commands:
|
||||
- set -eu
|
||||
- eval `ssh-agent`
|
||||
- mkdir -p ~/.ssh
|
||||
- echo "$SSH_KEY" | base64 -d > ~/.ssh/id_ed25519
|
||||
- chmod -R 600 ~/.ssh
|
||||
- ssh-add
|
||||
- echo "$${DOCKER_PASSWORD}" | docker login --password-stdin --username="$${DOCKER_USERNAME}" "$${DOCKER_HOST}"
|
||||
- shuttle run build
|
||||
services:
|
||||
|
Loading…
Reference in New Issue
Block a user