Prepare and check test env during CI (#17725)
This PR should resolve the permission problems during CI, if the uid doesn't match, a more clear message is shown. * CI fails with unknown permission problems #17710 The new drone step dependencies: (root)prepare-test-env -> (gitea)build -> (gitea)test
This commit is contained in:
parent
9361b65f54
commit
e4b95de388
48
.drone.yml
48
.drone.yml
|
@ -1,5 +1,6 @@
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: compliance
|
name: compliance
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -130,6 +131,7 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: testing-amd64
|
name: testing-amd64
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -191,26 +193,30 @@ steps:
|
||||||
exclude:
|
exclude:
|
||||||
- pull_request
|
- pull_request
|
||||||
|
|
||||||
- name: build
|
|
||||||
pull: always
|
|
||||||
image: golang:1.17
|
|
||||||
commands:
|
|
||||||
- make backend
|
|
||||||
environment:
|
|
||||||
GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
|
|
||||||
GOSUMDB: sum.golang.org
|
|
||||||
TAGS: bindata sqlite sqlite_unlock_notify
|
|
||||||
|
|
||||||
- name: tag-pre-condition
|
- name: tag-pre-condition
|
||||||
pull: always
|
pull: always
|
||||||
image: drone/git
|
image: drone/git
|
||||||
commands:
|
commands:
|
||||||
- git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA}
|
- git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA}
|
||||||
|
|
||||||
- name: fix-permissions
|
- name: prepare-test-env
|
||||||
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
||||||
commands:
|
commands:
|
||||||
- chown -R gitea:gitea .
|
- ./build/test-env-prepare.sh
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
pull: always
|
||||||
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
||||||
|
user: gitea
|
||||||
|
commands:
|
||||||
|
- ./build/test-env-check.sh
|
||||||
|
- make backend
|
||||||
|
environment:
|
||||||
|
GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
|
||||||
|
GOSUMDB: sum.golang.org
|
||||||
|
TAGS: bindata sqlite sqlite_unlock_notify
|
||||||
|
depends_on:
|
||||||
|
- prepare-test-env
|
||||||
|
|
||||||
- name: unit-test
|
- name: unit-test
|
||||||
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
||||||
|
@ -353,21 +359,24 @@ steps:
|
||||||
exclude:
|
exclude:
|
||||||
- pull_request
|
- pull_request
|
||||||
|
|
||||||
- name: fix-permissions
|
- name: prepare-test-env
|
||||||
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
||||||
commands:
|
commands:
|
||||||
- chown -R gitea:gitea .
|
- ./build/test-env-prepare.sh
|
||||||
|
|
||||||
- name: build
|
- name: build
|
||||||
pull: always
|
pull: always
|
||||||
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
||||||
user: gitea
|
user: gitea
|
||||||
commands:
|
commands:
|
||||||
|
- ./build/test-env-check.sh
|
||||||
- make backend
|
- make backend
|
||||||
environment:
|
environment:
|
||||||
GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
|
GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
|
||||||
GOSUMDB: sum.golang.org
|
GOSUMDB: sum.golang.org
|
||||||
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
||||||
|
depends_on:
|
||||||
|
- prepare-test-env
|
||||||
|
|
||||||
- name: test-sqlite
|
- name: test-sqlite
|
||||||
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
||||||
|
@ -461,6 +470,7 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: update_gitignore_and_licenses
|
name: update_gitignore_and_licenses
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -497,6 +507,7 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: release-latest
|
name: release-latest
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -675,6 +686,7 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: docs
|
name: docs
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -716,6 +728,7 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: docker-linux-amd64-release-version
|
name: docker-linux-amd64-release-version
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -780,6 +793,7 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: docker-linux-amd64-release
|
name: docker-linux-amd64-release
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -844,6 +858,7 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: docker-linux-arm64-dry-run
|
name: docker-linux-arm64-dry-run
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -876,6 +891,7 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: docker-linux-arm64-release-version
|
name: docker-linux-arm64-release-version
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -943,6 +959,7 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: docker-linux-arm64-release
|
name: docker-linux-arm64-release
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -1009,6 +1026,7 @@ steps:
|
||||||
- pull_request
|
- pull_request
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: docker-manifest-version
|
name: docker-manifest-version
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -1052,6 +1070,7 @@ depends_on:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: docker-manifest
|
name: docker-manifest
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
@ -1095,6 +1114,7 @@ depends_on:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
name: notifications
|
name: notifications
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
|
|
24
build/test-env-check.sh
Executable file
24
build/test-env-check.sh
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ ! -f ./build/test-env-check.sh ]; then
|
||||||
|
echo "${0} can only be executed in gitea source root directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echo "check uid ..."
|
||||||
|
|
||||||
|
# the uid of gitea defined in "https://gitea.com/gitea/test-env" is 1000
|
||||||
|
gitea_uid=$(id -u gitea)
|
||||||
|
if [ "$gitea_uid" != "1000" ]; then
|
||||||
|
echo "The uid of linux user 'gitea' is expected to be 1000, but it is $gitea_uid"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cur_uid=$(id -u)
|
||||||
|
if [ "$cur_uid" != "0" -a "$cur_uid" != "$gitea_uid" ]; then
|
||||||
|
echo "The uid of current linux user is expected to be 0 or $gitea_uid, but it is $cur_uid"
|
||||||
|
exit 1
|
||||||
|
fi
|
11
build/test-env-prepare.sh
Executable file
11
build/test-env-prepare.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ ! -f ./build/test-env-prepare.sh ]; then
|
||||||
|
echo "${0} can only be executed in gitea source root directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "change the owner of files to gitea ..."
|
||||||
|
chown -R gitea:gitea .
|
Loading…
Reference in New Issue
Block a user