forgejo/tests/integration/fixtures
Mathieu Fenniak c434b963b4 feat: implement "concurrency" block in Forgejo Actions at the workflow level (#9434)
Currently references a pre-release version of `code.forgejo.org/forgejo/runner/v11`, pending release of https://code.forgejo.org/forgejo/runner/pulls/1026.

Fixes #5914.

This PR is quite large, but it can be reviewed commit-by-commit in relatively small, logical chunks.

Adds support for workflows with a `concurrency` block, and submembers `group` and `cancel-in-progress`.  For example:
```
on:
  workflow_dispatch:
jobs:
  rust-checks:
    runs-on: debian-latest
    steps:
      - run: sleep 300
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: false
```

The concurrency block effectively ends up with four supported behaviors that users will want to choose from:
- Backwards compatibility / default -- if omitted completely, the existing Forgejo behavior will be implemented.  That behavior is that push and pull request synchronize events will cancel all previous runs on the same repository, branch, and workflow.
- Unlimited concurrency -- if the `cancel-in-progress` value is set to `false` and no `group` is provided, then the previously described Forgejo behavior will be disabled and an unlimited number of workflows can be executed simultaneously (to the maximum supported by the Forgejo Runner capacity).
- Queue-behind -- if a `group` is provided and `cancel-in-progress: false` is set, then every new action run with in the same repository with the same group value will be queued behind previous workflow runs, allowing only one workflow to execute at a time in the group, but allowing all workflows to finish naturally.
- Cancel-in-progress -- if a `group` is provided and `cancel-in-progress: true` is set, then every new action run with in the same repository with the same group value will cause previously queued or running runs to be cancelled, allowing only one workflow to execute at a time in the group, but preferring execution of the most recent workflow.

Both the `group` and `cancel-in-progress` values can access values from the `github`, `inputs` and `vars` context for dynamic behavior.

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. 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

- I added test coverage for Go changes...
  - [x] in their respective `*_test.go` for unit tests.
  - [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
  - [ ] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).

### Documentation

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

### Release notes

- [ ] I do not want this change to show in the release notes.
- [x] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Features
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/9434): <!--number 9434 --><!--line 0 --><!--description aW1wbGVtZW50ICJjb25jdXJyZW5jeSIgYmxvY2sgaW4gRm9yZ2VqbyBBY3Rpb25zIGF0IHRoZSB3b3JrZmxvdyBsZXZlbA==-->implement "concurrency" block in Forgejo Actions at the workflow level<!--description-->
<!--end release-notes-assistant-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9434
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Mathieu Fenniak <mathieu@fenniak.net>
Co-committed-by: Mathieu Fenniak <mathieu@fenniak.net>
2025-10-03 18:43:02 +02:00
..
TestActionConcurrencyGroupQueue feat: implement "concurrency" block in Forgejo Actions at the workflow level (#9434) 2025-10-03 18:43:02 +02:00
TestActionConcurrencyRunnerFiltering feat: implement "concurrency" block in Forgejo Actions at the workflow level (#9434) 2025-10-03 18:43:02 +02:00
TestActionVariablesModification fix(sec): web route test edit and delete variable 2025-02-08 07:21:14 +00:00
TestAdminDeleteUser fix: ensure consistent empty repository topics field (#7920) 2025-05-29 22:39:53 +02:00
TestAdminModerationViewReports feat: Admin interface for abuse reports (#7905) 2025-07-23 00:20:15 +02:00
TestAPIRemoveIssueLabelByName feat: github compatability for removing label from issue API (#8831) 2025-08-30 03:29:23 +02:00
TestBlockActions
TestBlockedNotifications
TestCommitRefComment [GITEA] Use correct translations for pull request 2024-02-05 16:54:44 +01:00
TestFeed fix: prevent user-entered text with | characters from being truncated in activity feed (#8844) 2025-08-10 19:48:46 +02:00
TestForcePushCommitStatus fix: ignore existence of commits for force pushes (#9262) 2025-09-12 07:27:15 +02:00
TestGetContentHistory [GITEA] Fix panic in canSoftDeleteContentHistory 2024-02-05 16:09:42 +01:00
TestPullCombinedReviewRequest feat: combine review requests comments 2024-10-25 22:57:32 +02:00
TestPullEditable feat: display the PR editable status in the right-hand side menu (#9392) 2025-09-27 13:08:38 +02:00
TestPullMirrorRedactCredentials chore: add integration test 2025-08-30 08:07:21 +02:00
TestPullRequestReplyMail fix: no notification for replies to pending comments (#7167) 2025-03-09 15:07:12 +00:00
TestRunnerModification fix(sec): add tests for web route delete runner 2025-02-08 07:21:14 +00:00
TestSystemCommentRoles fix(commenter roles): don't give system users roles (#6766) 2025-02-05 17:34:45 +00:00
TestUserPasswordResetOAuth2 Reject password reset attempts for OAuth2 users without a current password (#9060) 2025-09-12 00:08:29 +02:00
TestXSSReviewDismissed [SECURITY] Test XSS in dismissed review 2024-02-22 15:33:20 +01:00