gitforge/tests/integration
Mathieu Fenniak 3ea1f3f784 fix: jobs with ${{ needs.x.[...] }} inherit the skip state of job x (#13174)
In cases where a job references `${{ needs.x.[...]}}` in a critical section relevant for dispatching a job -- `strategy.matrix`, `runs-on`, or `with` -- referencing a skipped job as `x` would cause an error that the job is missing the required output.  With this change, the referencing job is now automatically skipped.

Fixes #13165.

I've performed manual testing on my dev instance and verified that the end-to-end multiarch test, identified as the problem in #13165, now successfully gets skipped as would be expected (and, not in the screenshot, that the matrix expands correctly when the `if` condition is true and real jobs are run).

![image](/attachments/96042c48-189f-48c5-a6b2-a48c6660fa1c)

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. All work and communication must conform to Forgejo's [AI Agreement](https://codeberg.org/forgejo/governance/src/branch/main/AIAgreement.md). There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Tests for Go changes

- I added test coverage for Go changes...
  - [ ] in their respective `*_test.go` for unit tests.
  - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I ran...
  - [x] `make pr-go` before pushing

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [ ] This change will be noticed by a Forgejo user or admin (feature, bug fix, performance, etc.). I suggest to include a release note for this change.
- [x] This change is not visible to a Forgejo user or admin (refactor, dependency upgrade, etc.). I think there is no need to add a release note for this change.
    - Fixes regression from #13030 which is unreleased.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/13174
Reviewed-by: Andreas Ahlenstorf <aahlenst@noreply.codeberg.org>
2026-06-23 21:19:11 +02:00
..
fixtures feat: setting to add team members by invitations (#12845) 2026-06-15 01:46:25 +02:00
migration-test fix(coverage): Integration tests don't run with coverage (#12978) 2026-06-13 23:25:38 +02:00
schemas
actions_commit_status_test.go
actions_concurrency_group_queue_test.go
actions_create_task_for_runner_test.go chore: re-enable nilnil lint for models/actions/task.go (#12768) 2026-06-05 01:38:23 +02:00
actions_fetch_task_test.go chore(services/actions/task.go): re-enable nilnil lint (#13089) 2026-06-20 03:48:17 +02:00
actions_job_test.go fix: jobs with ${{ needs.x.[...] }} inherit the skip state of job x (#13174) 2026-06-23 21:19:11 +02:00
actions_log_test.go feat: ensure repo-specific access tokens can't perform repo admin operations (#11736) 2026-03-20 16:14:36 +01:00
actions_notifications_test.go feat: ensure repo-specific access tokens can't perform repo admin operations (#11736) 2026-03-20 16:14:36 +01:00
actions_route_test.go
actions_run_now_done_notification_test.go
actions_run_test.go feat: enable manual prioritization of workflow runs (#13045) 2026-06-18 00:58:33 +02:00
actions_runner_test.go chore(services/actions/task.go): re-enable nilnil lint (#13089) 2026-06-20 03:48:17 +02:00
actions_runs_list_test.go feat: show workflow name for scheduled runs (#11770) 2026-03-24 01:27:32 +01:00
actions_secrets_test.go feat: allow renaming and replacing secrets (#11732) 2026-03-23 03:30:02 +01:00
actions_token_metadata_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
actions_trigger_test.go fix: use proper ${{ forgejo.ref }} in scheduled workflows (#13081) 2026-06-15 04:15:07 +02:00
actions_trust_test.go feat: evaluate action job's if on the server-side when possible (#13030) 2026-06-16 00:02:57 +02:00
actions_variables_test.go fix: normalize secrets consistently, display accurate help (#11052) 2026-02-09 17:02:18 +01:00
actions_view_test.go fix: adjust workflow link for pull_request_target workflow runs (#12734) 2026-06-01 15:03:29 +02:00
activitypub_client_test.go
admin_auth_source_test.go fix: improve OAuth2 experience (#11715) 2026-03-17 18:44:23 +01:00
admin_config_test.go
admin_dashboard_test.go
admin_federation_test.go feat: add admin views for federation configuration, hosts and users (#11115) 2026-04-09 19:38:33 +02:00
admin_moderation_test.go fix: 'More actions' (⋯) dropdown from moderation reports overview page (#10339) 2025-12-10 17:09:59 +01:00
admin_repo_test.go test: fix intermittent PostgreSQL failure in TestAdminViewRepos (#10587) 2025-12-26 20:02:27 +01:00
admin_user_test.go feat: apply service.VALID_SITE_URL_SCHEMES to apply to repository and organization profiles (#12962) 2026-06-08 15:17:51 +02:00
api_actions_artifact_test.go
api_actions_artifact_v4_test.go feat: expose immutable identifiers in Forgejo Actions JWTs (#12355) 2026-05-03 15:46:58 +02:00
api_actions_id_token_test.go ci: fix merge conflict in test between #12355 & #12364 (#12401) 2026-05-03 19:55:40 +02:00
api_actions_job_logs_test.go feat(api): expose action job + run logs via REST (#12666) 2026-05-30 01:45:32 +02:00
api_actions_oidc_test.go feat: expose immutable identifiers in Forgejo Actions JWTs (#12355) 2026-05-03 15:46:58 +02:00
api_actions_run_logs_test.go feat(api): expose action job + run logs via REST (#12666) 2026-05-30 01:45:32 +02:00
api_activitypub_actor_test.go fix(activitypub): cover all routes with signature checks (#12339) 2026-05-08 00:40:01 +02:00
api_activitypub_person_inbox_follow_test.go feat: Follow remote users; feed tab (#10380) 2026-04-12 03:31:03 +02:00
api_activitypub_person_inbox_useractivity_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
api_activitypub_person_test.go fix(activitypub): cover all routes with signature checks (#12339) 2026-05-08 00:40:01 +02:00
api_activitypub_repository_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
api_admin_actions_test.go feat: expose run_id in ...actions/runners/jobs endpoint (#12480) 2026-05-09 02:31:03 +02:00
api_admin_org_test.go ui: move "New access token" to a separate UI page (#11659) 2026-03-18 22:33:14 +01:00
api_admin_test.go feat: apply service.VALID_SITE_URL_SCHEMES to apply to repository and organization profiles (#12962) 2026-06-08 15:17:51 +02:00
api_admin_user_token_test.go feat: expose access token creation date in API responses (#12620) 2026-05-20 18:45:38 +02:00
api_block_test.go
api_branch_test.go
api_comment_attachment_test.go fix: comment attachment API is more restrictive than the web UI (#11623) 2026-03-19 01:39:29 +01:00
api_comment_test.go fix: GET /repos/{owner}/{repo}/issues/comments/{id} does not fail if the poster is a deleted user (#13140) 2026-06-23 20:10:33 +02:00
api_federation_httpsig_test.go fix(activitypub): cover all routes with signature checks (#12339) 2026-05-08 00:40:01 +02:00
api_feed_plain_text_titles_test.go
api_forgejo_root_test.go
api_forgejo_version_test.go
api_fork_test.go fix: make the fork API respect CanCreateOrgRepo policy (#12442) 2026-05-15 05:16:07 +02:00
api_gitignore_templates_test.go
api_gpg_keys_test.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00
api_health_test.go
api_helper_for_declarative_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
api_httpsig_test.go
api_issue_attachment_test.go
api_issue_config_test.go feat: replace repo based server-side hooks with centralised hooks (#10397) 2026-04-27 22:34:46 +02:00
api_issue_label_test.go
api_issue_milestone_test.go
api_issue_pin_test.go
api_issue_reaction_test.go
api_issue_stopwatch_test.go
api_issue_subscription_test.go
api_issue_templates_test.go
api_issue_test.go chore: TestAPIInternalAndExternalIssueTracker uses the wrong repository (#12706) 2026-05-23 15:18:38 +02:00
api_issue_tracked_time_test.go feat: remove admin-level permissions from repo-specific & public-only access tokens (#11468) 2026-03-04 16:17:41 +01:00
api_keys_test.go fix: expose API fields for ssh keys (#12517) (#12625) 2026-05-18 17:44:37 +02:00
api_label_templates_test.go
api_license_templates_test.go
api_misc_test.go
api_nodeinfo_test.go chore: update gof3/v3 v3.11.15 (#10673) 2026-01-13 16:59:56 +01:00
api_notification_test.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00
api_oauth2_apps_test.go
api_org_actions_test.go feat: expose run_id in ...actions/runners/jobs endpoint (#12480) 2026-05-09 02:31:03 +02:00
api_org_avatar_test.go fix(coverage): Integration tests don't run with coverage (#12978) 2026-06-13 23:25:38 +02:00
api_org_secrets_test.go feat: allow renaming and replacing secrets (#11732) 2026-03-23 03:30:02 +01:00
api_org_test.go feat: apply service.VALID_SITE_URL_SCHEMES to apply to repository and organization profiles (#12962) 2026-06-08 15:17:51 +02:00
api_org_variables_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
api_packages_alpine_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_packages_alt_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
api_packages_arch_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_packages_cargo_test.go
api_packages_chef_test.go refactor: clarify four different outputs that authentication methods provide (#12231) 2026-04-23 02:30:41 +02:00
api_packages_composer_test.go
api_packages_conan_test.go feat: allow Authorized Integrations to authenticate to Forgejo's package registries (#12310) 2026-04-29 19:13:01 +02:00
api_packages_conda_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_packages_container_cleanup_sha256_test.go Revert "fix: add challenge for HTTP Basic Authentication to container registry" (#12058) 2026-04-09 12:21:44 +02:00
api_packages_container_cleanup_test.go
api_packages_container_test.go feat: allow Authorized Integrations to authenticate to Forgejo's package registries (#12310) 2026-04-29 19:13:01 +02:00
api_packages_cran_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_packages_debian_test.go fix: duplicate key violates unique constraint in concurrent debian package uploads (#11776) 2026-03-26 21:50:25 +01:00
api_packages_generic_test.go fix: add support the http HEAD request method for generic packages (#12865) 2026-06-18 23:33:50 +02:00
api_packages_goproxy_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_packages_helm_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_packages_maven_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
api_packages_npm_test.go fix(api): package name in route not properly unescaped (#11822) 2026-03-26 15:30:16 +01:00
api_packages_nuget_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_packages_pub_test.go
api_packages_pypi_test.go feat: support simple JSON API for PyPI package registry (#12095) 2026-04-30 16:58:28 +02:00
api_packages_rpm_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_packages_rubygems_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_packages_swift_test.go
api_packages_test.go fix: debian package cleanup failure due to xorm connection corruption (#12764) 2026-05-27 17:47:11 +02:00
api_packages_vagrant_test.go fix: return bad request on malformed packages upload input (#10954) 2026-02-13 18:04:19 +01:00
api_private_serv_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
api_pull_commits_test.go
api_pull_review_test.go feat(api,ui): add multiline comment on pullrequest (#12582) 2026-06-03 16:06:29 +02:00
api_pull_test.go fix: return API URL in the url field for pull requests using the API (#12643) 2026-05-25 04:01:17 +02:00
api_push_mirror_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
api_quota_management_test.go
api_quota_use_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
api_releases_test.go 2026-06-10 security patches (#13001) 2026-06-10 06:05:01 +02:00
api_repo_action_artifact_test.go feat(api): add REST API endpoints for Actions artifacts (#12140) 2026-04-20 05:10:54 +02:00
api_repo_actions_test.go feat(api): add new /repos/{owner}/{repo}/actions/runs/{run_id}/cancel API endpoint (#12957) 2026-06-09 04:00:56 +02:00
api_repo_activities_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
api_repo_archive_test.go
api_repo_avatar_test.go fix(coverage): Integration tests don't run with coverage (#12978) 2026-06-13 23:25:38 +02:00
api_repo_branch_test.go feat: implement repo-specific access tokens broadly for universal API permission checks (#11437) 2026-02-28 19:47:06 +01:00
api_repo_collaborator_test.go
api_repo_compare_test.go feat: implement fine-grained access tokens in /repos/{owner}/{repo}/pulls & /repos/{owner}/{repo}/compare/{basehead} APIs 2026-03-01 17:05:53 +01:00
api_repo_convert_test.go feat: ensure repo-specific access tokens can't perform repo admin operations (#11736) 2026-03-20 16:14:36 +01:00
api_repo_edit_test.go feat: ensure repo-specific access tokens can't perform repo admin operations (#11736) 2026-03-20 16:14:36 +01:00
api_repo_file_create_test.go
api_repo_file_delete_test.go
api_repo_file_get_test.go
api_repo_file_helpers.go
api_repo_file_update_test.go
api_repo_files_change_test.go feat: adds option to force overwrite new branch for /contents route (#12663) 2026-06-06 16:45:57 +02:00
api_repo_get_contents_list_test.go
api_repo_get_contents_test.go
api_repo_git_blobs_test.go ui: move "New access token" to a separate UI page (#11659) 2026-03-18 22:33:14 +01:00
api_repo_git_commits_test.go
api_repo_git_hook_test.go fix(git): treat missing hooks folder the same as missing hook file (#12833) 2026-05-31 14:41:28 +02:00
api_repo_git_notes_test.go
api_repo_git_ref_test.go
api_repo_git_tags_test.go
api_repo_git_trees_test.go ui: move "New access token" to a separate UI page (#11659) 2026-03-18 22:33:14 +01:00
api_repo_hook_test.go
api_repo_languages_test.go
api_repo_lfs_locks_test.go feat: enable auth to git LFS via authorized integrations (#12725) 2026-05-28 23:20:58 +02:00
api_repo_lfs_migrate_test.go
api_repo_lfs_test.go feat: enable auth to git LFS via authorized integrations (#12725) 2026-05-28 23:20:58 +02:00
api_repo_pulls_test.go
api_repo_raw_test.go
api_repo_secrets_test.go feat: allow renaming and replacing secrets (#11732) 2026-03-23 03:30:02 +01:00
api_repo_tags_test.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00
api_repo_teams_test.go
api_repo_test.go fix: cleanup data before migration retry (#12370) 2026-05-05 12:41:42 +02:00
api_repo_topic_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
api_repo_variables_test.go fix: normalize secrets consistently, display accurate help (#11052) 2026-02-09 17:02:18 +01:00
api_settings_test.go
api_team_test.go feat: setting to add team members by invitations (#12845) 2026-06-15 01:46:25 +02:00
api_team_user_test.go
api_token_test.go feat: expose access token creation date in API responses (#12620) 2026-05-20 18:45:38 +02:00
api_twofa_test.go refactor: split "basic" and "oauth2" authentication impl into smaller single-purpose components (#12236) 2026-04-24 18:19:58 +02:00
api_user_actions_test.go feat: expose run_id in ...actions/runners/jobs endpoint (#12480) 2026-05-09 02:31:03 +02:00
api_user_avatar_test.go fix(coverage): Integration tests don't run with coverage (#12978) 2026-06-13 23:25:38 +02:00
api_user_email_test.go
api_user_follow_federation_test.go feat: Follow remote users; feed tab (#10380) 2026-04-12 03:31:03 +02:00
api_user_follow_test.go
api_user_heatmap_test.go
api_user_info_test.go
api_user_org_perm_test.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00
api_user_orgs_test.go feat(api): return created time in /org/{org} endpoint (#12633) 2026-05-28 21:25:41 +02:00
api_user_search_test.go
api_user_secrets_test.go feat: allow renaming and replacing secrets (#11732) 2026-03-23 03:30:02 +01:00
api_user_star_test.go fix: load repo language for converting to api struct (#12737) 2026-05-28 17:00:40 +02:00
api_user_variables_test.go fix: normalize secrets consistently, display accurate help (#11052) 2026-02-09 17:02:18 +01:00
api_user_watch_test.go feat: implement fine-grained access tokens in /user/subscriptions & /users/{username}/subscriptions 2026-03-01 17:05:53 +01:00
api_wiki_test.go feat: fsck incoming objects (#12695) 2026-05-25 14:51:04 +02:00
apiv1_permissions_test.go chore(refactor): run routers/api/v1/permissions/tests from tests/integration (#13157) 2026-06-21 21:43:57 +02:00
appearance_settings_test.go fix(ui): fall back to default theme from non-existent (#13110) 2026-06-17 19:18:09 +02:00
archived_labels_display_test.go
attachment_test.go feat: enable auth to raw resources, release downloads, & attachments via authorized integrations (#12776) 2026-05-29 02:11:43 +02:00
auth_authorized_integration_test.go feat: add repo-specific & public-only authz reducers to authorized integrations (#12267) 2026-04-26 23:54:41 +02:00
auth_ldap_test.go
auth_token_test.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00
avatar.png
benchmarks_test.go
block_test.go
branches_test.go
change_default_branch_test.go fix: use proper ${{ forgejo.ref }} in scheduled workflows (#13081) 2026-06-15 04:15:07 +02:00
cmd_admin_test.go
cmd_forgejo_actions_test.go refactor(tests): drop the need to compile gitea binary manually (#12855) 2026-06-02 00:04:50 +02:00
cmd_forgejo_f3_test.go chore: update gof3/v3 v3.11.15 (#10673) 2026-01-13 16:59:56 +01:00
cmd_keys_test.go
codeowner_test.go
comment_roles_system_test.go
comment_roles_test.go fix: when reviewing in PRs, make comments relative to the visible code's commit (#12055) 2026-04-12 01:20:54 +02:00
commit_status_test.go feat: mark skipped checks as skipped (#12606) 2026-05-17 18:00:49 +02:00
common_navigation_test.go
compare_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
cors_test.go
create_no_session_test.go chore: update ingration test 2026-03-20 07:00:48 +01:00
csrf_test.go
db_collation_test.go
db_query_test.go refactor: reduce code duplication when accessing DefaultMaxInSize (#11999) 2026-04-05 22:03:45 +02:00
delete_user_test.go
disable_forgotten_password_test.go
doctor_avatars_test.go feat: serve downsized versions of avatars (#11242) 2026-05-16 12:04:05 +02:00
doctor_packages_nuget_test.go
doctor_storage_test.go feat: serve downsized versions of avatars (#11242) 2026-05-16 12:04:05 +02:00
download_test.go feat: enable auth to raw resources, release downloads, & attachments via authorized integrations (#12776) 2026-05-29 02:11:43 +02:00
dummy_lang_test.go
dump_restore_test.go
easymde_test.go
editor_test.go
email_block_allowlist_test.go
empty_repo_test.go feat: replace repo based server-side hooks with centralised hooks (#10397) 2026-04-27 22:34:46 +02:00
ephemeral_actions_runner_deletion_test.go fix: cleanup data before migration retry (#12370) 2026-05-05 12:41:42 +02:00
error_pages_test.go chore(ui): change /devtest to /-/demo (#11019) 2026-01-26 13:12:25 +01:00
eventsource_test.go
explore_code_test.go feat: add support to opt-in for fuzzy search (#10378) 2025-12-17 13:51:48 +01:00
explore_org_test.go
explore_repos_test.go
explore_user_test.go
federation_home_template_test.go feat: Follow remote users; feed tab (#10380) 2026-04-12 03:31:03 +02:00
feed_repo_test.go
feed_user_test.go fix: use an absolute URL for compare links in atom feed (#10933) 2026-02-01 10:00:21 +01:00
footer_test.go chore(ui): add integration tests for footer tmpl logic (#11197) 2026-02-08 23:55:30 +01:00
forgejo_confirmation_repo_test.go
forgejo_git_test.go
form_validation_test.go feat: in-browser validation of website URLs for user, repository, and organization profiles (#12991) 2026-06-08 17:35:15 +02:00
git_helper_for_declarative_test.go refactor(tests): drop the need to compile gitea binary manually (#12855) 2026-06-02 00:04:50 +02:00
git_hooks_test.go cleanup(tests): remove unused git hooks directories in testdata (#12824) 2026-05-31 20:24:25 +02:00
git_push_test.go refactor(tests): drop the need to compile gitea binary manually (#12855) 2026-06-02 00:04:50 +02:00
git_smart_http_test.go feat: enable auth to git HTTP via authorized integrations (#12715) 2026-05-25 19:33:36 +02:00
git_test.go feat(ui): commit view redesign for pull request page (#7948) 2026-06-02 20:12:32 +02:00
goget_test.go
html_helper.go feat: view authorized integration (generic) 2026-05-14 23:54:16 +02:00
incoming_email_test.go fix: make email token extraction case-insensitive (#12460) 2026-05-30 13:29:28 +02:00
integration_test.go chore: restore ability to run with 'go test' (#12996) 2026-06-10 15:58:21 +02:00
issue_comment_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
issue_list_filters_test.go fix(ui): fix typo in issue sort dropdown; relevance was misnamed as relevency (#12771) 2026-05-28 20:48:25 +02:00
issue_subscribe_test.go
issue_test.go fix(issue-search): drop all labels ids if no label (0) is present (#12665) 2026-05-21 22:21:05 +02:00
issue_tracked_time_test.go
last_updated_time_test.go
lfs_getobject_test.go
lfs_local_endpoint_test.go
lfs_view_test.go feat: enable auth to git LFS via authorized integrations (#12725) 2026-05-28 23:20:58 +02:00
linguist_test.go fix(ui): show "Shell" instead of "Bash" in headers of shell script files (#12562) 2026-05-14 22:33:51 +02:00
links_test.go chore: skip sha256 repo for older git versions (#11542) 2026-03-07 15:58:31 +01:00
markup_external_test.go feat: match on compound filename extensions (#11439) 2026-03-19 01:25:51 +01:00
markup_test.go
mention_test.go
migrate_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
milestone_test.go
mirror_pull_test.go chore: fix unclear boolean predicate retval in AssertElementPredicate 2026-05-14 23:54:16 +02:00
mirror_push_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
navbar_test.go chore(ui): change /devtest to /-/demo (#11019) 2026-01-26 13:12:25 +01:00
new_org_test.go
nonascii_branches_test.go
notification_test.go
oauth_test.go feat: add option to use preferred_username claim when registering users via oauth2 (#12504) 2026-05-18 00:14:46 +02:00
opengraph_test.go
org_count_test.go
org_members_test.go feat: setting to add team members by invitations (#12845) 2026-06-15 01:46:25 +02:00
org_nav_test.go
org_profile_test.go
org_project_test.go
org_settings_test.go feat: apply service.VALID_SITE_URL_SCHEMES to apply to repository and organization profiles (#12962) 2026-06-08 15:17:51 +02:00
org_team_invite_test.go feat: setting to add team members by invitations (#12845) 2026-06-15 01:46:25 +02:00
org_team_test.go feat: setting to add team members by invitations (#12845) 2026-06-15 01:46:25 +02:00
org_test.go fix(ui): bring back non-empty check to ThemeName (#13175) 2026-06-23 11:53:17 +02:00
patch_status_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
pathutils_test.go
private-testing.key
private_project_test.go
privateactivity_test.go
project_test.go fix(web): org projects assignment in issue view (#7999) 2026-05-02 01:29:40 +02:00
protected_branch_test.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00
pull_auto_merge_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
pull_commit_test.go feat(ui): commit view redesign for pull request page (#7948) 2026-06-02 20:12:32 +02:00
pull_compare_test.go
pull_create_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
pull_diff_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
pull_editable_test.go
pull_files_test.go
pull_icon_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
pull_merge_instruction_test.go feat: Retrieve default merge commit message for pull requests (#10022) 2026-01-01 11:45:43 +01:00
pull_merge_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
pull_reopen_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
pull_request_task_test.go
pull_review_test.go fix: multiline comment invalidation (#12950) 2026-06-09 03:07:56 +02:00
pull_status_test.go feat(ui): commit view redesign for pull request page (#7948) 2026-06-02 20:12:32 +02:00
pull_summary_test.go
pull_test.go chore(i18n): May 2026 maintenence (#12718) 2026-05-25 10:59:49 +02:00
pull_update_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
pull_wip_convert_test.go
quota_use_test.go feat: enable auth to raw resources, release downloads, & attachments via authorized integrations (#12776) 2026-05-29 02:11:43 +02:00
README.md
release_feed_test.go
release_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
remote_test.go
rename_branch_test.go
repo_activity_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
repo_archive_test.go feat: enable auth to raw resources, release downloads, & attachments via authorized integrations (#12776) 2026-05-29 02:11:43 +02:00
repo_archive_text_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
repo_avatar_test.go fix: skip repo avatar upload when no file is selected (#11335) 2026-03-07 20:53:23 +01:00
repo_badges_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
repo_branch_test.go fix(ui): show switch default branch button in branch list only for repo admins (#10814) 2026-01-14 08:15:39 +01:00
repo_citation_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
repo_collaborator_test.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00
repo_commit_test.go ench: use GET for lastcommit route (#12670) 2026-05-22 10:40:28 +02:00
repo_commits_search_test.go feat: show breadcrumb path in path filtered commit history view (#12116) 2026-05-01 01:53:10 +02:00
repo_commits_tags_test.go chore: fix typos throughout the codebase (#10753) 2026-01-26 22:57:33 +01:00
repo_commits_template_test.go
repo_commits_test.go fix: return 404 instead of 500 for non-existing SHA in commit status endpoint (#12476) 2026-05-21 21:52:34 +02:00
repo_delete_test.go
repo_flags_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
repo_forgefed_test.go feat: add admin views for federation configuration, hosts and users (#11115) 2026-04-09 19:38:33 +02:00
repo_fork_test.go
repo_generate_test.go tests: better factory with forgery package (#11356) 2026-05-12 20:57:02 +02:00
repo_git_note_test.go
repo_issue_title_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
repo_mergecommit_revert_test.go feat: replace repo based server-side hooks with centralised hooks (#10397) 2026-04-27 22:34:46 +02:00
repo_migrate_credentials_test.go
repo_migrate_test.go
repo_migration_ui_test.go
repo_pagination_test.go
repo_search_test.go fix(ui): add missing translation for code search when keyword is empty string (#10964) 2026-01-21 16:42:18 +01:00
repo_settings_hook_test.go
repo_settings_test.go feat: apply service.VALID_SITE_URL_SCHEMES to apply to repository and organization profiles (#12962) 2026-06-08 15:17:51 +02:00
repo_signed_tag_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
repo_star_federation_test.go chore: update github.com/go-ap/activitypub to 902f6cf (#11301) 2026-04-02 23:57:13 +02:00
repo_starwatch_test.go
repo_sync_fork_test.go
repo_tag_test.go ui: move "New access token" to a separate UI page (#11659) 2026-03-18 22:33:14 +01:00
repo_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
repo_topic_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
repo_view_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
repo_watch_test.go
repo_webhook_test.go chore: add modernizer linter (#11936) 2026-04-02 03:29:37 +02:00
repo_wiki_test.go
repofiles_change_test.go
runner_test.go feat: add form-based runner management (#11516) 2026-03-12 02:14:45 +01:00
session_test.go
setting_test.go
signin_test.go fix: URL-encode login provider name in the href attribute (#10301) 2026-03-31 21:51:57 +02:00
signing_git_test.go fix(coverage): Integration tests don't run with coverage (#12978) 2026-06-13 23:25:38 +02:00
signout_test.go
signup_test.go fix: enable "Add more..." unit hint for new users (#12565) 2026-05-27 20:44:44 +02:00
ssh-signing-key
ssh-signing-key.pub
ssh_key_test.go refactor(tests): drop the need to compile gitea binary manually (#12855) 2026-06-02 00:04:50 +02:00
swagger_test.go
timetracking_test.go
translations_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
user_avatar_test.go feat: serve downsized versions of avatars (#11242) 2026-05-16 12:04:05 +02:00
user_count_test.go
user_dashboard_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
user_federationhost_xorm_test.go
user_keys_test.go fix(ui): use URL query escaping for SSH key verification reload token link (#12581) 2026-05-16 11:51:17 +02:00
user_profile_actions_test.go
user_profile_attributes_test.go
user_profile_follows_test.go
user_profile_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
user_recovery_test.go
user_redirect_test.go
user_settings_test.go feat: apply service.VALID_SITE_URL_SCHEMES to apply to repository and organization profiles (#12962) 2026-06-08 15:17:51 +02:00
user_test.go feat: apply service.VALID_SITE_URL_SCHEMES to apply to repository and organization profiles (#12962) 2026-06-08 15:17:51 +02:00
version_test.go
view_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
web_misc_test.go Move web app manifest to a own cache-able route and add a setting to set "display": "standalone"; Closes #2638 (#5384) 2026-01-09 17:49:29 +01:00
webfinger_test.go
webhook_test.go
wiki_test.go refactor(tests): use forgery.CreateRepository in more places (#12555) 2026-06-01 11:59:05 +02:00
window_config_test.go
xss_test.go feat: fsck incoming objects (#12695) 2026-05-25 14:51:04 +02:00

Integration tests

Thank you for your effort to provide good software tests for Forgejo. Please also read the general testing instructions in the Forgejo contributor documentation.

This file is meant to provide specific information for the integration tests as well as some tips and tricks you should know.

Feel free to extend this file with more instructions if you feel like you have something to share!

How to run the tests?

Before running any tests, please ensure you perform a clean build:

make clean build

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

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

Run tests via local forgejo runner

If you have a forgejo runner, you can use it to run the test jobs:

Run all jobs

forgejo-runner exec -W .forgejo/workflows/testing.yml --event=pull_request

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

Run single job

forgejo-runner exec -W .forgejo/workflows/testing.yml --event=pull_request -j <job_name>

You can list all job names via:

forgejo-runner exec -W .forgejo/workflows/testing.yml --event=pull_request -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 #(Ctrl-c to stop the database)

Start tests based on the database container

TEST_MYSQL_HOST=localhost:3306 TEST_MYSQL_DBNAME=test?multiStatements=true 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" -e POSTGRES_PASSWORD=postgres -e POSTGRESQL_FSYNC=off -e POSTGRESQL_EXTRA_FLAGS="-c full_page_writes=off" -p 5432:5432 --rm --name pgsql data.forgejo.org/oci/bitnami/postgresql:16 #(Ctrl-c to stop)

Setup a S3 server inside docker

docker run -e MINIO_ROOT_USER=123456 -e MINIO_ROOT_PASSWORD=12345678 -p 9000:9000 --rm --name minio data.forgejo.org/oci/bitnami/minio:2024.8.17 #(Ctrl-c to stop)

Start tests based on the database container

TEST_PGSQL_HOST=localhost:5432 TEST_PGSQL_DBNAME=test TEST_PGSQL_USERNAME=postgres TEST_PGSQL_PASSWORD=postgres TEST_S3_HOST=localhost:9000 make 'test-pgsql#Test'

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

Tips and tricks

If you know noteworthy tests that can act as an inspiration for new tests, please add some details here.