@@ -17,24 +17,35 @@ package main
1717import (
1818 "context"
1919 "dagger/interlink-slurm/internal/dagger"
20+ "time"
2021)
2122
2223type InterlinkSlurm struct {}
2324
24- func (m * InterlinkSlurm ) RunTest (interlinkVersion string , pluginService * dagger.Service , manifests * dagger.Directory , interlinkConfig * dagger.File , pluginConfig * dagger.File , src * dagger.Directory ,
25+ // UnitTest runs the unit tests using make test
26+ func (m * InterlinkSlurm ) UnitTest (ctx context.Context , src * dagger.Directory ) (string , error ) {
27+ return dag .Container ().
28+ From ("golang:1.24" ).
29+ WithDirectory ("/src" , src ).
30+ WithWorkdir ("/src" ).
31+ WithExec ([]string {"make" , "test" }).
32+ Stdout (ctx )
33+ }
34+
35+ func (m * InterlinkSlurm ) RunTest (interlinkVersion string , pluginService * dagger.Service , manifests * dagger.Directory , interlinkEndpoint * dagger.Service , pluginConfig * dagger.File , src * dagger.Directory ,
2536) * dagger.Container {
2637 registry := dag .Container ().From ("registry" ).
2738 WithExposedPort (5000 ).AsService ()
2839
2940 return dag .Interlink ("ci" , dagger.InterlinkOpts {
30- VirtualKubeletRef : "ghcr.io/intertwin-eu /interlink/virtual-kubelet-inttw:" + interlinkVersion ,
31- InterlinkRef : "ghcr.io/intertwin-eu /interlink/interlink:" + interlinkVersion ,
41+ VirtualKubeletRef : "ghcr.io/interlink-hq /interlink/virtual-kubelet-inttw:" + interlinkVersion ,
42+ InterlinkRef : "ghcr.io/interlink-hq /interlink/interlink:" + interlinkVersion ,
3243 }).NewInterlink (dagger.InterlinkNewInterlinkOpts {
33- PluginEndpoint : pluginService ,
34- Manifests : manifests ,
35- InterlinkConfig : interlinkConfig ,
36- PluginConfig : pluginConfig ,
37- LocalRegistry : registry ,
44+ PluginEndpoint : pluginService ,
45+ Manifests : manifests ,
46+ InterlinkEndpoint : interlinkEndpoint ,
47+ PluginConfig : pluginConfig ,
48+ LocalRegistry : registry ,
3849 }).Test (dagger.InterlinkTestOpts {
3950 Manifests : manifests ,
4051 SourceFolder : src ,
@@ -46,16 +57,17 @@ func (m *InterlinkSlurm) Test(ctx context.Context, interlinkVersion string, src
4657 // +optional
4758 pluginEndpoint * dagger.Service ,
4859 // +optional
49- // +defaultPath="./manifests/plugin-config.yaml"
60+ interlinkEndpoint * dagger.Service ,
61+ // +optional
62+ // +defaultPath="./manifests/interlink-config.yaml"
5063 interlinkConfig * dagger.File ,
5164) (string , error ) {
5265 if pluginEndpoint == nil {
5366
5467 // build using Dockerfile and publish to registry
55- plugin := dag .Container ().
56- Build (src , dagger.ContainerBuildOpts {
57- Dockerfile : "docker/Dockerfile" ,
58- }).
68+ plugin := src .DockerBuild (dagger.DirectoryDockerBuildOpts {
69+ Dockerfile : "docker/Dockerfile" ,
70+ }).
5971 WithFile ("/etc/interlink/InterLinkConfig.yaml" , pluginConfig ).
6072 WithEnvVariable ("SLURMCONFIGPATH" , "/etc/interlink/InterLinkConfig.yaml" ).
6173 WithEnvVariable ("SHARED_FS" , "true" ).
@@ -65,8 +77,25 @@ func (m *InterlinkSlurm) Test(ctx context.Context, interlinkVersion string, src
6577 if err != nil {
6678 return "" , err
6779 }
68- return m .RunTest (interlinkVersion , pluginEndpoint , manifests , interlinkConfig , pluginConfig , src ).Stdout (ctx )
80+
81+ interlink := dag .Container ().From ("ghcr.io/interlink-hq/interlink/interlink:" + interlinkVersion ).
82+ WithFile ("/etc/interlink/InterLinkConfig.yaml" , interlinkConfig ).
83+ WithEnvVariable ("BUST" , time .Now ().String ()).
84+ WithServiceBinding ("plugin" , pluginEndpoint ).
85+ WithEnvVariable ("INTERLINKCONFIGPATH" , "/etc/interlink/InterLinkConfig.yaml" ).
86+ WithExposedPort (3000 )
87+
88+ interlinkEndpoint , err = interlink .
89+ AsService (
90+ dagger.ContainerAsServiceOpts {
91+ UseEntrypoint : true ,
92+ InsecureRootCapabilities : true ,
93+ }).Start (ctx )
94+ if err != nil {
95+ return "" , err
96+ }
97+ return m .RunTest (interlinkVersion , pluginEndpoint , manifests , interlinkEndpoint , pluginConfig , src ).Stdout (ctx )
6998 }
7099
71- return m .RunTest (interlinkVersion , pluginEndpoint , manifests , interlinkConfig , pluginConfig , src ).Stdout (ctx )
100+ return m .RunTest (interlinkVersion , pluginEndpoint , manifests , interlinkEndpoint , pluginConfig , src ).Stdout (ctx )
72101}
0 commit comments