mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 14:13:52 +03:00
87fd4eeaa5
This is a clean revert of the commits that led to grouping all jobs related to issue labeling into one workflow. The assumption that it would be more efficient was incorrect because it assumed the conditions for running each job would be evaluated statically Forgejo side. In reality the conditions are evaluated by the runner and multiplies the number of runs required instead of decreasing them. In turn, this clutters the status line of each pull request with numerous skipped runs. Finally it is more complex to maintain multiple jobs into a single workflow because the conditions for it to run have to be duplicated. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6178 Reviewed-by: Michael Kriese <michael.kriese@gmx.de> Co-authored-by: Earl Warren <contact@earl-warren.org> Co-committed-by: Earl Warren <contact@earl-warren.org>
75 lines
2.3 KiB
YAML
75 lines
2.3 KiB
YAML
# Copyright 2024 The Forgejo Authors
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
# To modify this workflow:
|
|
#
|
|
# - push it to the wip-ci-end-to-end branch on the forgejo repository
|
|
# otherwise it will not have access to the secrets required to push
|
|
# the cascading PR
|
|
#
|
|
# - once it works, open a pull request for the sake of keeping track
|
|
# of the change even if the PR won't run it because it will use
|
|
# whatever is in the default branch instead
|
|
#
|
|
# - after it is merged, double check it works by setting the
|
|
# run-end-to-end-test on a pull request (any pull request will do)
|
|
#
|
|
name: end-to-end
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'wip-ci-end-to-end'
|
|
pull_request_target:
|
|
types:
|
|
- labeled
|
|
|
|
jobs:
|
|
info:
|
|
if: vars.ROLE == 'forgejo-coding'
|
|
runs-on: docker
|
|
container:
|
|
image: code.forgejo.org/oci/node:20-bookworm
|
|
steps:
|
|
- name: event
|
|
run: |
|
|
echo github.event.pull_request.head.repo.fork = ${{ github.event.pull_request.head.repo.fork }}
|
|
echo github.event.action = ${{ github.event.action }}
|
|
echo github.event.label
|
|
cat <<'EOF'
|
|
${{ toJSON(github.event.label) }}
|
|
EOF
|
|
cat <<'EOF'
|
|
${{ toJSON(github.event) }}
|
|
EOF
|
|
|
|
cascade:
|
|
if: >
|
|
vars.ROLE == 'forgejo-coding' && (
|
|
github.event_name == 'push' ||
|
|
(
|
|
github.event.action == 'label_updated' && github.event.label.name == 'run-end-to-end-tests'
|
|
)
|
|
)
|
|
runs-on: docker
|
|
container:
|
|
image: code.forgejo.org/oci/node:20-bookworm
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: '0'
|
|
show-progress: 'false'
|
|
- uses: actions/cascading-pr@v2
|
|
with:
|
|
origin-url: ${{ env.GITHUB_SERVER_URL }}
|
|
origin-repo: ${{ github.repository }}
|
|
origin-token: ${{ secrets.END_TO_END_CASCADING_PR_ORIGIN }}
|
|
origin-pr: ${{ github.event.pull_request.number }}
|
|
origin-ref: ${{ github.event_name == 'push' && github.event.ref || '' }}
|
|
destination-url: https://code.forgejo.org
|
|
destination-fork-repo: cascading-pr/end-to-end
|
|
destination-repo: forgejo/end-to-end
|
|
destination-branch: main
|
|
destination-token: ${{ secrets.END_TO_END_CASCADING_PR_DESTINATION }}
|
|
close-merge: true
|
|
update: .forgejo/cascading-pr-end-to-end
|