-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
51 lines (42 loc) · 1.1 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package main
import (
"errors"
"os"
"path"
"github.com/c-128/auroraci/internal/pipelines"
"github.com/c-128/auroraci/internal/pipelines/artifacts"
"github.com/c-128/auroraci/internal/pipelines/logger"
"github.com/c-128/auroraci/internal/pipelines/triggers"
"github.com/docker/docker/client"
)
func main() {
auroraDirectory, found := os.LookupEnv("AURORACI_DIRECTORY")
if !found {
panic("missing AURORA_DIRECTORY environment variable")
}
pipelinesDirectory := path.Join(auroraDirectory, "pipelines")
artifactsDirectory := path.Join(auroraDirectory, "artifacts")
err := errors.Join(
os.MkdirAll(pipelinesDirectory, os.ModePerm),
os.MkdirAll(artifactsDirectory, os.ModePerm),
)
if err != nil {
panic(err)
}
err = pipelines.LoadPipelines(pipelinesDirectory)
if err != nil {
panic(err)
}
// DOCKER_HOST environment variable
docker, err := client.NewClientWithOpts(client.WithHostFromEnv())
if err != nil {
panic(err)
}
uploaderProvider := artifacts.NewOSProvider(artifactsDirectory)
logger := logger.NewStdoutLogger()
triggers.CronTriggerJob(
logger,
uploaderProvider,
docker,
)
}