[CI] upload the forgejo under test as an artifact for end-to-end
(cherry picked from commitded1f27ebb) (cherry picked from commite452b18455) [CI] upload the forgejo under test as an artifact for end-to-end (squash) use forgejo-pr cascade a PR to https://code.forgejo.org/forgejo/end-to-end on the forgejo-pr branch which will only run end-to-end tests relevant to a Forgejo PR and not the entire end-to-end suite. (cherry picked from commit011de92174) (cherry picked from commit50290011b2) [CI] upload the forgejo under test as an artifact for end-to-end (squash) after build (cherry picked from commitba35f42e3d) (cherry picked from commitddf43faecb) [CI] upload the forgejo under test as an artifact for end-to-end (squash) do not display env (cherry picked from commitd186ec3db4) (cherry picked from commit20e9d4bffb) [CI] upload the forgejo under test as an artifact for end-to-end (squash) merge feature branches (cherry picked from commit83cd7a3ad9) (cherry picked from commit75fd819ee5) (cherry picked from commitc6d0216929) (cherry picked from commit4a0ee31376) (cherry picked from commit5f440052fb) (cherry picked from commite603cd3dcf) (cherry picked from commitf1c5e86d83)
This commit is contained in:
		
							parent
							
								
									ea5f84bf66
								
							
						
					
					
						commit
						55935657cf
					
				
					 2 changed files with 103 additions and 0 deletions
				
			
		
							
								
								
									
										21
									
								
								.forgejo/cascading-pr-end-to-end
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										21
									
								
								.forgejo/cascading-pr-end-to-end
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -ex
 | 
			
		||||
 | 
			
		||||
end_to_end=$1
 | 
			
		||||
end_to_end_pr=$2
 | 
			
		||||
forgejo=$3
 | 
			
		||||
forgejo_pr=$4
 | 
			
		||||
 | 
			
		||||
head_url=$(jq --raw-output .head.repo.html_url < $forgejo_pr)
 | 
			
		||||
test "$head_url" != null
 | 
			
		||||
branch=$(jq --raw-output .head.ref < $forgejo_pr)
 | 
			
		||||
test "$branch" != null
 | 
			
		||||
cd $end_to_end
 | 
			
		||||
echo $head_url $branch 7.0.0+0-gitea-1.22.0 > forgejo/sources/1.22
 | 
			
		||||
date > last-upgrade
 | 
			
		||||
 | 
			
		||||
base_url=$(jq --raw-output .base.repo.html_url < $forgejo_pr)
 | 
			
		||||
test "$base_url" != null
 | 
			
		||||
test "$GITHUB_RUN_NUMBER"
 | 
			
		||||
echo $base_url/actions/runs/$GITHUB_RUN_NUMBER/artifacts/forgejo > forgejo/binary-url
 | 
			
		||||
							
								
								
									
										82
									
								
								.forgejo/workflows/cascade-setup-end-to-end.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								.forgejo/workflows/cascade-setup-end-to-end.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
# SPDX-License-Identifier: MIT
 | 
			
		||||
on:
 | 
			
		||||
  pull_request_target:
 | 
			
		||||
    types:
 | 
			
		||||
      - labeled
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  FEATURE_BRANCHES: "privacy i18n moderation branding dependency"
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  info:
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
  build:
 | 
			
		||||
    if: 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 .
 | 
			
		||||
      - name: merge feature branches
 | 
			
		||||
        run: |
 | 
			
		||||
          su forgejo -c 'set -ex ; for b in ${{ env.FEATURE_BRANCHES }} ; do git merge -m $b origin/forgejo-$b ; done'
 | 
			
		||||
      - 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: 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
 | 
			
		||||
      - uses: actions/cascading-pr@v1
 | 
			
		||||
        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 }}
 | 
			
		||||
          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
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue