2023-01-06 05:51:00 -05: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 05:39:52 -05: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 05:51:00 -05:00
|
|
|
## Running integration tests on GitHub Actions
|
|
|
|
|
2023-01-31 12:47:06 -05:00
|
|
|
Each test currently runs as a separate workflows in GitHub actions, to add new test, run
|
2023-01-06 05:51:00 -05:00
|
|
|
`go generate` inside `../cmd/gh-action-integration-generator/` and commit the result.
|