# 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 doe # on: push: branches: - 'wip-ci-end-to-end' pull_request_target: types: - labeled jobs: info: if: ${{ !startsWith(vars.ROLE, 'forgejo-') }} runs-on: docker container: image: 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.pull_request.merged = ${{ github.event.pull_request.merged }} echo github.event.pull_request.labels.*.name cat <<'EOF' ${{ toJSON(github.event.pull_request.labels.*.name) }} EOF cat <<'EOF' ${{ toJSON(github.event) }} EOF build: if: > !startsWith(vars.ROLE, 'forgejo-') && ( github.event_name == 'push' || ( github.event.action == 'label_updated' && contains(github.event.pull_request.labels.*.name, 'run-end-to-end-tests') ) ) runs-on: docker container: image: 'docker.io/node:20-bookworm' steps: - uses: https://code.forgejo.org/actions/checkout@v3 with: fetch-depth: '0' show-progress: 'false' - name: adduser forgejo run: | git config --add safe.directory '*' git config user.email "you@example.com" git config user.name "Your Name" adduser --quiet --comment forgejo --disabled-password forgejo chown -R forgejo:forgejo . - uses: https://code.forgejo.org/actions/setup-go@v4 with: go-version: "1.21" - name: make deps-backend run: | su forgejo -c 'make deps-backend' - name: make forgejo run: | su forgejo -c 'make generate-backend static-executable && ln gitea forgejo' env: TAGS: bindata sqlite sqlite_unlock_notify - uses: actions/upload-artifact@v3 with: name: forgejo path: forgejo cascade: if: > !startsWith(vars.ROLE, 'forgejo-') && ( github.event_name == 'push' || ( github.event.action == 'label_updated' && contains(github.event.pull_request.labels.*.name, 'run-end-to-end-tests') ) ) needs: [build] runs-on: docker container: image: 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: forgejo-pr destination-token: ${{ secrets.END_TO_END_CASCADING_PR_DESTINATION }} close-merge: true update: .forgejo/cascading-pr-end-to-end