mirror of
https://github.com/openziti/ziti.git
synced 2026-10-12 07:18:36 +00:00
81 lines
2.8 KiB
Markdown
81 lines
2.8 KiB
Markdown
# Smoketest
|
|
|
|
The ziti project uses a fablab based environment to run smoketests. These tests are run
|
|
in github, but can be run locally as well.
|
|
|
|
## Running smoketests locally
|
|
|
|
First you must have an AWS account with permissions to create VPCs, setup security groups
|
|
and run EC2 instances. If you are able to the run the AWS CLI using an access key and
|
|
secret token, the smoketest should work as well.
|
|
|
|
The following steps assume you are starting at the root of a cloned `ziti` repository.
|
|
|
|
```
|
|
$ cd zititest
|
|
$ go install ./...
|
|
$ simple-transfer create
|
|
$ ZITI_VERSION=0.0.0 simple-transfer up
|
|
$ go test -v ./tests/...
|
|
$ simple-transfer dispose
|
|
```
|
|
|
|
The HA smoketest is very similar. There's one additional flag needed when creating the instance.
|
|
|
|
```
|
|
$ simple-transfer create -l ha=true
|
|
```
|
|
|
|
So the full set of steps for running the HA smoketest locally are:
|
|
|
|
```
|
|
$ cd zititest
|
|
$ go install ./...
|
|
$ simple-transfer create -l ha=true
|
|
$ ZITI_VERSION=0.0.0 simple-transfer up
|
|
$ go test -v ./tests/...
|
|
$ simple-transfer dispose
|
|
```
|
|
|
|
## Debugging smoketests
|
|
|
|
When a smoketest runs in Github, the fablab instance data is uploaded to s3. This includes
|
|
everything need to work with the instance. If the smoketest run fails, the teardown will
|
|
be delayed by half of an hour. In that half of an hour the instance data can be downloaded
|
|
and the instance can be investigated. If you wish to prevent the instance from being
|
|
torn down by the workflow, you can delete the instance data out of S3 and take responsiblility
|
|
for cleaning it up yourself.
|
|
|
|
The instance data is encrypted and requires a passphrase to decrypt. Here's an example
|
|
script which can import a GH actions workflow instance into your local environment.
|
|
|
|
```
|
|
aws s3 cp s3://ziti-smoketest-fablab-instances/simple-transfer-$1.tar.gz.gpg ${HOME}/Downloads/simple-transfer-$1.tar.gz.gpg
|
|
FABLAB_PASSPHRASE=<passphrase goes here> simple-transfer import ${HOME}/Downloads/simple-transfer-$1.tar.gz.gpg
|
|
rm ${HOME}/Downloads/simple-transfer-$1.tar.gz.gpg
|
|
```
|
|
You would pass the workflow run number into the script. If you need the GPG passphrase, please ask.
|
|
|
|
To delete the instance data out of S3, you would run:
|
|
|
|
```
|
|
aws s3 rm s3://ziti-smoketest-fablab-instances/simple-transfer-$1.tar.gz.gpg
|
|
```
|
|
|
|
The HA smoketest is very similar.
|
|
|
|
```
|
|
aws s3 cp s3://ziti-smoketest-fablab-instances/simple-transfer-ha-$1.tar.gz.gpg ${HOME}/Downloads/simple-transfer-ha-$1.tar.gz.gpg
|
|
FABLAB_PASSPHRASE=<passphrase goes here> simple-transfer import ${HOME}/Downloads/simple-transfer-ha-$1.tar.gz.gpg
|
|
rm ${HOME}/Downloads/simple-transfer-ha-$1.tar.gz.gpg
|
|
```
|
|
You would pass the workflow run number into the script. If you need the GPG passphrase, please ask.
|
|
|
|
To delete the instance data out of S3, you would run:
|
|
|
|
```
|
|
aws s3 rm s3://ziti-smoketest-fablab-instances/simple-transfer-ha-$1.tar.gz.gpg
|
|
```
|
|
|
|
|