forgejo/tests/integration
Jason Song a627b885c7
Support compression for Actions logs (#31761)
Support compression for Actions logs to save storage space and
bandwidth. Inspired by
https://github.com/go-gitea/gitea/issues/24256#issuecomment-1521153015

The biggest challenge is that the compression format should support
[seekable](https://github.com/facebook/zstd/blob/dev/contrib/seekable_format/zstd_seekable_compression_format.md).
So when users are viewing a part of the log lines, Gitea doesn't need to
download the whole compressed file and decompress it.

That means gzip cannot help here. And I did research, there aren't too
many choices, like bgzip and xz, but I think zstd is the most popular
one. It has an implementation in Golang with
[zstd](https://github.com/klauspost/compress/tree/master/zstd) and
[zstd-seekable-format-go](https://github.com/SaveTheRbtz/zstd-seekable-format-go),
and what is better is that it has good compatibility: a seekable format
zstd file can be read by a regular zstd reader.

This PR introduces a new package `zstd` to combine and wrap the two
packages, to provide a unified and easy-to-use API.

And a new setting `LOG_COMPRESSION` is added to the config, although I
don't see any reason why not to use compression, I think's it's a good
idea to keep the default with `none` to be consistent with old versions.

`LOG_COMPRESSION` takes effect for only new log files, it adds `.zst` as
an extension to the file name, so Gitea can determine if it needs
decompression according to the file name when reading. Old files will
keep the format since it's not worth converting them, as they will be
cleared after #31735.

<img width="541" alt="image"
src="https://github.com/user-attachments/assets/e9598764-a4e0-4b68-8c2b-f769265183c9">

(cherry picked from commit 33cc5837a655ad544b936d4d040ca36d74092588)

Conflicts:
	assets/go-licenses.json
	go.mod
	go.sum
  resolved with make tidy
2024-08-13 06:51:49 +02:00
..
fixtures [SECURITY] Test XSS in dismissed review 2024-02-22 15:33:20 +01:00
migration-test Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
schemas
actions_commit_status_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
actions_route_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
actions_trigger_test.go chore(refactor): split repo_service.ForkRepository in two 2024-08-11 12:40:34 +02:00
admin_config_test.go
admin_user_test.go [MODERATION] User blocking 2024-02-05 15:56:45 +01:00
api_actions_artifact_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_actions_artifact_v4_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_activitypub_actor_test.go activitypub: Implement an instance-wide actor 2024-08-05 10:50:26 +02:00
api_activitypub_person_test.go feat: access ActivityPub client through interfaces to facilitate mocking in unit tests (#4853) 2024-08-07 05:45:24 +00:00
api_activitypub_repository_test.go feat: access ActivityPub client through interfaces to facilitate mocking in unit tests (#4853) 2024-08-07 05:45:24 +00:00
api_admin_org_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_admin_test.go Add result check in TestAPIEditUser (#29674) 2024-05-09 19:26:21 +02:00
api_block_test.go [MODERATION] User blocking (squash) do not use token= query param 2024-02-05 15:56:58 +01:00
api_branch_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_comment_attachment_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_comment_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_feed_plain_text_titles_test.go Use GetDisplayName() instead of DisplayName() to generate rss feeds (followup) 2024-07-28 09:00:29 +02:00
api_feed_user_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_forgejo_root_test.go [API] Forgejo API /api/forgejo/v1 2024-02-05 14:44:32 +01:00
api_forgejo_version_test.go Fix #2512 /api/forgejo/v1/version auth check (#2582) 2024-03-19 07:16:19 +00:00
api_fork_test.go Allow admins to fork repos even when creation limits are exhausted (#3277) 2024-04-17 05:52:02 +00:00
api_gitignore_templates_test.go
api_gpg_keys_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_health_test.go Remove useless t.run 2024-04-06 00:43:22 +02:00
api_helper_for_declarative_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_httpsig_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_attachment_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_issue_config_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_issue_label_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_issue_milestone_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_pin_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_issue_reaction_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_stopwatch_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_subscription_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_issue_templates_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_issue_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_issue_tracked_time_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_keys_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_label_templates_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_license_templates_test.go
api_nodeinfo_test.go [FEAT] Adds x-mode-only anchor styles to display images based if the theme is light or dark mode. (#3985) 2024-06-09 10:50:53 +00:00
api_notification_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_oauth2_apps_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_org_avatar_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_org_test.go Allow non-admin users to delete review requests (#29057) 2024-02-26 22:30:27 +01:00
api_packages_alpine_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_arch_test.go feat: support grouping by any path for arch package (#4903) 2024-08-11 10:35:11 +00:00
api_packages_cargo_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_chef_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_composer_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_conan_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_conda_test.go Support compression for Actions logs (#31761) 2024-08-13 06:51:49 +02:00
api_packages_container_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_cran_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_debian_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_generic_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_goproxy_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_helm_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_maven_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_npm_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_nuget_test.go Adjust codespell config + make it fix few typos which sneaked in since addition of codespell support (#4857) 2024-08-08 16:07:35 +00:00
api_packages_pub_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_pypi_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_rpm_test.go Add signature support for the RPM module (#4780) 2024-08-02 05:56:57 +00:00
api_packages_rubygems_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_swift_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_packages_vagrant_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_private_serv_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_pull_commits_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_pull_review_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_pull_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_push_mirror_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_quota_management_test.go feat(quota): Humble beginnings of a quota engine 2024-08-02 11:10:34 +02:00
api_quota_use_test.go feat(quota): Quota enforcement 2024-08-02 11:10:34 +02:00
api_releases_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_activities_test.go Teach activities.GetFeeds() how to avoid returning duplicates 2024-05-09 18:33:33 +02:00
api_repo_archive_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_avatar_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_branch_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_collaborator_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_compare_test.go feat(api): implement branch/commit comparison API (#30349) 2024-04-21 11:58:18 +02:00
api_repo_edit_test.go Add merge style fast-forward-only (#28954) 2024-02-14 17:19:19 +01:00
api_repo_file_create_test.go test-sha256: APICreateFile 2024-05-16 11:01:47 +02:00
api_repo_file_delete_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_file_get_test.go test-sha256: PushDeployKeyOnEmptyRepo 2024-05-16 10:54:40 +02:00
api_repo_file_helpers.go Fix Bug in Issue Config when only contact links are set (#26521) 2023-09-28 20:16:40 +08:00
api_repo_file_update_test.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
api_repo_files_change_test.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
api_repo_get_contents_list_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_get_contents_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_git_blobs_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_commits_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_git_hook_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_notes_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_ref_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_git_tags_test.go Resolve lint for unused parameter and unnecessary type arguments (#30750) 2024-05-05 08:38:16 +01:00
api_repo_git_trees_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_hook_test.go [REFACTOR] webhook.Handler interface 2024-03-24 10:35:06 +01:00
api_repo_languages_test.go [GITEA] Allow user to select email for file operations in Web UI 2024-02-05 16:09:41 +01:00
api_repo_lfs_locks_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_lfs_migrate_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_lfs_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_raw_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_secrets_test.go feat(api): enhance Actions Secrets Management API for repository (#30656) 2024-04-28 15:39:01 +02:00
api_repo_tags_test.go Add lint-go-gopls (#30729) 2024-06-09 11:13:39 +02:00
api_repo_teams_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_repo_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_topic_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_repo_variables_test.go Add API for Variables (#29520) 2024-04-07 10:57:53 +02:00
api_settings_test.go
api_team_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_team_user_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_token_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_twofa_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_user_avatar_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_user_email_test.go Unify user update methods (#28733) 2024-02-04 13:29:09 +00:00
api_user_follow_test.go [MODERATION] User blocking 2024-02-05 15:56:45 +01:00
api_user_heatmap_test.go Refactor timeutil package (#28623) 2023-12-28 10:09:57 +00:00
api_user_info_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_org_perm_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_orgs_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_user_search_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
api_user_secrets_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
api_user_star_test.go Disabling Stars should disable the routes too 2024-02-26 20:50:32 +01:00
api_user_variables_test.go Clarify Actions resources ownership (#31724) 2024-08-04 18:24:10 +02:00
api_user_watch_test.go Add tests for #28765 (#28773) 2024-01-12 17:15:42 +00:00
api_wiki_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
archived_labels_display_test.go Add integration test for (non-)archived label properties 2024-04-01 21:38:34 +05:00
attachment_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
auth_ldap_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
auth_token_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
avatar.png
benchmarks_test.go Replace deprecated math/rand functions (#30733) 2024-04-28 15:39:02 +02:00
block_test.go [BUG] Return blocking errors as JSON errors 2024-08-09 20:34:38 +02:00
branches_test.go Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
change_default_branch_test.go
cmd_admin_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
cmd_forgejo_actions_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
cmd_forgejo_f3_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
cmd_keys_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
codeowner_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
compare_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
cors_test.go Refactor CORS handler (#28587) 2023-12-25 20:13:18 +08:00
create_no_session_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
csrf_test.go
db_collation_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
delete_user_test.go [MODERATION] Purge issues on user deletion 2024-02-05 15:39:02 +01:00
doctor_packages_nuget_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
download_test.go
dump_restore_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
easymde_test.go Add integration test for EasyMDE button 2024-04-15 22:59:26 +05:00
editor_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
empty_repo_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
eventsource_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
explore_code_test.go feat: highlighted code search results (#4749) 2024-08-06 05:57:25 +00:00
explore_repos_test.go [BUG] Remember topic only in repo search 2024-03-06 13:22:39 +01:00
explore_user_test.go Remove unnecessary ".Link" usages (#29909) 2024-03-26 19:04:26 +01:00
forgejo_confirmation_repo_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
forgejo_git_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
git_clone_wiki_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
git_helper_for_declarative_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
git_push_test.go Adjust codespell config + make it fix few typos which sneaked in since addition of codespell support (#4857) 2024-08-08 16:07:35 +00:00
git_smart_http_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
git_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
goget_test.go
gpg_git_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
html_helper.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
incoming_email_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
integration_test.go tests: Add an IsTemplate option to DeclarativeRepoOptions 2024-08-02 11:10:34 +02:00
issue_subscribe_test.go Disable issue subscribe button for guest users (#4095) 2024-06-11 05:54:35 +00:00
issue_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
issues_comment_labels_test.go fix(ui): fix conversation template 2024-07-25 23:51:17 +05:00
last_updated_time_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
lfs_getobject_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
lfs_local_endpoint_test.go
lfs_view_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
linguist_test.go [UI] Do not include trailing EOL character when counting lines 2024-08-06 04:36:57 +02:00
links_test.go [REFACTOR] webhook move edit endpoints 2024-03-27 22:26:55 +01:00
markup_external_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
markup_test.go Update the TestRenderAlertBlocks integration test 2024-03-23 15:38:43 +01:00
migrate_test.go feat(i18n): allow different translations of creation links and titles (#4829) 2024-08-07 16:54:05 +00:00
milestone_test.go fix(ui): use right placeholder string in milestones search (#4628) 2024-07-25 03:33:44 +00:00
mirror_pull_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
mirror_push_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
new_org_test.go feat(i18n): allow different translations of creation links and titles (#4829) 2024-08-07 16:54:05 +00:00
nonascii_branches_test.go
oauth_test.go cherry-pick OIDC changes from gitea (#4724) 2024-08-08 06:32:14 +00:00
opengraph_test.go Fix opengraph meta for wiki pages (#4427) 2024-07-10 18:29:35 +00:00
org_count_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
org_nav_test.go feat(i18n): allow different translations of creation links and titles (#4829) 2024-08-07 16:54:05 +00:00
org_project_test.go Fix data-race during testing (#30999) 2024-05-26 18:28:26 +02:00
org_team_invite_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
org_test.go add label filters in org/{org_name}/issues 2024-04-04 17:57:11 +05:30
private-testing.key
privateactivity_test.go Convert to url auth to header auth in tests (#28484) 2023-12-21 23:59:59 +00:00
proctected_branch_test.go [FEAT] Configure if protected branch rule should apply to admins 2024-03-29 00:21:49 +01:00
project_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
pull_compare_test.go
pull_create_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
pull_diff_test.go Add commits dropdown in PR files view and allow commit by commit review (#25528) 2023-07-28 21:18:12 +02:00
pull_merge_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
pull_reopen_test.go chore(refactor): split repo_service.ForkRepository in two 2024-08-11 12:40:34 +02:00
pull_request_task_test.go Do not update PRs based on events that happened before they existed 2024-04-11 11:16:23 +02:00
pull_review_test.go chore(refactor): split repo_service.ForkRepository in two 2024-08-11 12:40:34 +02:00
pull_status_test.go Enable more revive linter rules (#30608) 2024-04-28 15:39:00 +02:00
pull_summary_test.go Add test for pull summary 2024-03-22 07:11:52 +01:00
pull_test.go [PORT] Add warning message in merge instructions when AutodetectManualMerge was not enabled (gitea#31805) 2024-08-11 19:15:37 +02:00
pull_update_test.go chore(refactor): split repo_service.ForkRepository in two 2024-08-11 12:40:34 +02:00
pull_wip_convert_test.go Add test for add/remove WIP link display 2024-03-21 19:33:02 +05:00
quota_use_test.go feat(quota): Quota enforcement 2024-08-02 11:10:34 +02:00
README.md Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
README_ZH.md [CHORE] Remove Microsoft SQL Server Support 2024-04-05 23:37:36 +02:00
release_test.go Fix localization of release/tag counters on releases page 2024-05-29 22:46:36 +05:00
remote_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
rename_branch_test.go Add codespell support and fix a good number of typos with its help (#3270) 2024-05-09 13:49:37 +00:00
repo_activity_test.go feat(UI): fix links, add labels for releases on repo activity page 2024-08-02 07:56:03 +02:00
repo_archive_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_archive_text_test.go Makefile: check git diff exit-code (#2651) 2024-03-14 10:38:58 +00:00
repo_badges_test.go Adjust codespell config + make it fix few typos which sneaked in since addition of codespell support (#4857) 2024-08-08 16:07:35 +00:00
repo_branch_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_collaborator_test.go ui: fix wrong string used in a search box (#4258) 2024-06-28 16:28:03 +00:00
repo_commits_search_test.go Integration Test for Commit Search containing Square Brackets (#28751) 2024-01-11 11:04:45 +08:00
repo_commits_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_delete_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_flags_test.go [FEAT] API support for repository flags 2024-02-05 16:09:42 +01:00
repo_fork_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_generate_test.go feat(i18n): allow different translations of creation links and titles (#4829) 2024-08-07 16:54:05 +00:00
repo_mergecommit_revert_test.go Run go generate and go vet on all packages (#30529) 2024-04-21 16:28:16 +02:00
repo_migrate_test.go [GITEA] add GitHub repo migration test 2024-02-05 16:05:50 +01:00
repo_migration_ui_test.go ui: refactor repo migration items 2024-07-27 16:35:48 +05:00
repo_pagination_test.go Makefile: check git diff exit-code (#2651) 2024-03-14 10:38:58 +00:00
repo_search_test.go feat: highlighted code search results (#4749) 2024-08-06 05:57:25 +00:00
repo_settings_hook_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_settings_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_signed_tag_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_starwatch_test.go ui: refactor user-cards as a grid 2024-08-02 19:27:31 +05:00
repo_tag_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_test.go [BUG] Ensure all filters are persistent in issue filters 2024-08-06 17:12:10 +02:00
repo_topic_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_view_test.go [UI] Do not include trailing EOL character when counting lines 2024-08-06 04:36:57 +02:00
repo_watch_test.go Replace 'userxx' with 'orgxx' in all test files when the user type is org (#27052) 2023-09-14 02:59:53 +00:00
repo_webhook_test.go webhook: matrix access_token helper text 2024-04-16 08:59:56 +02:00
repo_wiki_test.go feat: wiki search using git-grep 2024-05-20 13:48:50 +00:00
repofiles_change_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
session_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
setting_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
signin_test.go Refactor locale&string&template related code (#29165) 2024-02-16 15:20:52 +01:00
signout_test.go
signup_test.go Refactor locale&string&template related code (#29165) 2024-02-16 15:20:52 +01:00
size_translations_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
ssh_key_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
timetracking_test.go Replace 'userxx' with 'orgxx' in all test files when the user type is org (#27052) 2023-09-14 02:59:53 +00:00
user_avatar_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
user_count_test.go feat(UI): add package counter to repo/user/org overview pages 2024-07-31 12:40:24 +02:00
user_dashboard_test.go feat(i18n): allow different translations of creation links and titles (#4829) 2024-08-07 16:54:05 +00:00
user_profile_activity_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
user_profile_follows_test.go Add headers to follower lists 2024-06-19 11:53:59 +05:00
user_profile_test.go [TESTS] Lift out CreateDeclarativeRepo() 2024-02-05 16:54:44 +01:00
user_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
version_test.go Fix #2512 /api/forgejo/v1/version auth check (#2582) 2024-03-19 07:16:19 +00:00
view_test.go Update instance title in tests 2024-06-08 23:33:55 +05:00
webfinger_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
webhook_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
xss_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00

Integration tests

Integration tests can be run with make commands for the appropriate backends, namely:

make test-sqlite
make test-pgsql
make test-mysql

Make sure to perform a clean build before running tests:

make clean build

Run tests via local act_runner

Run all jobs

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest

Warning: This file defines many jobs, so it will be resource-intensive and therefore not recommended.

Run single job

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest -j <job_name>

You can list all job names via:

act_runner exec -W ./.github/workflows/pull-db-tests.yml --event=pull_request --default-actions-url="https://github.com" -i catthehacker/ubuntu:runner-latest -l

Run sqlite integration tests

Start tests

make test-sqlite

Run MySQL integration tests

Setup a MySQL database inside docker

docker run -e "MYSQL_DATABASE=test" -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" -p 3306:3306 --rm --name mysql mysql:latest #(just ctrl-c to stop db and clean the container)
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --rm --name elasticsearch elasticsearch:7.6.0 #(in a second terminal, just ctrl-c to stop db and clean the container)

Start tests based on the database container

TEST_MYSQL_HOST=localhost:3306 TEST_MYSQL_DBNAME=test TEST_MYSQL_USERNAME=root TEST_MYSQL_PASSWORD='' make test-mysql

Run pgsql integration tests

Setup a pgsql database inside docker

docker run -e "POSTGRES_DB=test" -p 5432:5432 --rm --name pgsql postgres:latest #(just ctrl-c to stop db and clean the container)

Start tests based on the database container

TEST_PGSQL_HOST=localhost:5432 TEST_PGSQL_DBNAME=test TEST_PGSQL_USERNAME=postgres TEST_PGSQL_PASSWORD=postgres make test-pgsql

Running individual tests

Example command to run GPG test:

For SQLite:

make test-sqlite#GPG

For other databases (replace mysql to pgsql):

TEST_MYSQL_HOST=localhost:1433 TEST_MYSQL_DBNAME=test TEST_MYSQL_USERNAME=sa TEST_MYSQL_PASSWORD=MwantsaSecurePassword1 make test-mysql#GPG

Setting timeouts for declaring long-tests and long-flushes

We appreciate that some testing machines may not be very powerful and the default timeouts for declaring a slow test or a slow clean-up flush may not be appropriate.

You can either:

  • Within the test ini file set the following section:
[integration-tests]
SLOW_TEST = 10s ; 10s is the default value
SLOW_FLUSH = 5S ; 5s is the default value
  • Set the following environment variables:
GITEA_SLOW_TEST_TIME="10s" GITEA_SLOW_FLUSH_TIME="5s" make test-sqlite