mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	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:
		
							
								
								
									
										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 . | ||||||
		Reference in New Issue
	
	Block a user