summaryrefslogtreecommitdiff
path: root/tests/platform-ci/README.md
blob: 2eae5ca0828a035f05622d34d3c71b5764ffd330 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Continuous integration tests for the leap_platform code

# Setup

    cd tests/platform-ci
    ./setup.sh

# Run syntax checks and test if catalog compiles
    
    bin/rake test:syntax
    bin/rake catalog

For a list of all tasks:

    bin/rake -T

# Full integration test

You can create a virtual provider using AWS, run tests on it, then tear it down
when the tests succeed.
In order to do so, you need to set your AWS credentials as environment variables:

    export AWS_ACCESS_KEY='...'
    export AWS_SECRET_KEY='...'

If you want to login to this machine during or after the deploy you need to 

    export SSH_PRIVATE_KEY=$(cat ~/.ssh/id_rsa)

then start the deply test with

    ./ci-build.sh

# Running tests with docker and gitlab-runner

Another possibility to run the platform tests is to use [gitlab-runner](https://docs.gitlab.com/runner/)
together with [Docker](https://www.docker.com/).

Export `AWS_ACCESS_KEY`, `AWS_SECRET_KEY` and `SSH_PRIVATE_KEY` as shown above.
From the root dir of this repo run:

    gitlab-runner exec docker --env AWS_ACCESS_KEY="$AWS_ACCESS_KEY" --env AWS_SECRET_KEY="$AWS_SECRET_KEY" --env platform_PROVIDER_SSH_PRIVATE_KEY="$SSH_PRIVATE_KEY" deploy_test

See `.gitlab-ci.yml` for all the different test jobs.

To ssh into the VM you first need to enter the docker container:

    docker exec -u cirunner -it $(docker ps --latest -q) bash

From there you can access the test provider config directory and ssh into the VM:

      cd /builds/project-0/tests/platform-ci/provider/
      leap ssh citest0