mirror of
https://code.forgejo.org/actions/cascading-pr
synced 2025-03-15 14:54:40 +01:00
runner
This commit is contained in:
parent
7d02d44019
commit
ccf1ec2ffb
4 changed files with 20 additions and 74 deletions
|
@ -73,6 +73,18 @@ function main() {
|
||||||
shift
|
shift
|
||||||
debug
|
debug
|
||||||
;;
|
;;
|
||||||
|
--host_port)
|
||||||
|
shift
|
||||||
|
host_port=$1
|
||||||
|
;;
|
||||||
|
--url)
|
||||||
|
shift
|
||||||
|
url=$1
|
||||||
|
;;
|
||||||
|
--token)
|
||||||
|
shift
|
||||||
|
token=$1
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
"${1:-run}" "$host_port" "$url" "$token"
|
"${1:-run}" "$host_port" "$url" "$token"
|
||||||
return 0
|
return 0
|
||||||
|
|
|
@ -19,78 +19,5 @@ jobs:
|
||||||
|
|
||||||
- name: tests
|
- name: tests
|
||||||
run: |
|
run: |
|
||||||
.forgejo/run-test.sh
|
.forgejo/run-test.sh --debug --host_port ${{ steps.forgejo.outputs.host-port }} --url ${{ steps.forgejo.outputs.url }} --token ${{ steps.forgejo.outputs.token }}
|
||||||
forgejo-test-helper.sh push_self_action http://root:admin1234@${{ steps.forgejo.outputs.host-port }} root forgejo-release vTest
|
|
||||||
|
|
||||||
- name: admin user create --username testuser
|
|
||||||
run: |
|
|
||||||
forgejo='docker exec --user 1000 forgejo forgejo'
|
|
||||||
user=testuser
|
|
||||||
if ! $forgejo admin user list | grep -q "$user" ; then
|
|
||||||
$forgejo admin user create --username "$user" --password "admin1324" --email "$user@example.com"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: build & publish
|
|
||||||
run: |
|
|
||||||
set -x
|
|
||||||
|
|
||||||
version=1.2.3
|
|
||||||
cat > /etc/docker/daemon.json <<EOF
|
|
||||||
{
|
|
||||||
"insecure-registries" : ["${{ steps.forgejo.outputs.host-port }}"]
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
systemctl restart docker
|
|
||||||
|
|
||||||
apt-get install -qq -y xz-utils
|
|
||||||
|
|
||||||
dir=$(mktemp -d)
|
|
||||||
trap "rm -fr $dir" EXIT
|
|
||||||
|
|
||||||
url=http://root:admin1234@${{ steps.forgejo.outputs.host-port }}
|
|
||||||
export FORGEJO_RUNNER_LOGS="${{ steps.forgejo.outputs.runner-logs }}"
|
|
||||||
|
|
||||||
cp -a testdata/.forgejo testdata/* $dir
|
|
||||||
|
|
||||||
#
|
|
||||||
# root/forgejo: owner & repository in which the release will be built
|
|
||||||
#
|
|
||||||
forgejo-test-helper.sh push $dir $url root forgejo forgejo-release ${{ steps.forgejo.outputs.token }} |& tee $dir/pushed
|
|
||||||
eval $(grep '^sha=' < $dir/pushed)
|
|
||||||
#
|
|
||||||
# testuser/forgejo: owner & repository in which the release will be published
|
|
||||||
#
|
|
||||||
(
|
|
||||||
git clone $url/root/forgejo tmp-forgejo
|
|
||||||
cd tmp-forgejo
|
|
||||||
git push $url/testuser/forgejo main
|
|
||||||
)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Push a tag to trigger the build workflow and wait for it to complete
|
|
||||||
#
|
|
||||||
forgejo-test-helper.sh api POST $url repos/root/forgejo/tags ${{ steps.forgejo.outputs.token }} --data-raw '{"tag_name": "v'$version'", "target": "'$sha'"}'
|
|
||||||
LOOPS=180 forgejo-test-helper.sh wait_success "$url" root/forgejo $sha
|
|
||||||
|
|
||||||
#
|
|
||||||
# uncomment to see the logs even when everything is reported to be working ok
|
|
||||||
#
|
|
||||||
#cat $FORGEJO_RUNNER_LOGS
|
|
||||||
|
|
||||||
for user in root testuser ; do
|
|
||||||
for arch in amd64 arm64 ; do
|
|
||||||
binary=software-$version-linux-$arch
|
|
||||||
for suffix in '' '.xz' ; do
|
|
||||||
curl --fail -L -sS $url/$user/forgejo/releases/download/v$version/$binary$suffix > $binary$suffix
|
|
||||||
if test "$suffix" = .xz ; then
|
|
||||||
unxz --keep $binary$suffix
|
|
||||||
fi
|
|
||||||
chmod +x $binary
|
|
||||||
./$binary --version | grep $version
|
|
||||||
curl --fail -L -sS $url/$user/forgejo/releases/download/v$version/$binary$suffix.sha256 > $binary$suffix.sha256
|
|
||||||
shasum -a 256 --check $binary$suffix.sha256
|
|
||||||
rm $binary$suffix
|
|
||||||
done
|
|
||||||
done
|
|
||||||
docker pull ${{ steps.forgejo.outputs.host-port }}/$user/forgejo:$version
|
|
||||||
done
|
|
||||||
|
|
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1,3 +1,8 @@
|
||||||
|
.runner
|
||||||
|
forgejo-runner-pid
|
||||||
|
forgejo-runner-token
|
||||||
|
forgejo-runner.clientpid
|
||||||
|
forgejo-runner.log
|
||||||
forgejo-token
|
forgejo-token
|
||||||
forgejo-api
|
forgejo-api
|
||||||
forgejo-header
|
forgejo-header
|
||||||
|
|
|
@ -10,8 +10,10 @@ export PATH=$(pwd)/setup-forgejo:$PATH
|
||||||
git clone https://code.forgejo.org/actions/cascading-pr
|
git clone https://code.forgejo.org/actions/cascading-pr
|
||||||
cd cascading-pr
|
cd cascading-pr
|
||||||
forgejo-curl.sh logout
|
forgejo-curl.sh logout
|
||||||
|
forgejo-runner.sh teardown
|
||||||
forgejo.sh teardown
|
forgejo.sh teardown
|
||||||
forgejo.sh setup root admin1234 codeberg.org/forgejo/forgejo 1.21
|
forgejo.sh setup root admin1234 codeberg.org/forgejo/forgejo 1.21
|
||||||
|
forgejo-runner.sh setup
|
||||||
firefox http://$(cat forgejo-ip):3000
|
firefox http://$(cat forgejo-ip):3000
|
||||||
.forgejo/run-test.sh --debug
|
.forgejo/run-test.sh --debug
|
||||||
```
|
```
|
||||||
|
|
Loading…
Add table
Reference in a new issue