2023-01-06 10:51:00 +00: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 10:39:52 +00:00
|
|
|
## Running integration tests locally
|
|
|
|
|
2024-11-22 12:23:05 +00:00
|
|
|
The easiest way to run tests locally is to use [act](https://github.com/nektos/act), a local GitHub Actions runner:
|
2023-02-03 10:39:52 +00:00
|
|
|
|
|
|
|
```
|
2024-11-22 12:23:05 +00:00
|
|
|
act pull_request -W .github/workflows/test-integration.yaml
|
2023-02-03 10:39:52 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Alternatively, the `docker run` command in each GitHub workflow file can be used.
|
|
|
|
|
2023-01-06 10:51:00 +00:00
|
|
|
## Running integration tests on GitHub Actions
|
|
|
|
|
2023-01-31 17:47:06 +00:00
|
|
|
Each test currently runs as a separate workflows in GitHub actions, to add new test, run
|
2023-01-06 10:51:00 +00:00
|
|
|
`go generate` inside `../cmd/gh-action-integration-generator/` and commit the result.
|