Use Actions for DB & E2E tests (#24494)
following https://github.com/go-gitea/gitea/pull/24314 and https://github.com/go-gitea/gitea/pull/24434, this PR moves drone cron pipelines to (GitHub) Actions. As these are mostly compatible with Gitea Actions, when we start to dogfood, these will already be migrated. --------- Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
		
							parent
							
								
									ad8631c069
								
							
						
					
					
						commit
						f7f0782132
					
				
							
								
								
									
										846
									
								
								.drone.yml
								
								
								
								
							
							
						
						
									
										846
									
								
								.drone.yml
								
								
								
								
							|  | @ -1,749 +1,3 @@ | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: compliance |  | ||||||
| 
 |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
| 
 |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     - pull_request |  | ||||||
|   paths: |  | ||||||
|     exclude: |  | ||||||
|       - "docs/**" |  | ||||||
|       - "*.md" |  | ||||||
| 
 |  | ||||||
| volumes: |  | ||||||
|   - name: deps |  | ||||||
|     temp: {} |  | ||||||
| 
 |  | ||||||
| steps: |  | ||||||
|   - name: deps-frontend |  | ||||||
|     image: node:18 |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make deps-frontend |  | ||||||
| 
 |  | ||||||
|   - name: deps-backend |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make deps-backend |  | ||||||
|       - make deps-tools |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: lint-frontend |  | ||||||
|     image: node:18 |  | ||||||
|     commands: |  | ||||||
|       - make lint-frontend |  | ||||||
|     depends_on: [deps-frontend] |  | ||||||
| 
 |  | ||||||
|   - name: lint-backend |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make lint-backend |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       TAGS: bindata sqlite sqlite_unlock_notify |  | ||||||
|     depends_on: [deps-backend] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: lint-backend-windows |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     commands: |  | ||||||
|       - make lint-go-windows lint-go-vet |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       TAGS: bindata sqlite sqlite_unlock_notify |  | ||||||
|       GOOS: windows |  | ||||||
|       GOARCH: amd64 |  | ||||||
|     depends_on: [deps-backend] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: lint-backend-gogit |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     commands: |  | ||||||
|       - make lint-backend |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       TAGS: bindata gogit sqlite sqlite_unlock_notify |  | ||||||
|     depends_on: [deps-backend] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: checks-frontend |  | ||||||
|     image: node:18 |  | ||||||
|     commands: |  | ||||||
|       - make checks-frontend |  | ||||||
|     depends_on: [deps-frontend] |  | ||||||
| 
 |  | ||||||
|   - name: checks-backend |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     commands: |  | ||||||
|       - make --always-make checks-backend # ensure the 'go-licenses' make target runs |  | ||||||
|     depends_on: [deps-backend] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: test-frontend |  | ||||||
|     image: node:18 |  | ||||||
|     commands: |  | ||||||
|       - make test-frontend |  | ||||||
|     depends_on: [lint-frontend] |  | ||||||
| 
 |  | ||||||
|   - name: build-frontend |  | ||||||
|     image: node:18 |  | ||||||
|     commands: |  | ||||||
|       - make frontend |  | ||||||
|     depends_on: [deps-frontend] |  | ||||||
| 
 |  | ||||||
|   - name: build-backend-no-gcc |  | ||||||
|     image: gitea/test_env:linux-1.19-amd64 # this step is kept as the lowest version of golang that we support |  | ||||||
|     pull: always |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|     commands: |  | ||||||
|       - go build -o gitea_no_gcc # test if build succeeds without the sqlite tag |  | ||||||
|     depends_on: [deps-backend, checks-backend] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: build-backend-arm64 |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       GOOS: linux |  | ||||||
|       GOARCH: arm64 |  | ||||||
|       TAGS: bindata gogit |  | ||||||
|     commands: |  | ||||||
|       - make backend # test cross compile |  | ||||||
|       - rm ./gitea # clean |  | ||||||
|     depends_on: [deps-backend, checks-backend] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: build-backend-windows |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       GOOS: windows |  | ||||||
|       GOARCH: amd64 |  | ||||||
|       TAGS: bindata gogit |  | ||||||
|     commands: |  | ||||||
|       - go build -o gitea_windows |  | ||||||
|     depends_on: [deps-backend, checks-backend] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: build-backend-386 |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       GOOS: linux |  | ||||||
|       GOARCH: 386 |  | ||||||
|     commands: |  | ||||||
|       - go build -o gitea_linux_386 # test if compatible with 32 bit |  | ||||||
|     depends_on: [deps-backend, checks-backend] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: testing-pgsql |  | ||||||
| 
 |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
| 
 |  | ||||||
| depends_on: |  | ||||||
|   - compliance |  | ||||||
| 
 |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     - pull_request |  | ||||||
|   paths: |  | ||||||
|     exclude: |  | ||||||
|       - "docs/**" |  | ||||||
| 
 |  | ||||||
| volumes: |  | ||||||
|   - name: deps |  | ||||||
|     temp: {} |  | ||||||
| 
 |  | ||||||
| services: |  | ||||||
|   - name: pgsql |  | ||||||
|     pull: default |  | ||||||
|     image: postgres:15 |  | ||||||
|     environment: |  | ||||||
|       POSTGRES_DB: test |  | ||||||
|       POSTGRES_PASSWORD: postgres |  | ||||||
| 
 |  | ||||||
|   - name: ldap |  | ||||||
|     image: gitea/test-openldap:latest |  | ||||||
|     pull: always |  | ||||||
| 
 |  | ||||||
|   - name: minio |  | ||||||
|     image: minio/minio:RELEASE.2021-03-12T00-00-47Z |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - minio server /data |  | ||||||
|     environment: |  | ||||||
|       MINIO_ACCESS_KEY: 123456 |  | ||||||
|       MINIO_SECRET_KEY: 12345678 |  | ||||||
| 
 |  | ||||||
| steps: |  | ||||||
|   - name: fetch-tags |  | ||||||
|     image: docker:git |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - git fetch --tags --force |  | ||||||
|     when: |  | ||||||
|       event: |  | ||||||
|         exclude: |  | ||||||
|           - pull_request |  | ||||||
| 
 |  | ||||||
|   - name: deps-backend |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make deps-backend |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: prepare-test-env |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-prepare.sh |  | ||||||
| 
 |  | ||||||
|   - name: build |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-check.sh |  | ||||||
|       - make backend |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       TAGS: bindata |  | ||||||
|     depends_on: [deps-backend, prepare-test-env] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: test-pgsql |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - timeout -s ABRT 50m make test-pgsql-migration test-pgsql |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       TAGS: bindata gogit |  | ||||||
|       RACE_ENABLED: true |  | ||||||
|       TEST_TAGS: gogit |  | ||||||
|       TEST_LDAP: 1 |  | ||||||
|       USE_REPO_TEST_DIR: 1 |  | ||||||
|     depends_on: [build] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: testing-mysql |  | ||||||
| 
 |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
| 
 |  | ||||||
| depends_on: |  | ||||||
|   - compliance |  | ||||||
| 
 |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     - pull_request |  | ||||||
|   paths: |  | ||||||
|     exclude: |  | ||||||
|       - "docs/**" |  | ||||||
| 
 |  | ||||||
| volumes: |  | ||||||
|   - name: deps |  | ||||||
|     temp: {} |  | ||||||
| 
 |  | ||||||
| services: |  | ||||||
|   - name: mysql |  | ||||||
|     image: mysql:5.7 |  | ||||||
|     pull: always |  | ||||||
|     environment: |  | ||||||
|       MYSQL_ALLOW_EMPTY_PASSWORD: yes |  | ||||||
|       MYSQL_DATABASE: test |  | ||||||
| 
 |  | ||||||
|   - name: elasticsearch |  | ||||||
|     image: elasticsearch:7.5.0 |  | ||||||
|     pull: always |  | ||||||
|     environment: |  | ||||||
|       discovery.type: single-node |  | ||||||
| 
 |  | ||||||
|   - name: smtpimap |  | ||||||
|     image: tabascoterrier/docker-imap-devel:latest |  | ||||||
|     pull: always |  | ||||||
| 
 |  | ||||||
| steps: |  | ||||||
|   - name: fetch-tags |  | ||||||
|     image: docker:git |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - git fetch --tags --force |  | ||||||
|     when: |  | ||||||
|       event: |  | ||||||
|         exclude: |  | ||||||
|           - pull_request |  | ||||||
| 
 |  | ||||||
|   - name: deps-backend |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make deps-backend |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: prepare-test-env |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-prepare.sh |  | ||||||
| 
 |  | ||||||
|   - name: build |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-check.sh |  | ||||||
|       - make backend |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       TAGS: bindata |  | ||||||
|     depends_on: [deps-backend, prepare-test-env] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: unit-test |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - make unit-test-coverage test-check |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       TAGS: bindata |  | ||||||
|       RACE_ENABLED: true |  | ||||||
|       GITHUB_READ_TOKEN: |  | ||||||
|         from_secret: github_read_token |  | ||||||
|     depends_on: [deps-backend, prepare-test-env] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: unit-test-gogit |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - make unit-test-coverage test-check |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       TAGS: bindata gogit |  | ||||||
|       RACE_ENABLED: true |  | ||||||
|       GITHUB_READ_TOKEN: |  | ||||||
|         from_secret: github_read_token |  | ||||||
|     depends_on: [deps-backend, prepare-test-env] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: test-mysql |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - make test-mysql-migration integration-test-coverage |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       TAGS: bindata |  | ||||||
|       RACE_ENABLED: true |  | ||||||
|       USE_REPO_TEST_DIR: 1 |  | ||||||
|       TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200" |  | ||||||
|     depends_on: [build] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: generate-coverage |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     commands: |  | ||||||
|       - make coverage |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       TAGS: bindata |  | ||||||
|     depends_on: [unit-test, test-mysql] |  | ||||||
|     when: |  | ||||||
|       branch: |  | ||||||
|         - main |  | ||||||
|       event: |  | ||||||
|         - push |  | ||||||
|         - pull_request |  | ||||||
| 
 |  | ||||||
|   - name: coverage-codecov |  | ||||||
|     image: woodpeckerci/plugin-codecov:next-alpine |  | ||||||
|     pull: always |  | ||||||
|     settings: |  | ||||||
|       files: |  | ||||||
|         - coverage.all |  | ||||||
|       token: |  | ||||||
|         from_secret: codecov_token |  | ||||||
|     depends_on: [generate-coverage] |  | ||||||
|     when: |  | ||||||
|       branch: |  | ||||||
|         - main |  | ||||||
|       event: |  | ||||||
|         - push |  | ||||||
|         - pull_request |  | ||||||
| 
 |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: testing-mysql8 |  | ||||||
| 
 |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
| 
 |  | ||||||
| depends_on: |  | ||||||
|   - compliance |  | ||||||
| 
 |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     - pull_request |  | ||||||
|   paths: |  | ||||||
|     exclude: |  | ||||||
|       - "docs/**" |  | ||||||
| 
 |  | ||||||
| volumes: |  | ||||||
|   - name: deps |  | ||||||
|     temp: {} |  | ||||||
| 
 |  | ||||||
| services: |  | ||||||
|   - name: mysql8 |  | ||||||
|     image: mysql:8 |  | ||||||
|     pull: always |  | ||||||
|     environment: |  | ||||||
|       MYSQL_ALLOW_EMPTY_PASSWORD: yes |  | ||||||
|       MYSQL_DATABASE: testgitea |  | ||||||
| 
 |  | ||||||
| steps: |  | ||||||
|   - name: fetch-tags |  | ||||||
|     image: docker:git |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - git fetch --tags --force |  | ||||||
|     when: |  | ||||||
|       event: |  | ||||||
|         exclude: |  | ||||||
|           - pull_request |  | ||||||
| 
 |  | ||||||
|   - name: deps-backend |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make deps-backend |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: prepare-test-env |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-prepare.sh |  | ||||||
| 
 |  | ||||||
|   - name: build |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-check.sh |  | ||||||
|       - make backend |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       TAGS: bindata |  | ||||||
|     depends_on: [deps-backend, prepare-test-env] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: test-mysql8 |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - timeout -s ABRT 50m make test-mysql8-migration test-mysql8 |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       TAGS: bindata |  | ||||||
|       USE_REPO_TEST_DIR: 1 |  | ||||||
|     depends_on: [build] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: testing-mssql |  | ||||||
| 
 |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
| 
 |  | ||||||
| depends_on: |  | ||||||
|   - compliance |  | ||||||
| 
 |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     - pull_request |  | ||||||
|   paths: |  | ||||||
|     exclude: |  | ||||||
|       - "docs/**" |  | ||||||
| 
 |  | ||||||
| volumes: |  | ||||||
|   - name: deps |  | ||||||
|     temp: {} |  | ||||||
| 
 |  | ||||||
| services: |  | ||||||
|   - name: mssql |  | ||||||
|     image: mcr.microsoft.com/mssql/server:latest |  | ||||||
|     pull: always |  | ||||||
|     environment: |  | ||||||
|       ACCEPT_EULA: Y |  | ||||||
|       MSSQL_PID: Standard |  | ||||||
|       SA_PASSWORD: MwantsaSecurePassword1 |  | ||||||
| 
 |  | ||||||
| steps: |  | ||||||
|   - name: fetch-tags |  | ||||||
|     image: docker:git |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - git fetch --tags --force |  | ||||||
|     when: |  | ||||||
|       event: |  | ||||||
|         exclude: |  | ||||||
|           - pull_request |  | ||||||
| 
 |  | ||||||
|   - name: deps-backend |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make deps-backend |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: prepare-test-env |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-prepare.sh |  | ||||||
| 
 |  | ||||||
|   - name: build |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-check.sh |  | ||||||
|       - make backend |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       TAGS: bindata |  | ||||||
|     depends_on: [deps-backend, prepare-test-env] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: test-mssql |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - make test-mssql-migration test-mssql |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       TAGS: bindata |  | ||||||
|       USE_REPO_TEST_DIR: 1 |  | ||||||
|     depends_on: [build] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| name: testing-sqlite |  | ||||||
| 
 |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: arm64 |  | ||||||
| 
 |  | ||||||
| depends_on: |  | ||||||
|   - compliance |  | ||||||
| 
 |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     - pull_request |  | ||||||
|   paths: |  | ||||||
|     exclude: |  | ||||||
|       - "docs/**" |  | ||||||
| 
 |  | ||||||
| volumes: |  | ||||||
|   - name: deps |  | ||||||
|     temp: {} |  | ||||||
| 
 |  | ||||||
| steps: |  | ||||||
|   - name: fetch-tags |  | ||||||
|     image: docker:git |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - git fetch --tags --force |  | ||||||
|     when: |  | ||||||
|       event: |  | ||||||
|         exclude: |  | ||||||
|           - pull_request |  | ||||||
| 
 |  | ||||||
|   - name: deps-backend |  | ||||||
|     image: gitea/test_env:linux-1.20-arm64 |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make deps-backend |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: prepare-test-env |  | ||||||
|     image: gitea/test_env:linux-1.20-arm64  # https://gitea.com/gitea/test-env |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-prepare.sh |  | ||||||
| 
 |  | ||||||
|   - name: build |  | ||||||
|     image: gitea/test_env:linux-1.20-arm64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - ./build/test-env-check.sh |  | ||||||
|       - make backend |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       TAGS: bindata gogit sqlite sqlite_unlock_notify |  | ||||||
|     depends_on: [deps-backend, prepare-test-env] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   - name: test-sqlite |  | ||||||
|     image: gitea/test_env:linux-1.20-arm64  # https://gitea.com/gitea/test-env |  | ||||||
|     user: gitea |  | ||||||
|     commands: |  | ||||||
|       - timeout -s ABRT 50m make test-sqlite-migration test-sqlite |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       TAGS: bindata gogit sqlite sqlite_unlock_notify |  | ||||||
|       RACE_ENABLED: true |  | ||||||
|       TEST_TAGS: gogit sqlite sqlite_unlock_notify |  | ||||||
|       USE_REPO_TEST_DIR: 1 |  | ||||||
|     depends_on: [build] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
| --- |  | ||||||
| kind: pipeline |  | ||||||
| type: docker |  | ||||||
| name: testing-e2e |  | ||||||
| 
 |  | ||||||
| platform: |  | ||||||
|   os: linux |  | ||||||
|   arch: amd64 |  | ||||||
| 
 |  | ||||||
| depends_on: |  | ||||||
|   - compliance |  | ||||||
| 
 |  | ||||||
| trigger: |  | ||||||
|   event: |  | ||||||
|     - pull_request |  | ||||||
|   paths: |  | ||||||
|     exclude: |  | ||||||
|       - "docs/**" |  | ||||||
| 
 |  | ||||||
| volumes: |  | ||||||
|   - name: deps |  | ||||||
|     temp: {} |  | ||||||
| 
 |  | ||||||
| steps: |  | ||||||
|   - name: deps-frontend |  | ||||||
|     image: node:18 |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make deps-frontend |  | ||||||
| 
 |  | ||||||
|   - name: build-frontend |  | ||||||
|     image: node:18 |  | ||||||
|     commands: |  | ||||||
|       - make frontend |  | ||||||
|     depends_on: [deps-frontend] |  | ||||||
| 
 |  | ||||||
|   - name: deps-backend |  | ||||||
|     image: gitea/test_env:linux-1.20-amd64 |  | ||||||
|     pull: always |  | ||||||
|     commands: |  | ||||||
|       - make deps-backend |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
|   # TODO: We should probably build all dependencies into a test image |  | ||||||
|   - name: test-e2e |  | ||||||
|     image: mcr.microsoft.com/playwright:v1.32.3-focal |  | ||||||
|     commands: |  | ||||||
|       - apt-get -qq update && apt-get -qqy install jq build-essential |  | ||||||
|       - curl -fsSL "https://go.dev/dl/$(curl -s 'https://go.dev/dl/?mode=json' | jq -r '.[].version' | sort -Vr | head -1).linux-amd64.tar.gz" | tar -xz -C /usr/local |  | ||||||
|       - groupadd --gid 1001 gitea && useradd -m --gid 1001 --uid 1001 gitea |  | ||||||
|       - ./build/test-env-prepare.sh |  | ||||||
|       - su gitea bash -c "export PATH=$PATH:/usr/local/go/bin && timeout -s ABRT 40m make test-e2e-sqlite" |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.io |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       USE_REPO_TEST_DIR: 1 |  | ||||||
|       DEBIAN_FRONTEND: noninteractive |  | ||||||
|     depends_on: [build-frontend, deps-backend] |  | ||||||
|     volumes: |  | ||||||
|       - name: deps |  | ||||||
|         path: /go |  | ||||||
| 
 |  | ||||||
| --- | --- | ||||||
| kind: pipeline | kind: pipeline | ||||||
| type: docker | type: docker | ||||||
|  | @ -767,13 +21,6 @@ trigger: | ||||||
|     exclude: |     exclude: | ||||||
|       - "docs/**" |       - "docs/**" | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| volumes: | volumes: | ||||||
|   - name: deps |   - name: deps | ||||||
|     temp: {} |     temp: {} | ||||||
|  | @ -902,13 +149,6 @@ trigger: | ||||||
|   event: |   event: | ||||||
|     - tag |     - tag | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| volumes: | volumes: | ||||||
|   - name: deps |   - name: deps | ||||||
|     temp: {} |     temp: {} | ||||||
|  | @ -1013,22 +253,12 @@ platform: | ||||||
|   os: linux |   os: linux | ||||||
|   arch: amd64 |   arch: amd64 | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| trigger: | trigger: | ||||||
|   ref: |   ref: | ||||||
|     include: |     include: | ||||||
|       - "refs/tags/**" |       - "refs/tags/**" | ||||||
|     exclude: |     exclude: | ||||||
|       - "refs/tags/**-rc*" |       - "refs/tags/**-rc*" | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
|   paths: |   paths: | ||||||
|     exclude: |     exclude: | ||||||
|       - "docs/**" |       - "docs/**" | ||||||
|  | @ -1093,19 +323,9 @@ platform: | ||||||
|   os: linux |   os: linux | ||||||
|   arch: amd64 |   arch: amd64 | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| trigger: | trigger: | ||||||
|   ref: |   ref: | ||||||
|     - "refs/tags/**-rc*" |     - "refs/tags/**-rc*" | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
|   paths: |   paths: | ||||||
|     exclude: |     exclude: | ||||||
|       - "docs/**" |       - "docs/**" | ||||||
|  | @ -1168,19 +388,9 @@ platform: | ||||||
|   os: linux |   os: linux | ||||||
|   arch: amd64 |   arch: amd64 | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| trigger: | trigger: | ||||||
|   ref: |   ref: | ||||||
|   - refs/heads/main |   - refs/heads/main | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
| 
 | 
 | ||||||
| steps: | steps: | ||||||
|   - name: fetch-tags |   - name: fetch-tags | ||||||
|  | @ -1241,19 +451,9 @@ platform: | ||||||
|   os: linux |   os: linux | ||||||
|   arch: amd64 |   arch: amd64 | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| trigger: | trigger: | ||||||
|   ref: |   ref: | ||||||
|   - "refs/heads/release/v*" |   - "refs/heads/release/v*" | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
| 
 | 
 | ||||||
| steps: | steps: | ||||||
|   - name: fetch-tags |   - name: fetch-tags | ||||||
|  | @ -1315,22 +515,12 @@ platform: | ||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| trigger: | trigger: | ||||||
|   ref: |   ref: | ||||||
|     include: |     include: | ||||||
|       - "refs/tags/**" |       - "refs/tags/**" | ||||||
|     exclude: |     exclude: | ||||||
|       - "refs/tags/**-rc*" |       - "refs/tags/**-rc*" | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
|   paths: |   paths: | ||||||
|     exclude: |     exclude: | ||||||
|       - "docs/**" |       - "docs/**" | ||||||
|  | @ -1395,19 +585,9 @@ platform: | ||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| trigger: | trigger: | ||||||
|   ref: |   ref: | ||||||
|     - "refs/tags/**-rc*" |     - "refs/tags/**-rc*" | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
|   paths: |   paths: | ||||||
|     exclude: |     exclude: | ||||||
|       - "docs/**" |       - "docs/**" | ||||||
|  | @ -1470,19 +650,9 @@ platform: | ||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| trigger: | trigger: | ||||||
|   ref: |   ref: | ||||||
|   - refs/heads/main |   - refs/heads/main | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
|   paths: |   paths: | ||||||
|     exclude: |     exclude: | ||||||
|       - "docs/**" |       - "docs/**" | ||||||
|  | @ -1546,19 +716,9 @@ platform: | ||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
| 
 | 
 | ||||||
| depends_on: |  | ||||||
|   - testing-mysql |  | ||||||
|   - testing-mysql8 |  | ||||||
|   - testing-mssql |  | ||||||
|   - testing-pgsql |  | ||||||
|   - testing-sqlite |  | ||||||
| 
 |  | ||||||
| trigger: | trigger: | ||||||
|   ref: |   ref: | ||||||
|   - "refs/heads/release/v*" |   - "refs/heads/release/v*" | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
| 
 | 
 | ||||||
| steps: | steps: | ||||||
|   - name: fetch-tags |   - name: fetch-tags | ||||||
|  | @ -1647,9 +807,6 @@ steps: | ||||||
| trigger: | trigger: | ||||||
|   ref: |   ref: | ||||||
|   - "refs/tags/**" |   - "refs/tags/**" | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
|   paths: |   paths: | ||||||
|     exclude: |     exclude: | ||||||
|       - "docs/**" |       - "docs/**" | ||||||
|  | @ -1697,9 +854,6 @@ trigger: | ||||||
|   ref: |   ref: | ||||||
|   - refs/heads/main |   - refs/heads/main | ||||||
|   - "refs/heads/release/v*" |   - "refs/heads/release/v*" | ||||||
|   event: |  | ||||||
|     exclude: |  | ||||||
|     - cron |  | ||||||
|   paths: |   paths: | ||||||
|     exclude: |     exclude: | ||||||
|       - "docs/**" |       - "docs/**" | ||||||
|  |  | ||||||
|  | @ -1,10 +1,10 @@ | ||||||
|  | name: "Cron: Update licenses and gitignores" | ||||||
|  | 
 | ||||||
| on: | on: | ||||||
|   schedule: |   schedule: | ||||||
|     # weekly on Monday at 0:07 UTC |     # weekly on Monday at 0:07 UTC | ||||||
|     - cron: "7 0 * * 1" |     - cron: "7 0 * * 1" | ||||||
| 
 | 
 | ||||||
| name: Update licenses and gitignores |  | ||||||
| 
 |  | ||||||
| jobs: | jobs: | ||||||
|   cron: |   cron: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|  |  | ||||||
|  | @ -1,9 +1,9 @@ | ||||||
|  | name: "Cron: Pull translations from Crowdin" | ||||||
|  | 
 | ||||||
| on: | on: | ||||||
|   schedule: |   schedule: | ||||||
|     - cron: "7 0 * * *" # every day at 0:07 UTC |     - cron: "7 0 * * *" # every day at 0:07 UTC | ||||||
| 
 | 
 | ||||||
| name: Pull translations from Crowdin |  | ||||||
| 
 |  | ||||||
| jobs: | jobs: | ||||||
|   crowdin_pull: |   crowdin_pull: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|  |  | ||||||
|  | @ -0,0 +1,133 @@ | ||||||
|  | name: "Pull: Compliance Tests" | ||||||
|  | 
 | ||||||
|  | on: [pull_request] | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   lint_basic: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20' | ||||||
|  |       - name: deps-backend | ||||||
|  |         run: make deps-backend deps-tools | ||||||
|  |       - name: lint backend | ||||||
|  |         run: make lint-backend | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           TAGS: bindata sqlite sqlite_unlock_notify | ||||||
|  |   lint_windows: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20' | ||||||
|  |       - name: deps-backend | ||||||
|  |         run: make deps-backend deps-tools | ||||||
|  |       - name: lint-backend-windows | ||||||
|  |         run: make lint-go-windows lint-go-vet | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           TAGS: bindata sqlite sqlite_unlock_notify | ||||||
|  |           GOOS: windows | ||||||
|  |           GOARCH: amd64 | ||||||
|  |   lint_gogit: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20' | ||||||
|  |       - name: deps-backend | ||||||
|  |         run: make deps-backend deps-tools | ||||||
|  |       - name: lint-backend-gogit | ||||||
|  |         run: make lint-backend | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||||
|  |       - name: checks backend | ||||||
|  |         run: make --always-make checks-backend # ensure the 'go-licenses' make target runs | ||||||
|  |   check_backend: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20' | ||||||
|  |       - name: deps-backend | ||||||
|  |         run: make deps-backend deps-tools | ||||||
|  |       - name: checks backend | ||||||
|  |         run: make --always-make checks-backend # ensure the 'go-licenses' make target runs | ||||||
|  |   frontend: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup node | ||||||
|  |         uses: actions/setup-node@v3 | ||||||
|  |         with: | ||||||
|  |           node-version: 18 | ||||||
|  |       - name: deps-frontend | ||||||
|  |         run: make deps-frontend | ||||||
|  |       - name: lint frontend | ||||||
|  |         run: make lint-frontend | ||||||
|  |       - name: checks frontend | ||||||
|  |         run: make checks-frontend | ||||||
|  |       - name: test frontend | ||||||
|  |         run: make test-frontend | ||||||
|  |   backend: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20' | ||||||
|  |       - name: setup node | ||||||
|  |         uses: actions/setup-node@v3 | ||||||
|  |         with: | ||||||
|  |           node-version: 18 | ||||||
|  |       - name: deps-backend | ||||||
|  |         run: make deps-backend deps-tools | ||||||
|  |       - name: deps-frontend | ||||||
|  |         run: make deps-frontend | ||||||
|  |       - name: build frontend | ||||||
|  |         run: make frontend | ||||||
|  |       - name: build-backend-no-gcc | ||||||
|  |         run: go build -o gitea_no_gcc # test if build succeeds without the sqlite tag | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |       - name: build-backend-arm64 | ||||||
|  |         run: make backend # test cross compile | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOOS: linux | ||||||
|  |           GOARCH: arm64 | ||||||
|  |           TAGS: bindata gogit | ||||||
|  |       - name: build-backend-windows | ||||||
|  |         run: go build -o gitea_windows | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOOS: windows | ||||||
|  |           GOARCH: amd64 | ||||||
|  |           TAGS: bindata gogit | ||||||
|  |       - name: build-backend-386 | ||||||
|  |         run: go build -o gitea_linux_386 # test if compatible with 32 bit | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOOS: linux | ||||||
|  |           GOARCH: 386 | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| name: Compliance testing for documentation | name: "Pull: Compliance testing for documentation" | ||||||
| 
 | 
 | ||||||
| on: | on: | ||||||
|   pull_request: |   pull_request: | ||||||
|  |  | ||||||
|  | @ -0,0 +1,260 @@ | ||||||
|  | name: "Pull: Database Tests" | ||||||
|  | 
 | ||||||
|  | on: [pull_request] | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   # PostgreSQL Tests | ||||||
|  |   db_pgsql_test: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     services: | ||||||
|  |       pgsql: | ||||||
|  |         image: postgres:15 | ||||||
|  |         env: | ||||||
|  |           POSTGRES_DB: test | ||||||
|  |           POSTGRES_PASSWORD: postgres | ||||||
|  |         ports: | ||||||
|  |           - "5432:5432" | ||||||
|  |       ldap: | ||||||
|  |         image: gitea/test-openldap:latest | ||||||
|  |         ports: | ||||||
|  |           - "389:389" | ||||||
|  |           - "636:636" | ||||||
|  |       minio: | ||||||
|  |         # as github actions doesn't support "entrypoint", we need to use a non-official image | ||||||
|  |         # that has a custom entrypoint set to "minio server /data" | ||||||
|  |         image: bitnami/minio:2021.3.17 | ||||||
|  |         env: | ||||||
|  |           MINIO_ACCESS_KEY: 123456 | ||||||
|  |           MINIO_SECRET_KEY: 12345678 | ||||||
|  |         ports: | ||||||
|  |           - "9000:9000" | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20.0' | ||||||
|  |       - name: Add hosts to /etc/hosts | ||||||
|  |         run: echo "127.0.0.1 pgsql ldap minio" | sudo tee -a /etc/hosts | ||||||
|  |       - name: install dependencies | ||||||
|  |         run: make deps-backend | ||||||
|  |       - name: build | ||||||
|  |         run: make backend | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           TAGS: bindata | ||||||
|  |       - name: run tests | ||||||
|  |         run: timeout -s ABRT 50m make test-pgsql-migration test-pgsql | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           TAGS: bindata gogit | ||||||
|  |           RACE_ENABLED: true | ||||||
|  |           TEST_TAGS: gogit | ||||||
|  |           TEST_LDAP: 1 | ||||||
|  |           USE_REPO_TEST_DIR: 1 | ||||||
|  | 
 | ||||||
|  |   # SQLite Tests | ||||||
|  |   db_sqlite_test: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20.0' | ||||||
|  |       - name: install dependencies | ||||||
|  |         run: make deps-backend | ||||||
|  |       - name: build | ||||||
|  |         run: make backend | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||||
|  |       - name: run tests | ||||||
|  |         run: timeout -s ABRT 50m make test-sqlite-migration test-sqlite | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||||
|  |           RACE_ENABLED: true | ||||||
|  |           TEST_TAGS: gogit sqlite sqlite_unlock_notify | ||||||
|  |           USE_REPO_TEST_DIR: 1 | ||||||
|  | 
 | ||||||
|  |   # Unit Tests | ||||||
|  |   db_unit_tests: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     services: | ||||||
|  |       mysql: | ||||||
|  |         image: mysql:5.7 | ||||||
|  |         env: | ||||||
|  |           MYSQL_ALLOW_EMPTY_PASSWORD: yes | ||||||
|  |           MYSQL_DATABASE: test | ||||||
|  |         ports: | ||||||
|  |           - "3306:3306" | ||||||
|  |       elasticsearch: | ||||||
|  |         image: elasticsearch:7.5.0 | ||||||
|  |         env: | ||||||
|  |           discovery.type: single-node | ||||||
|  |         ports: | ||||||
|  |           - "9200:9200" | ||||||
|  |       smtpimap: | ||||||
|  |         image: tabascoterrier/docker-imap-devel:latest | ||||||
|  |         ports: | ||||||
|  |           - "25:25" | ||||||
|  |           - "143:143" | ||||||
|  |           - "587:587" | ||||||
|  |           - "993:993" | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20.0' | ||||||
|  |       - name: Add hosts to /etc/hosts | ||||||
|  |         run: echo "127.0.0.1 mysql elasticsearch smtpimap" | sudo tee -a /etc/hosts | ||||||
|  |       - name: install dependencies | ||||||
|  |         run: make deps-backend | ||||||
|  |       - name: build | ||||||
|  |         run: make backend | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           TAGS: bindata | ||||||
|  |       - name: unit tests | ||||||
|  |         run: make unit-test-coverage test-check | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           TAGS: bindata | ||||||
|  |           RACE_ENABLED: true | ||||||
|  |           GITHUB_READ_TOKEN: ${{ secrets.GITHUB_READ_TOKEN }} | ||||||
|  |       - name: unit tests (gogit) | ||||||
|  |         run: make unit-test-coverage test-check | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           TAGS: bindata gogit | ||||||
|  |           RACE_ENABLED: true | ||||||
|  |           GITHUB_READ_TOKEN: ${{ secrets.GITHUB_READ_TOKEN }} | ||||||
|  | 
 | ||||||
|  |   # MySQL Tests | ||||||
|  |   db_mysql_test: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     services: | ||||||
|  |       mysql: | ||||||
|  |         image: mysql:5.7 | ||||||
|  |         env: | ||||||
|  |           MYSQL_ALLOW_EMPTY_PASSWORD: yes | ||||||
|  |           MYSQL_DATABASE: test | ||||||
|  |         ports: | ||||||
|  |           - "3306:3306" | ||||||
|  |       elasticsearch: | ||||||
|  |         image: elasticsearch:7.5.0 | ||||||
|  |         env: | ||||||
|  |           discovery.type: single-node | ||||||
|  |         ports: | ||||||
|  |           - "9200:9200" | ||||||
|  |       smtpimap: | ||||||
|  |         image: tabascoterrier/docker-imap-devel:latest | ||||||
|  |         ports: | ||||||
|  |           - "25:25" | ||||||
|  |           - "143:143" | ||||||
|  |           - "587:587" | ||||||
|  |           - "993:993" | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20.0' | ||||||
|  |       - name: Add hosts to /etc/hosts | ||||||
|  |         run: echo "127.0.0.1 mysql elasticsearch smtpimap" | sudo tee -a /etc/hosts | ||||||
|  |       - name: install dependencies | ||||||
|  |         run: make deps-backend | ||||||
|  |       - name: build | ||||||
|  |         run: make backend | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           TAGS: bindata | ||||||
|  |       - name: run tests | ||||||
|  |         run: make test-mysql-migration integration-test-coverage | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           TAGS: bindata | ||||||
|  |           RACE_ENABLED: true | ||||||
|  |           USE_REPO_TEST_DIR: 1 | ||||||
|  |           TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200" | ||||||
|  | 
 | ||||||
|  |   # MySQL8 Tests | ||||||
|  |   db_mysql8_test: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     services: | ||||||
|  |       mysql8: | ||||||
|  |         image: mysql:8 | ||||||
|  |         env: | ||||||
|  |           MYSQL_ALLOW_EMPTY_PASSWORD: yes | ||||||
|  |           MYSQL_DATABASE: testgitea | ||||||
|  |         ports: | ||||||
|  |           - "3306:3306" | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20.0' | ||||||
|  |       - name: Add hosts to /etc/hosts | ||||||
|  |         run: echo "127.0.0.1 mysql8" | sudo tee -a /etc/hosts | ||||||
|  |       - name: install dependencies | ||||||
|  |         run: make deps-backend | ||||||
|  |       - name: build | ||||||
|  |         run: make backend | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           TAGS: bindata | ||||||
|  |       - name: run tests | ||||||
|  |         run: timeout -s ABRT 50m make test-mysql8-migration test-mysql8 | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           TAGS: bindata | ||||||
|  |           USE_REPO_TEST_DIR: 1 | ||||||
|  | 
 | ||||||
|  |   # MSSQL Tests | ||||||
|  |   db_mssql_test: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     services: | ||||||
|  |       mssql: | ||||||
|  |         image: mcr.microsoft.com/mssql/server:latest | ||||||
|  |         env: | ||||||
|  |           ACCEPT_EULA: Y | ||||||
|  |           MSSQL_PID: Standard | ||||||
|  |           SA_PASSWORD: MwantsaSecurePassword1 | ||||||
|  |         ports: | ||||||
|  |           - "1433:1433" | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20.0' | ||||||
|  |       - name: Add hosts to /etc/hosts | ||||||
|  |         run: echo "127.0.0.1 mssql" | sudo tee -a /etc/hosts | ||||||
|  |       - name: install dependencies | ||||||
|  |         run: make deps-backend | ||||||
|  |       - name: build | ||||||
|  |         run: make backend | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           TAGS: bindata | ||||||
|  |       - name: run tests | ||||||
|  |         run: timeout -s ABRT 50m make test-mssql-migration test-mssql | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           TAGS: bindata | ||||||
|  |           USE_REPO_TEST_DIR: 1 | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| name: Docker build dry run | name: "Pull: Docker Dry Run" | ||||||
| 
 | 
 | ||||||
| on: [pull_request] | on: [pull_request] | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,28 @@ | ||||||
|  | name: "Pull: E2E Tests" | ||||||
|  | 
 | ||||||
|  | on: [pull_request] | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   e2e_tests: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |       - name: setup go | ||||||
|  |         uses: actions/setup-go@v4 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.20' | ||||||
|  |       - name: setup node | ||||||
|  |         uses: actions/setup-node@v3 | ||||||
|  |         with: | ||||||
|  |           node-version: 18 | ||||||
|  |       - name: build | ||||||
|  |         run: make deps-frontend frontend deps-backend | ||||||
|  |       - name: Install playwright browsers | ||||||
|  |         run: npx playwright install --with-deps | ||||||
|  |       - name: run tests | ||||||
|  |         run: timeout -s ABRT 40m make test-e2e-sqlite | ||||||
|  |         env: | ||||||
|  |           GOPROXY: https://goproxy.io | ||||||
|  |           GOSUMDB: sum.golang.org | ||||||
|  |           USE_REPO_TEST_DIR: 1 | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| name: Publish documentation | name: "Docs: Publish" | ||||||
| 
 | 
 | ||||||
| on: | on: | ||||||
|   push: |   push: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue