068558accd
When the CI vars.ROLE is forgejo-coding, it is assumed to be the repository where collaborative coding happens, i.e. https://codeberg.org/forgejo/forgejo When the CI vars.ROLE is forgejo-testing, it is assumed that only codebase testing is to be run and no other tests such as release build integration, label constraints, backporting etc.
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
|