Workspaces

A workspace holds the configuration that every run of that workspace uses. Open Workspaces to see the list, and open a record to edit it.

The screen has four sections: the workspace configuration, the code under test, the test environment, and the test suite. A workspace that only runs analyses needs the first two sections. A workspace that runs test suites needs all four.

Workspace configuration

Field

Meaning

Name

The name that every list and picker shows.

Active

An inactive workspace accepts no new runs.

Node

The machine that runs the work of this workspace. See Nodes.

Code under test

This section names the repository of the software itself.

Git repository

The clone URL. An HTTPS URL and an SSH URL both work.

Git branch

The branch to check out before the build.

Repository local folder

The absolute path on the node that holds the clone.

HTTPS username

The username for an HTTPS clone URL. Midair ignores it for an SSH URL, and it uses the login of the credential when the credential has one.

HTTPS credential

The password or the token that opens the repository. Midair keeps it in the secret store, and the workspace holds a reference. See Credentials.

Build command line

The command that the node runs inside the repository folder. The analyser needs a compile_commands.json file, and this command produces it.

Test environment

Midair runs test suites that are built on the Test Environment (TE). This section names the TE checkout.

TE git repository, TE branch, TE local folder, TE HTTPS username

The same four repository fields as above.

TE HTTPS credential

The credential that opens the TE repository.

Raw → Text log command line

The command that converts a raw TE log into plain text. $ENV_TS resolves to the TE installation path.

Configuration

The TE configuration identifier. Midair passes it to the TE at run time.

Files to analyze

Comma-separated glob patterns. They select the source files and the compile_commands.json file that Midair gives to the analyser.

Test suite

TS git repository, TS branch, TS local folder, TS HTTPS username

The same four repository fields, for the repository that holds the tests.

TS HTTPS credential

The credential that opens the test suite repository.

TS run command

The shell command that the node runs inside the test suite folder to start a run.

A run can override the branch of each of the three repositories. See Revision overrides.

Badges

A workspace can publish three status badges: testing, analysis and devices. Midair draws them from the latest runs of the workspace, in the styles that shields.io draws.

The switch Publish status badges is off until an administrator turns it on. While it is off, the badge address answers as though the workspace did not exist.

A badge address carries no credential. Every reader of the page that holds the badge sees it. This is what a badge is for: a README, a wiki page, or a dashboard on a wall, none of which sign in.

The badge address takes these parameters:

kind

testing, analysis or runtime.

style

flat (the default), flat-square, plastic, for-the-badge or social.

variant

count (the default) shows the numbers behind the state, for example 128 passed, 3 failed. state shows one word.

label, color

Optional replacements for the left text and the right colour. Neither changes what the badge reports.

The Templates screen lists the address of each badge, with the snippet in Markdown, HTML and reStructuredText.

Credentials

A password that a form writes into a record travels in every response that forgets to remove it. Midair keeps the secret in the core secret store instead, and the record holds a reference.

One credential serves any number of records. A rotation happens in one place.

A credential holds one of two things:

  • a password;

  • an SSH private key, with a passphrase if the key has one.

The public half of a key is not a secret, so Midair stores it and shows it. You need it to add the key to the authorized_keys file of a host.

Open Settings, then Integrations, to reach the credential list. The node wizard and the workspace wizard also make a credential from the password that you type into them.