- run all unit tests and integration tests in sequence in the same job
- upload the coverage data as an artifact to the run
- only run via dispatch because it is very long
- arguments are used to select which unit or integration tests to focus on
Refs https://go.dev/blog/integration-test-coverage
### Testing
- Run this workflow via workflow_dispatch (see https://codeberg.org/forgejo-integration/forgejo/actions/runs/11889)
- Download the coverage information (see https://codeberg.org/forgejo-integration/forgejo/actions/runs/11889/artifacts/coverage)
- Download the coverage information from an end-to-end cascade test (see https://code.forgejo.org/forgejo/end-to-end/actions/runs/3961)
- Unzip them in a the `coverage/data` sub-directory at the root of the Forgejo source tree
```sh
$ ls coverage/data
actions coverage-actions.zip coverage-federation.zip coverage-tests.zip coverage-upgrade.zip federation tests upgrade
```
- Display the coverage percentage
```
$ make coverage-show-percentage
...
forgejo.org/services/wiki/wiki_path.go:96: WebPathToGitPath 81.8%
forgejo.org/services/wiki/wiki_path.go:113: GitPathToWebPath 90.0%
forgejo.org/services/wiki/wiki_path.go:129: WebPathToUserTitle 71.4%
forgejo.org/services/wiki/wiki_path.go:140: WebPathToURLPath 100.0%
forgejo.org/services/wiki/wiki_path.go:144: WebPathFromRequest 100.0%
forgejo.org/services/wiki/wiki_path.go:151: UserTitleToWebPath 80.0%
forgejo.org/services/wiki/wiki_path.go:163: ToWikiPageMetaData 100.0%
forgejo.org/tests/integration/api_repo_file_helpers.go:18: createFileInBranch 100.0%
...
total: (statements) 63.9%
```
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9004
Reviewed-by: jerger <jerger@noreply.codeberg.org>
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>