Skip to main content

Manage packages using the package manager

This tutorial illustrates how to install and upgrade packages using Dagger package manager.

Installing a package

Initializing workspace

Create an empty directory for your new Dagger workspace:

mkdir workspacecd workspace

As described in the previous tutorials, initialize your Dagger workspace:

dagger initdagger new test

That will create 2 directories: .dagger and cue.mod where our package will reside:

.├── cue.mod│   ├── module.cue│   ├── pkg│   └── usr├── .dagger│   └── env│       └── test

Install

In our example we will use gcpcloudrun module from github Let's first add it to our source.cue file:

./source.cue
package main
import (  "github.com/tjovicic/dagger-modules/gcpcloudrun")
run: gcpcloudrun.#Run

To install it just run

dagger mod get github.com/tjovicic/dagger-modules/gcpcloudrun@v0.1

It should pull the v0.1 version from Github, leave a copy in cue.mod/pkg and reflect the change in cue.mod/dagger.mod.cue file:

cue.mod/pkg/github.com/└── tjovicic    └── dagger-modules        └── gcpcloudrun            ├── cue.mod            ├── README.md            └── source.cue
./cue.mod/dagger.mod
github.com/tjovicic/dagger-modules/gcpcloudrun v0.1

Querying the current setup with dagger query should return a valid result:

{  "run": {    "creds": {      "username": "oauth2accesstoken"    },    "deploy": {      "platform": "managed",      "port": "80"    },    "push": {      "auth": {        "username": "oauth2accesstoken"      },      "push": {}    }  }}

Upgrading

Now that you've successfully installed a package, let's try to upgrade it.

dagger mod get github.com/tjovicic/dagger-modules/gcpcloudrun@v0.2

You should see similar output:

12:25PM INF system | downloading github.com/tjovicic/dagger-modules:v0.2

And cue.mod/dagger.mod.cue should reflect the new version:

./cue.mod/dagger.mod
github.com/tjovicic/dagger-modules/gcpcloudrun v0.2