Dagger
Search

Dragee

Once the test, lint and build steps are done, the module is published to npm registry

There are 3 available entrypoints for CIs which are:
- `on_pull_request`: runs the lint and test steps on a pull request
- `on_publish`: runs the lint, test and build steps on a release and then publish it to npm registry
- `publish`: ⚠️ runs the lint, test and then publish to npm registry - it's a temporary entrypoint since some packages like the asserters cannot be build at the moment

Installation

dagger install github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b

Entrypoint

Return Type
Dragee
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
func (m *myModule) example() *Dragee  {
	return dag.
			Dragee()
}
@function
def example() -> dag.Dragee:
	return (
		dag.dragee()
	)
@func()
example(): Dragee {
	return dag
		.dragee()
}

Types

Dragee 🔗

bunContainer() 🔗

Used to create a container with bun installed

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
bunVersionString !"latest"specify the version of bun to use
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 bun-container --bun-version string
func (m *myModule) example(bunVersion string) *Container  {
	return dag.
			Dragee().
			BunContainer(bunVersion)
}
@function
def example(bun_version: str) -> dagger.Container:
	return (
		dag.dragee()
		.bun_container(bun_version)
	)
@func()
example(bunVersion: string): Container {
	return dag
		.dragee()
		.bunContainer(bunVersion)
}

nodeContainer() 🔗

Used to create a container with node installed

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
nodeVersionString !"current-alpine3.21"specify the version of node to use
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 node-container --node-version string
func (m *myModule) example(nodeVersion string) *Container  {
	return dag.
			Dragee().
			NodeContainer(nodeVersion)
}
@function
def example(node_version: str) -> dagger.Container:
	return (
		dag.dragee()
		.node_container(node_version)
	)
@func()
example(nodeVersion: string): Container {
	return dag
		.dragee()
		.nodeContainer(nodeVersion)
}

installDependencies() 🔗

Used to install dependencies of the project on a bun container

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-the directory containing the project
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 install-dependencies --source DIR_PATH
func (m *myModule) example(source *Directory) *Container  {
	return dag.
			Dragee().
			InstallDependencies(source)
}
@function
def example(source: dagger.Directory) -> dagger.Container:
	return (
		dag.dragee()
		.install_dependencies(source)
	)
@func()
example(source: Directory): Container {
	return dag
		.dragee()
		.installDependencies(source)
}

mountAppWith() 🔗

This step is used to mount the project’s directory/files and dependencies on a fresh bun container

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-the directory containing the application files
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 mount-app-with --source DIR_PATH
func (m *myModule) example(source *Directory) *Container  {
	return dag.
			Dragee().
			MountAppWith(source)
}
@function
def example(source: dagger.Directory) -> dagger.Container:
	return (
		dag.dragee()
		.mount_app_with(source)
	)
@func()
example(source: Directory): Container {
	return dag
		.dragee()
		.mountAppWith(source)
}

test() 🔗

It runs the tests of the project

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
appContainer !-No description provided
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 test --app IMAGE:TAG
func (m *myModule) example(app *Container) *Container  {
	return dag.
			Dragee().
			Test(app)
}
@function
def example(app: dagger.Container) -> dagger.Container:
	return (
		dag.dragee()
		.test(app)
	)
@func()
example(app: Container): Container {
	return dag
		.dragee()
		.test(app)
}

lint() 🔗

This function runs the lint of the project on a bun container

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
appContainer !-the container to run the lint on
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 lint --app IMAGE:TAG
func (m *myModule) example(app *Container) *Container  {
	return dag.
			Dragee().
			Lint(app)
}
@function
def example(app: dagger.Container) -> dagger.Container:
	return (
		dag.dragee()
		.lint(app)
	)
@func()
example(app: Container): Container {
	return dag
		.dragee()
		.lint(app)
}

build() 🔗

This function runs the build of the project on a bun container

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-the directory containing the project to build
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 build --source DIR_PATH
func (m *myModule) example(source *Directory) *Container  {
	return dag.
			Dragee().
			Build(source)
}
@function
def example(source: dagger.Directory) -> dagger.Container:
	return (
		dag.dragee()
		.build(source)
	)
@func()
example(source: Directory): Container {
	return dag
		.dragee()
		.build(source)
}

onPullRequest() 🔗

This function runs the lint and test of the project on a pull request trigger

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
urlString !-- the repository url (it can either be a http or a git url)
branchString !"main"- the branch to use - defaults to `main`
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 on-pull-request --url string --branch string
func (m *myModule) example(ctx context.Context, url string, branch string)   {
	return dag.
			Dragee().
			OnPullRequest(ctx, url, branch)
}
@function
async def example(url: str, branch: str) -> None:
	return await (
		dag.dragee()
		.on_pull_request(url, branch)
	)
@func()
async example(url: string, branch: string): Promise<void> {
	return dag
		.dragee()
		.onPullRequest(url, branch)
}

lintAndTest() 🔗

This function runs the lint and test of the project

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-the source directory
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 lint-and-test --source DIR_PATH
func (m *myModule) example(source *Directory) *Container  {
	return dag.
			Dragee().
			LintAndTest(source)
}
@function
def example(source: dagger.Directory) -> dagger.Container:
	return (
		dag.dragee()
		.lint_and_test(source)
	)
@func()
example(source: Directory): Container {
	return dag
		.dragee()
		.lintAndTest(source)
}

onPublish() 🔗

This function is executed when a release is triggered and will lint, test, build, bump the package version and publish it to npm registry You can call this function in different ways:

dagger call on-publish npm-token=env:NPM_TOKEN source=<path/to/source> tag=v1.0.0

or

dagger call on-publish npm-token=env:NPM_TOKEN git-url=https://github.com/dragee-io/dragee-io.git branch=main tag=v1.0.0

or

dagger call on-publish npm-token=env:NPM_TOKEN git-url=https://github.com/dragee-io/dragee-io.git branch=main
Return Type
Void !
Arguments
NameTypeDefault ValueDescription
npmTokenSecret !-is the npm token to use to publish the project
sourceDirectory -the source directory to use - if not provided, will pull the repository if the git_url and branch are provided
gitUrlString -the git url of the repository
branchString -the branch to use
tagString -the tag version to release the package to - if not provided, will use the latest tag created on the repository
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 on-publish --npm-token env:MYSECRET
func (m *myModule) example(ctx context.Context, npmToken *Secret)   {
	return dag.
			Dragee().
			OnPublish(ctx, npmToken)
}
@function
async def example(npm_token: dagger.Secret) -> None:
	return await (
		dag.dragee()
		.on_publish(npm_token)
	)
@func()
async example(npmToken: Secret): Promise<void> {
	return dag
		.dragee()
		.onPublish(npmToken)
}

publish() 🔗

This function works as on_publish but will not run the build step

Return Type
Void !
Arguments
NameTypeDefault ValueDescription
npmTokenSecret !-No description provided
sourceDirectory -No description provided
gitUrlString -No description provided
branchString -No description provided
tagString -No description provided
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 publish --npm-token env:MYSECRET
func (m *myModule) example(ctx context.Context, npmToken *Secret)   {
	return dag.
			Dragee().
			Publish(ctx, npmToken)
}
@function
async def example(npm_token: dagger.Secret) -> None:
	return await (
		dag.dragee()
		.publish(npm_token)
	)
@func()
async example(npmToken: Secret): Promise<void> {
	return dag
		.dragee()
		.publish(npmToken)
}

bumpAndPublish() 🔗

Bumps the version of the app and publishes it to npm

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
tagString !-the tag to use for the version bump
sourceDirectory !-the source directory of the project to bump the version
npmTokenSecret !-the npm token to use for the publish
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 bump-and-publish --tag string --source DIR_PATH --npm-token env:MYSECRET
func (m *myModule) example(tag string, source *Directory, npmToken *Secret) *Container  {
	return dag.
			Dragee().
			BumpAndPublish(tag, source, npmToken)
}
@function
def example(tag: str, source: dagger.Directory, npm_token: dagger.Secret) -> dagger.Container:
	return (
		dag.dragee()
		.bump_and_publish(tag, source, npm_token)
	)
@func()
example(tag: string, source: Directory, npmToken: Secret): Container {
	return dag
		.dragee()
		.bumpAndPublish(tag, source, npmToken)
}

publishApp() 🔗

Publishes the app to npm

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
appContainer !-the app to publish
npmTokenSecret !-the npm token to use for the publish
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 publish-app --app IMAGE:TAG --npm-token env:MYSECRET
func (m *myModule) example(app *Container, npmToken *Secret) *Container  {
	return dag.
			Dragee().
			PublishApp(app, npmToken)
}
@function
def example(app: dagger.Container, npm_token: dagger.Secret) -> dagger.Container:
	return (
		dag.dragee()
		.publish_app(app, npm_token)
	)
@func()
example(app: Container, npmToken: Secret): Container {
	return dag
		.dragee()
		.publishApp(app, npmToken)
}

updateAppVersion() 🔗

Updates the version of the app

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
versionString !-the version to update to
sourceDirectory !-the source directory of the project to update the version
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 update-app-version --version string --source DIR_PATH
func (m *myModule) example(version string, source *Directory) *Container  {
	return dag.
			Dragee().
			UpdateAppVersion(version, source)
}
@function
def example(version: str, source: dagger.Directory) -> dagger.Container:
	return (
		dag.dragee()
		.update_app_version(version, source)
	)
@func()
example(version: string, source: Directory): Container {
	return dag
		.dragee()
		.updateAppVersion(version, source)
}

getLatestTag() 🔗

Gets the latest tag of the repository

Return Type
String !
Arguments
NameTypeDefault ValueDescription
urlString !-the url of the repository
Example
dagger -m github.com/dragee-io/daggerverse@8a0880a7a89486f757f9346c1714d4bba2ad617b call \
 get-latest-tag --url string
func (m *myModule) example(ctx context.Context, url string) string  {
	return dag.
			Dragee().
			GetLatestTag(ctx, url)
}
@function
async def example(url: str) -> str:
	return await (
		dag.dragee()
		.get_latest_tag(url)
	)
@func()
async example(url: string): Promise<string> {
	return dag
		.dragee()
		.getLatestTag(url)
}