Sending reports
Description
Your manifests stay the same. At the end of a run, Updatecli sends each pipeline’s report to Udash.
It needs three things from you: where to publish, a token if the instance requires one, and the
--experimental flag.
Warning | Without |
From your laptop
updatecli udash login "https://udash.example.com" --experimentalIf the instance requires authentication, the command opens its token page in a browser and asks you to paste an API token. Create one there, under Profile then Tokens. The command checks the token before saving it, so a wrong token fails immediately.
If the API is not at the given URL followed by /api, set it with --api-url:
updatecli udash login --api-url "https://api.example.com/api" "https://udash.example.com" --experimentalupdatecli udash config prints where the settings were saved, and updatecli udash logout removes
them. The updatecli udash login reference lists every
flag.
Then run Updatecli with --experimental:
updatecli diff --experimentalEach pipeline ends with a link to its stored report:
UDASH - EXPERIMENTAL
=====================
Publishing report to Udash
my pipeline:
=> "https://udash.example.com/pipeline/reports/8f2b1c94-...."From CI
Use environment variables instead of udash login:
| Variable | Purpose |
|---|---|
| The Udash URL, used to build the report links. |
| The API URL. Nothing is published when it is unset. |
| The Udash API token, when the instance requires one. |
A variable wins over the value saved by udash login.
- name: Run Updatecli
env:
UPDATECLI_UDASH_URL: https://udash.example.com
UPDATECLI_UDASH_API_URL: https://udash.example.com/api
UPDATECLI_UDASH_ACCESS_TOKEN: ${{ secrets.UDASH_TOKEN }}
run: updatecli apply --experimentalThe token needs the reports:write scope, which new tokens get by default. See
GitHub Actions and Jenkins for
the surrounding job.
Making reports easy to find
The interface is organised per Git repository and filtered by label. A report with neither is stored, but you can only reach it through the full report list.
name: Bump the base image
pipelineid: docker/base-image
labels:
ecosystem: docker
monitor: active
# The scm files the reports under this Git repository in Udash.
scms:
default:
kind: github
spec:
owner: my-org
repository: my-service
branch: main
token: '{{ requiredEnv "GITHUB_TOKEN" }}'
sources:
alpine:
name: Get the latest Alpine version
kind: dockerimage
spec:
image: alpine
versionfilter:
kind: semver
targets:
dockerfile:
name: Update the Alpine base image
kind: dockerfile
scmid: default
sourceid: alpine
spec:
file: Dockerfile
instruction:
keyword: FROM
matcher: alpine
An
scmreferenced throughscmidfiles the pipeline under its Git repository and puts it on the Git dashboard.Labels feed the filters. See Choosing labels.
Udash rejects a label with an empty value. Leave the label out instead of setting it to "".
When nothing arrives
| Symptom | Fix |
|---|---|
No | Add |
| Run |
| Your token cannot write reports. Create a token with the |
Problems on the server side, such as sign-in or tokens that are always rejected, are covered in the updatecli/udash repository.
Go further
Dashboards - the filters these labels feed.
"Environment variables" - every variable Updatecli reads.
"Experimental features" - what else
--experimentalturns on.