Dragee
Once the test, lint and build steps are done, the module is published to npm registryThere 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
Name | Type | Default Value | Description |
---|---|---|---|
bunVersion | String ! | "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
Name | Type | Default Value | Description |
---|---|---|---|
nodeVersion | String ! | "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
Name | Type | Default Value | Description |
---|---|---|---|
source | Directory ! | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
source | Directory ! | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
app | Container ! | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
app | Container ! | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
source | Directory ! | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
url | String ! | - | - the repository url (it can either be a http or a git url) |
branch | String ! | "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
Name | Type | Default Value | Description |
---|---|---|---|
source | Directory ! | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
npmToken | Secret ! | - | is the npm token to use to publish the project |
source | Directory | - | the source directory to use - if not provided, will pull the repository if the git_url and branch are provided |
gitUrl | String | - | the git url of the repository |
branch | String | - | the branch to use |
tag | String | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
npmToken | Secret ! | - | No description provided |
source | Directory | - | No description provided |
gitUrl | String | - | No description provided |
branch | String | - | No description provided |
tag | String | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
tag | String ! | - | the tag to use for the version bump |
source | Directory ! | - | the source directory of the project to bump the version |
npmToken | Secret ! | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
app | Container ! | - | the app to publish |
npmToken | Secret ! | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
version | String ! | - | the version to update to |
source | Directory ! | - | 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
Name | Type | Default Value | Description |
---|---|---|---|
url | String ! | - | 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)
}