[CI] upload the forgejo under test as an artifact for end-to-end

(cherry picked from commit ded1f27ebbae7e5e09973ce15551827cff4a00d1)
(cherry picked from commit e452b184557bf170688ca042b3a01af7a233d2ed)

[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 commit 011de92174ad29ee9b3b72d5c845b52ef229f66f)
(cherry picked from commit 50290011b255e2a548ed1ef608af947cfc557288)

[CI] upload the forgejo under test as an artifact for end-to-end (squash) after build

(cherry picked from commit ba35f42e3d1d4ca0132d3edd09c4647940cf5e17)
(cherry picked from commit ddf43faecb9a833137dbbb783fddf0b4765b0e87)

[CI] upload the forgejo under test as an artifact for end-to-end (squash) do not display env

(cherry picked from commit d186ec3db49d8a23d4eb6328e6393c107b166a79)
(cherry picked from commit 20e9d4bffb90260dc9699db81ccdd23dd695f8da)

[CI] upload the forgejo under test as an artifact for end-to-end (squash) merge feature branches

(cherry picked from commit 83cd7a3ad992202c02510e807bdea0f1ab865461)
(cherry picked from commit 75fd819ee5161ad9591fe95744e538d805dfb9bb)
(cherry picked from commit c6d021692951b1b2dc1209422df766becaa8fe22)
(cherry picked from commit 4a0ee31376ce60f498a0844e0aa4dd5f5bf321a4)
(cherry picked from commit 5f440052fb67e11e5b6522e87b9b657384da7218)
(cherry picked from commit e603cd3dcf3384e3b753aa64f620e6771eff03f1)
(cherry picked from commit f1c5e86d83d70560b16fdfcfefda46bde36401bb)
This commit is contained in:
Earl Warren 2023-12-16 16:24:55 +01:00
parent ea5f84bf66
commit 55935657cf
No known key found for this signature in database
GPG Key ID: 0579CB2928A78A00
2 changed files with 103 additions and 0 deletions

View 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

View 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