Skip to content

Commit cd60f99

Browse files
committed
use global dag client
1 parent 4ecc153 commit cd60f99

34 files changed

+487
-664
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
[![validate modules](https://github.com/tsirysndr/daggerverse/actions/workflows/ci.yml/badge.svg)](https://github.com/tsirysndr/daggerverse/actions/workflows/ci.yml)
66
![dagger-min-version](https://img.shields.io/badge/dagger-v0.10.0-blue?color=3D66FF)
7+
![deno compatibility](https://shield.deno.dev/deno/^1.41)
78

89
This is my collection of [Dagger](https://dagger.io) Modules that I use in my projects.
910

ansible-lint/deps.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
export { assertEquals } from "https://deno.land/[email protected]/testing/asserts.ts";
2-
import { Client } from "./sdk/client.gen.ts";
3-
export default Client;
42

5-
export { Container, Directory } from "./sdk/client.gen.ts";
3+
export { dag, Container, Directory } from "./sdk/client.gen.ts";
64
export type { DirectoryID } from "./sdk/client.gen.ts";
75
export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts";
86
export { brightGreen } from "https://deno.land/[email protected]/fmt/colors.ts";

ansible-lint/src/dagger/jobs.ts

+21-30
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
* @description This module provides a set of functions to lint ansible YAML files and to create a development environment with ansible-lint installed.
44
*/
55

6-
import Client, { Directory, Container } from "../../deps.ts";
7-
import { connect } from "../../sdk/connect.ts";
6+
import { dag, Directory, Container } from "../../deps.ts";
87
import { getDirectory } from "./lib.ts";
98

109
export enum Job {
@@ -25,21 +24,17 @@ export async function lint(
2524
src: Directory | string,
2625
files = "*.yml"
2726
): Promise<Directory | string> {
28-
let id = "";
29-
await connect(async (client: Client) => {
30-
const context = await getDirectory(client, src);
31-
const ctr = client
32-
.pipeline(Job.lint)
33-
.container()
34-
.from("cytopia/ansible-lint")
35-
.withDirectory("/app", context)
36-
.withWorkdir("/app")
37-
.withExec([files]);
27+
const context = await getDirectory(src);
28+
const ctr = dag
29+
.pipeline(Job.lint)
30+
.container()
31+
.from("cytopia/ansible-lint")
32+
.withDirectory("/app", context)
33+
.withWorkdir("/app")
34+
.withExec([files]);
3835

39-
await ctr.stdout();
40-
id = await ctr.directory("/app").id();
41-
});
42-
return id;
36+
await ctr.stdout();
37+
return ctr.directory("/app").id();
4338
}
4439

4540
/**
@@ -51,21 +46,17 @@ export async function lint(
5146
export async function dev(
5247
src: string | Directory | undefined = "."
5348
): Promise<Container | string> {
54-
let id = "";
55-
await connect(async (client: Client) => {
56-
const context = await getDirectory(client, src);
57-
const ctr = client
58-
.pipeline(Job.dev)
59-
.container()
60-
.from("cytopia/ansible-lint")
61-
.withDirectory("/app", context)
62-
.withWorkdir("/app")
63-
.withEntrypoint(["/bin/sh"]);
49+
const context = await getDirectory(src);
50+
const ctr = dag
51+
.pipeline(Job.dev)
52+
.container()
53+
.from("cytopia/ansible-lint")
54+
.withDirectory("/app", context)
55+
.withWorkdir("/app")
56+
.withEntrypoint(["/bin/sh"]);
6457

65-
await ctr.stdout();
66-
id = await ctr.id();
67-
});
68-
return id;
58+
await ctr.stdout();
59+
return ctr.id();
6960
}
7061

7162
export type JobExec =

ansible-lint/src/dagger/lib.ts

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
1-
import Client, { Directory, DirectoryID } from "../../deps.ts";
1+
import { dag, Directory, DirectoryID } from "../../deps.ts";
22

33
export const getDirectory = async (
4-
client: Client,
54
src: string | Directory | undefined = "."
65
) => {
76
if (src instanceof Directory) {
87
return src;
98
}
109
if (typeof src === "string") {
1110
try {
12-
const directory = client.loadDirectoryFromID(src as DirectoryID);
11+
const directory = dag.loadDirectoryFromID(src as DirectoryID);
1312
await directory.id();
1413
return directory;
1514
} catch (_) {
16-
return client.host
17-
? client.host().directory(src)
18-
: client.currentModule().source().directory(src);
15+
return dag.host
16+
? dag.host().directory(src)
17+
: dag.currentModule().source().directory(src);
1918
}
2019
}
21-
return client.host
22-
? client.host().directory(src)
23-
: client.currentModule().source().directory(src);
20+
return dag.host
21+
? dag.host().directory(src)
22+
: dag.currentModule().source().directory(src);
2423
};

ansible/deps.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
export { assertEquals } from "https://deno.land/[email protected]/testing/asserts.ts";
2-
import { Client } from "./sdk/client.gen.ts";
3-
export default Client;
4-
5-
export { Container, Directory } from "./sdk/client.gen.ts";
2+
export { Container, Directory, dag } from "./sdk/client.gen.ts";
63
export type { DirectoryID } from "./sdk/client.gen.ts";
74
export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts";
85
export { brightGreen } from "https://deno.land/[email protected]/fmt/colors.ts";

ansible/src/dagger/jobs.ts

+19-29
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
* @module ansible
33
* @description This module provides a set of functions to run ansible playbooks and to create a development environment with ansible installed.
44
*/
5-
6-
import Client, { Directory, Container } from "../../deps.ts";
7-
import { connect } from "../../sdk/connect.ts";
5+
import { dag, Directory, Container } from "../../deps.ts";
86
import { getDirectory } from "./lib.ts";
97

108
export enum Job {
@@ -27,20 +25,16 @@ export async function playbook(
2725
playbook: string,
2826
tag = "latest"
2927
): Promise<string> {
30-
let stdout = "";
31-
await connect(async (client: Client) => {
32-
const context = await getDirectory(client, src);
33-
const ctr = client
34-
.pipeline(Job.playbook)
35-
.container()
36-
.from(`cytopia/ansible:${tag}`)
37-
.withDirectory("/app", context)
38-
.withWorkdir("/app")
39-
.withExec(["ansible-playbook", playbook]);
28+
const context = await getDirectory(src);
29+
const ctr = dag
30+
.pipeline(Job.playbook)
31+
.container()
32+
.from(`cytopia/ansible:${tag}`)
33+
.withDirectory("/app", context)
34+
.withWorkdir("/app")
35+
.withExec(["ansible-playbook", playbook]);
4036

41-
stdout = await ctr.stdout();
42-
});
43-
return stdout;
37+
return ctr.stdout();
4438
}
4539

4640
/**
@@ -54,20 +48,16 @@ export async function dev(
5448
src: string | Directory | undefined = ".",
5549
tag = "latest"
5650
): Promise<Container | string> {
57-
let id = "";
58-
await connect(async (client: Client) => {
59-
const context = await getDirectory(client, src);
60-
const ctr = client
61-
.pipeline(Job.dev)
62-
.container()
63-
.from(`cytopia/ansible:${tag}`)
64-
.withDirectory("/app", context)
65-
.withWorkdir("/app");
51+
const context = await getDirectory(src);
52+
const ctr = dag
53+
.pipeline(Job.dev)
54+
.container()
55+
.from(`cytopia/ansible:${tag}`)
56+
.withDirectory("/app", context)
57+
.withWorkdir("/app");
6658

67-
await ctr.stdout();
68-
id = await ctr.id();
69-
});
70-
return id;
59+
await ctr.stdout();
60+
return ctr.id();
7161
}
7262

7363
export type JobExec =

ansible/src/dagger/lib.ts

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
1-
import Client, { Directory, DirectoryID } from "../../deps.ts";
1+
import { dag, Directory, DirectoryID } from "../../deps.ts";
22

33
export const getDirectory = async (
4-
client: Client,
54
src: string | Directory | undefined = "."
65
) => {
76
if (src instanceof Directory) {
87
return src;
98
}
109
if (typeof src === "string") {
1110
try {
12-
const directory = client.loadDirectoryFromID(src as DirectoryID);
11+
const directory = dag.loadDirectoryFromID(src as DirectoryID);
1312
await directory.id();
1413
return directory;
1514
} catch (_) {
16-
return client.host
17-
? client.host().directory(src)
18-
: client.currentModule().source().directory(src);
15+
return dag.host
16+
? dag.host().directory(src)
17+
: dag.currentModule().source().directory(src);
1918
}
2019
}
21-
return client.host
22-
? client.host().directory(src)
23-
: client.currentModule().source().directory(src);
20+
return dag.host
21+
? dag.host().directory(src)
22+
: dag.currentModule().source().directory(src);
2423
};

awesome-ci/deps.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export { assertEquals } from "https://deno.land/[email protected]/testing/asserts.ts";
22

3-
export { Container, Directory, File } from "./sdk/client.gen.ts";
3+
export { dag, Container, Directory, File } from "./sdk/client.gen.ts";
44
export type { DirectoryID } from "./sdk/client.gen.ts";
55
export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts";
66
export { brightGreen } from "https://deno.land/[email protected]/fmt/colors.ts";

awesome-ci/src/dagger/jobs/dev.ts

+11-17
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
* @description Awesome Continuous Integration - Lot's of tools for git, file and static source code analysis.
44
*/
55

6-
import { Directory, Container } from "../../../deps.ts";
7-
import { Client } from "../../../sdk/client.gen.ts";
8-
import { connect } from "../../../sdk/connect.ts";
6+
import { dag, Directory, Container } from "../../../deps.ts";
97
import { getDirectory } from "../lib.ts";
108
import { Job } from "./mod.ts";
119

@@ -18,19 +16,15 @@ import { Job } from "./mod.ts";
1816
export async function dev(
1917
src: string | Directory | undefined = "."
2018
): Promise<Container | string> {
21-
let id = "";
22-
await connect(async (client: Client) => {
23-
const context = await getDirectory(client, src);
24-
const ctr = client
25-
.pipeline(Job.dev)
26-
.container()
27-
.from("cytopia/awesome-ci")
28-
.withDirectory("/app", context)
29-
.withWorkdir("/app");
19+
const context = await getDirectory(src);
20+
const ctr = dag
21+
.pipeline(Job.dev)
22+
.container()
23+
.from("cytopia/awesome-ci")
24+
.withDirectory("/app", context)
25+
.withWorkdir("/app");
3026

31-
const result = await ctr.stdout();
32-
console.log(result);
33-
id = await ctr.id();
34-
});
35-
return id;
27+
const result = await ctr.stdout();
28+
console.log(result);
29+
return ctr.id();
3630
}

awesome-ci/src/dagger/jobs/file-cr.ts

+17-23
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import { Directory } from "../../../deps.ts";
2-
import { Client } from "../../../sdk/client.gen.ts";
3-
import { connect } from "../../../sdk/connect.ts";
1+
import { dag, Directory } from "../../../deps.ts";
42
import { getDirectory } from "../lib.ts";
53
import { Job } from "./mod.ts";
64

@@ -19,28 +17,24 @@ export async function fileCr(
1917
ignore?: string,
2018
extensions?: string
2119
): Promise<string> {
22-
let stdout = "";
23-
await connect(async (client: Client) => {
24-
const context = await getDirectory(client, src);
25-
const args = [];
20+
const context = await getDirectory(src);
21+
const args = [];
2622

27-
if (ignore) {
28-
args.push(`--ignore="${ignore}"`);
29-
}
23+
if (ignore) {
24+
args.push(`--ignore="${ignore}"`);
25+
}
3026

31-
if (extensions) {
32-
args.push(`--extensions="${extensions}"`);
33-
}
27+
if (extensions) {
28+
args.push(`--extensions="${extensions}"`);
29+
}
3430

35-
const ctr = client
36-
.pipeline(Job.fileCr)
37-
.container()
38-
.from("cytopia/awesome-ci")
39-
.withDirectory("/app", context)
40-
.withWorkdir("/app")
41-
.withExec(["file-cr", `--path=${path}`, ...args]);
31+
const ctr = dag
32+
.pipeline(Job.fileCr)
33+
.container()
34+
.from("cytopia/awesome-ci")
35+
.withDirectory("/app", context)
36+
.withWorkdir("/app")
37+
.withExec(["file-cr", `--path=${path}`, ...args]);
4238

43-
stdout = await ctr.stdout();
44-
});
45-
return stdout;
39+
return ctr.stdout();
4640
}
+17-23
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import { Directory } from "../../../deps.ts";
2-
import { Client } from "../../../sdk/client.gen.ts";
3-
import { connect } from "../../../sdk/connect.ts";
1+
import { dag, Directory } from "../../../deps.ts";
42
import { getDirectory } from "../lib.ts";
53
import { Job } from "./mod.ts";
64

@@ -19,28 +17,24 @@ export async function fileCrlf(
1917
ignore?: string,
2018
extensions?: string
2119
): Promise<string> {
22-
let stdout = "";
23-
await connect(async (client: Client) => {
24-
const context = await getDirectory(client, src);
25-
const args = [];
20+
const context = await getDirectory(src);
21+
const args = [];
2622

27-
if (ignore) {
28-
args.push(`--ignore="${ignore}"`);
29-
}
23+
if (ignore) {
24+
args.push(`--ignore="${ignore}"`);
25+
}
3026

31-
if (extensions) {
32-
args.push(`--extensions="${extensions}"`);
33-
}
27+
if (extensions) {
28+
args.push(`--extensions="${extensions}"`);
29+
}
3430

35-
const ctr = client
36-
.pipeline(Job.fileCrlf)
37-
.container()
38-
.from("cytopia/awesome-ci")
39-
.withDirectory("/app", context)
40-
.withWorkdir("/app")
41-
.withExec(["file-cr", `--path=${path}`, ...args]);
31+
const ctr = dag
32+
.pipeline(Job.fileCrlf)
33+
.container()
34+
.from("cytopia/awesome-ci")
35+
.withDirectory("/app", context)
36+
.withWorkdir("/app")
37+
.withExec(["file-cr", `--path=${path}`, ...args]);
4238

43-
stdout = await ctr.stdout();
44-
});
45-
return stdout;
39+
return ctr.stdout();
4640
}

0 commit comments

Comments
 (0)