end-to-end/README.md

45 lines
1.7 KiB
Markdown

# Forgejo end-to-end tests
A series of tests scenarios and assertions covering
[Forgejo](https://codeberg.org/forgejo/forgejo) and the [Forgejo
runner](https://code.forgejo.org/forgejo/runner). They partially rely
on [Forgejo actions](https://code.forgejo.org/actions) developped
specifically for testing such as
[setup-forgejo](https://code.forgejo.org/actions/setup-forgejo).
They are designed to run using Forgejo releases and development
versions compiled from designated repositories.
## Hacking
### Local testing
To run and debug workflows from `actions/example-*`, from
the root of the source directory, with docker and forgejo-curl.sh
installed, mimic what `.forgejo/workflows/actions.yml` does. There
may be some manual tweaking (such as creating temporary directories)
because the tests run as root, but they do not need to run as root.
* `forgejo-curl.sh logout`
* `forgejo.sh setup root admin1234 codeberg.org/forgejo/forgejo 1.21`
* `firefox http://$(cat forgejo-ip):3000`
* `forgejo-runner.sh setup`
* `export example=pull-request`
* `export EXAMPLE_DIR=$(pwd)/actions/example-$example`
* `$EXAMPLE_DIR/setup.sh` # if it exists
* `$EXAMPLE_DIR/run.sh` or
* `forgejo-test-helper.sh run_workflow actions/example-$example http://root:admin1234@$(cat forgejo-ip):3000 root example-$example setup-forgejo $(cat forgejo-token)`
* `forgejo-runner.sh teardown`
* `forgejo.sh teardown`
### Remote testing
To reduce the runtime the following variables can be set to control
the number of cases run by the
[actions](.forgejo/workflows/actions.yml) tests. If set to
**none** they are not run at all for that version of Forgejo. If
it does not exist, all tests are run.
* `V1_21_TESTS`
* `V1_20_TESTS`