# Installation - VMs or CI run

Before you begin the installation, please obtain the link to download Cover (from your product update email, or contact [Diffblue](https://www.diffblue.com/support/)). Please note you need version 2022.03.02 or above, installed and activated with an appropriate license.

### Installing on a VM

If you only have a few machines it is possible to manually install Cover on each machine. To do this:

1. Unzip the Cover jar files to a common and accessible directory inside each VM.
2. Activate Cover.
3. Reference these jar files when calling Cover in your CI scripts.

### Installing during a CI run

For most CI systems, you will want to download Cover as part of your CI run.

This link should be added as a secret variable for your CI system, with a memorable name, such as “RELEASE\_URL”, so that it can be referenced later. Depending on your CI system this will have a different name but common examples are:

* GitHub Actions = Secrets
* Codebuild = Parameter store
* Jenkins = Secret text in credentials
* GitLab CI = Protected variables

Then, add a step to your pipeline which downloads from this link and extract the contents. Below is an example in GitHub Actions:

```yaml
- name: Get Cover
        run: |
          mkdir dcover
          cd dcover
          wget -c "${{ secrets.RELEASE_URL }}" -O dcover.zip -q
          unzip dcover.zip
```

From this point on you will be able to call Cover by referencing the executable extracted from this zip at the location you specified (`dcover/dcover` in the example above).

Similarly, add a secret variable for your CI system that holds the Cover license key, such as “LICENSE\_KEY”. Activate Cover each time CI is run. For example

```yaml
- name: Get Cover
        run: dcover/dcover activate "$LICENSE_KEY"
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cover-docs-preview.diffblue.com/features/cover-pipeline/cover-pipeline-for-ci/installing-diffblue-cover-in-your-ci-environment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
