2023-01-06 11:51:00 +01:00
|
|
|
# Integration testing
|
|
|
|
|
|
|
|
Headscale relies on integration testing to ensure we remain compatible with Tailscale.
|
|
|
|
|
|
|
|
This is typically performed by starting a Headscale server and running a test "scenario"
|
|
|
|
with an array of Tailscale clients and versions.
|
|
|
|
|
|
|
|
Headscale's test framework and the current set of scenarios are defined in this directory.
|
|
|
|
|
|
|
|
Tests are located in files ending with `_test.go` and the framework are located in the rest.
|
|
|
|
|
2023-02-03 11:39:52 +01:00
|
|
|
## Running integration tests locally
|
|
|
|
|
|
|
|
The easiest way to run tests locally is to use `[act](INSERT LINK)`, a local GitHub Actions runner:
|
|
|
|
|
|
|
|
```
|
|
|
|
act pull_request -W .github/workflows/test-integration-v2-TestPingAllByIP.yaml
|
|
|
|
```
|
|
|
|
|
|
|
|
Alternatively, the `docker run` command in each GitHub workflow file can be used.
|
|
|
|
|
2023-01-06 11:51:00 +01:00
|
|
|
## Running integration tests on GitHub Actions
|
|
|
|
|
2023-01-31 18:47:06 +01:00
|
|
|
Each test currently runs as a separate workflows in GitHub actions, to add new test, run
|
2023-01-06 11:51:00 +01:00
|
|
|
`go generate` inside `../cmd/gh-action-integration-generator/` and commit the result.
|