mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	[CI] Forgejo Actions based CI for PR & branches
(cherry picked from commitf9d75d4705) (cherry picked from commit64f76f4ab2) (cherry picked from commit5d02454155) [CI] Forgejo Actions workflows (cherry picked from commit3ff59b5379) (cherry picked from commit8af826a6f7) (cherry picked from commitd7c09d9cc8) [CI] use the docker label instead of ubuntu-latest (cherry picked from commitb6a6470db6) [CI] all tests need compliance before proceeding (cherry picked from commitb35c496f2c) (cherry picked from commit36a4148a8e) (cherry picked from commit7ffcffa653) (cherry picked from commit8a246d296e) (cherry picked from commitdd0b6e1826) [CI] Forgejo Actions based release process (squash) MySQL optimization Refs: https://codeberg.org/forgejo/forgejo/issues/976 (cherry picked from commitb4b8c489e6) (cherry picked from commit1e861db4af) (cherry picked from commita6c0e00330) (cherry picked from commitf97b336465) (cherry picked from commit 6d65d5f0d6f798556a8f9e547896be03a5ee2f87) (cherry picked from commit79bfbadbed) (cherry picked from commite86c40a34a) (cherry picked from commitda0c454adb) (cherry picked from commitb49d892cda) [CI] enable minio tests (cherry picked from commit4d8f438031) (cherry picked from commitc4eeb0a61e) [CI] Forgejo Actions based CI for PR & branches (squash) cleanup (cherry picked from commit80eb20e842) (cherry picked from commitd2ff589858) (cherry picked from commitf6eedecb67) (cherry picked from commitcf458091e2) (cherry picked from commitddd322cb2d) (cherry picked from commitf0f5729b64) Conflicts: .github/workflows/pull-db-tests.yml https://codeberg.org/forgejo/forgejo/pulls/1573 (cherry picked from commitbb347aedd4) (cherry picked from commit0f5ebe8c3e) (cherry picked from commit9101cb4715) (cherry picked from commitab118fe4ef) [CI] Forgejo Actions based CI for PR & branches (squash) use node:20-bookworm No longer use the custom test-env image, it is unecessary technical debt. Also upgrade to bitnami/minio:2023.8.31 to align with what Gitea tests (cherry picked from commitd9b77fd273) (cherry picked from commitef8f099f9e) (cherry picked from commit6d3c675d20) (cherry picked from commitfc00ff45f2) (cherry picked from commitb7f02b9846) (cherry picked from commitd23d86e567)
This commit is contained in:
		
					parent
					
						
							
								49aef71b32
							
						
					
				
			
			
				commit
				
					
						e68e65460c
					
				
			
		
					 9 changed files with 190 additions and 565 deletions
				
			
		
							
								
								
									
										189
									
								
								.forgejo/workflows/testing.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										189
									
								
								.forgejo/workflows/testing.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,189 @@ | |||
| name: testing | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
|   push: | ||||
|     branches: | ||||
|       - 'forgejo*' | ||||
|       - 'v*/forgejo*' | ||||
| 
 | ||||
| jobs: | ||||
|   lint-backend: | ||||
|     runs-on: docker | ||||
|     container: | ||||
|       image: 'docker.io/node:20-bookworm' | ||||
|     steps: | ||||
|       - uses: https://code.forgejo.org/actions/checkout@v3 | ||||
|       - uses: https://code.forgejo.org/actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version: ">=1.21" | ||||
|           check-latest: true | ||||
|       - run: make deps-backend deps-tools | ||||
|       - run: make lint-backend | ||||
|         env: | ||||
|           TAGS: bindata sqlite sqlite_unlock_notify | ||||
|   checks-backend: | ||||
|     runs-on: docker | ||||
|     container: | ||||
|       image: 'docker.io/node:20-bookworm' | ||||
|     steps: | ||||
|       - uses: https://code.forgejo.org/actions/checkout@v3 | ||||
|       - uses: https://code.forgejo.org/actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version: ">=1.21" | ||||
|           check-latest: true | ||||
|       - run: make deps-backend deps-tools | ||||
|       - run: make --always-make checks-backend # ensure the "go-licenses" make target runs | ||||
|   test-unit: | ||||
|     runs-on: docker | ||||
|     needs: [lint-backend, checks-backend] | ||||
|     container: | ||||
|       image: 'docker.io/node:20-bookworm' | ||||
|     services: | ||||
|       minio: | ||||
|         image: 'docker.io/bitnami/minio:2023.8.31' | ||||
|         env: | ||||
|           MINIO_ROOT_USER: 123456 | ||||
|           MINIO_ROOT_PASSWORD: 12345678 | ||||
|     steps: | ||||
|       - uses: https://code.forgejo.org/actions/checkout@v3 | ||||
|       - uses: https://code.forgejo.org/actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version: ">=1.21" | ||||
|       - run: | | ||||
|           git config --add safe.directory '*' | ||||
|           adduser --quiet --comment forgejo --disabled-password forgejo | ||||
|           chown -R forgejo:forgejo . | ||||
|       - run: | | ||||
|           su forgejo -c 'make deps-backend' | ||||
|       - run: | | ||||
|           su forgejo -c 'make backend' | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|       - run: | | ||||
|           su forgejo -c 'make unit-test-coverage test-check' | ||||
|         timeout-minutes: 50 | ||||
|         env: | ||||
|           RACE_ENABLED: 'true' | ||||
|           TAGS: bindata | ||||
|   test-mysql: | ||||
|     runs-on: docker | ||||
|     needs: [lint-backend, checks-backend] | ||||
|     container: | ||||
|       image: 'docker.io/node:20-bookworm' | ||||
|     services: | ||||
|       mysql: | ||||
|         image: 'docker.io/mysql:8-debian' | ||||
|         env: | ||||
|           MYSQL_ALLOW_EMPTY_PASSWORD: yes | ||||
|           MYSQL_DATABASE: testgitea | ||||
|         # | ||||
|         # See also https://codeberg.org/forgejo/forgejo/issues/976 | ||||
|         # | ||||
|         cmd: ['mysqld', '--innodb-adaptive-flushing=OFF', '--innodb-buffer-pool-size=4G', '--innodb-log-buffer-size=128M', '--innodb-flush-log-at-trx-commit=0', '--innodb-flush-log-at-timeout=30', '--innodb-flush-method=nosync', '--innodb-fsync-threshold=1000000000'] | ||||
|     steps: | ||||
|       - uses: https://code.forgejo.org/actions/checkout@v3 | ||||
|       - uses: https://code.forgejo.org/actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version: "1.21" | ||||
|       - name: install dependencies | ||||
|         run: | | ||||
|           export DEBIAN_FRONTEND=noninteractive | ||||
|           apt-get update -qq | ||||
|           apt-get install --no-install-recommends -qq -y git-lfs | ||||
|       - name: setup user and permissions | ||||
|         run: | | ||||
|           git config --add safe.directory '*' | ||||
|           adduser --quiet --comment forgejo --disabled-password forgejo | ||||
|           chown -R forgejo:forgejo . | ||||
|       - run: | | ||||
|           su forgejo -c 'make deps-backend' | ||||
|       - run: | | ||||
|           su forgejo -c 'make backend' | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|       - run: | | ||||
|           su forgejo -c 'make test-mysql-migration test-mysql' | ||||
|         timeout-minutes: 50 | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|           USE_REPO_TEST_DIR: 1 | ||||
|   test-pgsql: | ||||
|     runs-on: docker | ||||
|     needs: [lint-backend, checks-backend] | ||||
|     container: | ||||
|       image: 'docker.io/node:20-bookworm' | ||||
|     services: | ||||
|       minio: | ||||
|         image: bitnami/minio:2021.3.17 | ||||
|         env: | ||||
|           MINIO_ACCESS_KEY: 123456 | ||||
|           MINIO_SECRET_KEY: 12345678 | ||||
|       pgsql: | ||||
|         image: 'docker.io/postgres:15' | ||||
|         env: | ||||
|           POSTGRES_DB: test | ||||
|           POSTGRES_PASSWORD: postgres | ||||
|     steps: | ||||
|       - uses: https://code.forgejo.org/actions/checkout@v3 | ||||
|       - uses: https://code.forgejo.org/actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version: "1.21" | ||||
|       - name: install dependencies | ||||
|         run: | | ||||
|           export DEBIAN_FRONTEND=noninteractive | ||||
|           apt-get update -qq | ||||
|           apt-get install --no-install-recommends -qq -y git-lfs | ||||
|       - name: setup user and permissions | ||||
|         run: | | ||||
|           git config --add safe.directory '*' | ||||
|           adduser --quiet --comment forgejo --disabled-password forgejo | ||||
|           chown -R forgejo:forgejo . | ||||
|       - run: | | ||||
|           su forgejo -c 'make deps-backend' | ||||
|       - run: | | ||||
|           su forgejo -c 'make backend' | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|       - run: | | ||||
|           su forgejo -c 'make test-pgsql-migration test-pgsql' | ||||
|         timeout-minutes: 50 | ||||
|         env: | ||||
|           TAGS: bindata gogit | ||||
|           RACE_ENABLED: true | ||||
|           TEST_TAGS: gogit | ||||
|           USE_REPO_TEST_DIR: 1 | ||||
|   test-sqlite: | ||||
|     runs-on: docker | ||||
|     needs: [lint-backend, checks-backend] | ||||
|     container: | ||||
|       image: 'docker.io/node:20-bookworm' | ||||
|     steps: | ||||
|       - uses: https://code.forgejo.org/actions/checkout@v3 | ||||
|       - uses: https://code.forgejo.org/actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version: "1.21" | ||||
|       - name: install dependencies | ||||
|         run: | | ||||
|           export DEBIAN_FRONTEND=noninteractive | ||||
|           apt-get update -qq | ||||
|           apt-get install --no-install-recommends -qq -y git-lfs | ||||
|       - name: setup user and permissions | ||||
|         run: | | ||||
|           git config --add safe.directory '*' | ||||
|           adduser --quiet --comment forgejo --disabled-password forgejo | ||||
|           chown -R forgejo:forgejo . | ||||
|       - run: | | ||||
|           su forgejo -c 'make deps-backend' | ||||
|       - run: | | ||||
|           su forgejo -c 'make backend' | ||||
|         env: | ||||
|           TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||
|       - run: | | ||||
|           su forgejo -c 'make test-sqlite-migration test-sqlite' | ||||
|         timeout-minutes: 50 | ||||
|         env: | ||||
|           TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||
|           RACE_ENABLED: true | ||||
|           TEST_TAGS: gogit sqlite sqlite_unlock_notify | ||||
|           USE_REPO_TEST_DIR: 1 | ||||
							
								
								
									
										29
									
								
								.github/workflows/cron-licenses.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								.github/workflows/cron-licenses.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,29 +0,0 @@ | |||
| name: cron-licenses | ||||
| 
 | ||||
| on: | ||||
|   schedule: | ||||
|     - cron: "7 0 * * 1" # every Monday at 00:07 UTC | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   cron-licenses: | ||||
|     runs-on: ubuntu-latest | ||||
|     if: github.repository == 'go-gitea/gitea' | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - run: make generate-license generate-gitignore | ||||
|         timeout-minutes: 40 | ||||
|       - name: push translations to repo | ||||
|         uses: appleboy/git-push-action@v0.0.3 | ||||
|         with: | ||||
|           author_email: "teabot@gitea.io" | ||||
|           author_name: GiteaBot | ||||
|           branch: main | ||||
|           commit: true | ||||
|           commit_message: "[skip ci] Updated licenses and gitignores" | ||||
|           remote: "git@github.com:go-gitea/gitea.git" | ||||
|           ssh_key: ${{ secrets.DEPLOY_KEY }} | ||||
							
								
								
									
										22
									
								
								.github/workflows/cron-lock.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.github/workflows/cron-lock.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,22 +0,0 @@ | |||
| name: cron-lock | ||||
| 
 | ||||
| on: | ||||
|   schedule: | ||||
|     - cron: "0 0 * * *" # every day at 00:00 UTC | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| permissions: | ||||
|   issues: write | ||||
|   pull-requests: write | ||||
| 
 | ||||
| concurrency: | ||||
|   group: lock | ||||
| 
 | ||||
| jobs: | ||||
|   action: | ||||
|     runs-on: ubuntu-latest | ||||
|     if: github.repository == 'go-gitea/gitea' | ||||
|     steps: | ||||
|       - uses: dessant/lock-threads@v4 | ||||
|         with: | ||||
|           issue-inactive-days: 45 | ||||
							
								
								
									
										49
									
								
								.github/workflows/cron-translations.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										49
									
								
								.github/workflows/cron-translations.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,49 +0,0 @@ | |||
| name: cron-translations | ||||
| 
 | ||||
| on: | ||||
|   schedule: | ||||
|     - cron: "7 0 * * *" # every day at 00:07 UTC | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   crowdin-pull: | ||||
|     runs-on: ubuntu-latest | ||||
|     if: github.repository == 'go-gitea/gitea' | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - name: download from crowdin | ||||
|         uses: docker://jonasfranz/crowdin | ||||
|         env: | ||||
|           CROWDIN_KEY: ${{ secrets.CROWDIN_KEY }} | ||||
|           PLUGIN_DOWNLOAD: true | ||||
|           PLUGIN_EXPORT_DIR: options/locale/ | ||||
|           PLUGIN_IGNORE_BRANCH: true | ||||
|           PLUGIN_PROJECT_IDENTIFIER: gitea | ||||
|       - name: update locales | ||||
|         run: ./build/update-locales.sh | ||||
|       - name: push translations to repo | ||||
|         uses: appleboy/git-push-action@v0.0.3 | ||||
|         with: | ||||
|           author_email: "teabot@gitea.io" | ||||
|           author_name: GiteaBot | ||||
|           branch: main | ||||
|           commit: true | ||||
|           commit_message: "[skip ci] Updated translations via Crowdin" | ||||
|           remote: "git@github.com:go-gitea/gitea.git" | ||||
|           ssh_key: ${{ secrets.DEPLOY_KEY }} | ||||
|   crowdin-push: | ||||
|     runs-on: ubuntu-latest | ||||
|     if: github.repository == 'go-gitea/gitea' | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - name: push translations to crowdin | ||||
|         uses: docker://jonasfranz/crowdin | ||||
|         env: | ||||
|           CROWDIN_KEY: ${{ secrets.CROWDIN_KEY }} | ||||
|           PLUGIN_UPLOAD: true | ||||
|           PLUGIN_EXPORT_DIR: options/locale/ | ||||
|           PLUGIN_IGNORE_BRANCH: true | ||||
|           PLUGIN_PROJECT_IDENTIFIER: gitea | ||||
|           PLUGIN_FILES: | | ||||
|             locale_en-US.ini: options/locale/locale_en-US.ini | ||||
|           PLUGIN_BRANCH: main | ||||
							
								
								
									
										182
									
								
								.github/workflows/pull-compliance.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										182
									
								
								.github/workflows/pull-compliance.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,182 +0,0 @@ | |||
| name: compliance | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   files-changed: | ||||
|     uses: ./.github/workflows/files-changed.yml | ||||
| 
 | ||||
|   lint-backend: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - run: make deps-backend deps-tools | ||||
|       - run: make lint-backend | ||||
|         env: | ||||
|           TAGS: bindata sqlite sqlite_unlock_notify | ||||
| 
 | ||||
|   lint-templates: | ||||
|     if: needs.files-changed.outputs.templates == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-python@v4 | ||||
|         with: | ||||
|           python-version: "3.11" | ||||
|       - run: pip install poetry | ||||
|       - run: make deps-py | ||||
|       - run: make lint-templates | ||||
| 
 | ||||
|   lint-yaml: | ||||
|     if: needs.files-changed.outputs.yaml == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-python@v4 | ||||
|         with: | ||||
|           python-version: "3.11" | ||||
|       - run: pip install poetry | ||||
|       - run: make deps-py | ||||
|       - run: make lint-yaml | ||||
| 
 | ||||
|   lint-swagger: | ||||
|     if: needs.files-changed.outputs.swagger == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: 20 | ||||
|       - run: make deps-frontend | ||||
|       - run: make lint-swagger | ||||
| 
 | ||||
|   lint-go-windows: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - run: make deps-backend deps-tools | ||||
|       - run: make lint-go-windows lint-go-vet | ||||
|         env: | ||||
|           TAGS: bindata sqlite sqlite_unlock_notify | ||||
|           GOOS: windows | ||||
|           GOARCH: amd64 | ||||
| 
 | ||||
|   lint-go-gogit: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - run: make deps-backend deps-tools | ||||
|       - run: make lint-go | ||||
|         env: | ||||
|           TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||
| 
 | ||||
|   checks-backend: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - run: make deps-backend deps-tools | ||||
|       - run: make --always-make checks-backend # ensure the "go-licenses" make target runs | ||||
| 
 | ||||
|   frontend: | ||||
|     if: needs.files-changed.outputs.frontend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: 20 | ||||
|       - run: make deps-frontend | ||||
|       - run: make lint-frontend | ||||
|       - run: make checks-frontend | ||||
|       - run: make test-frontend | ||||
|       - run: make frontend | ||||
| 
 | ||||
|   backend: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       # no frontend build here as backend should be able to build | ||||
|       # even without any frontend files | ||||
|       - run: make deps-backend | ||||
|       - run: go build -o gitea_no_gcc # test if build succeeds without the sqlite tag | ||||
|       - name: build-backend-arm64 | ||||
|         run: make backend # test cross compile | ||||
|         env: | ||||
|           GOOS: linux | ||||
|           GOARCH: arm64 | ||||
|           TAGS: bindata gogit | ||||
|       - name: build-backend-windows | ||||
|         run: go build -o gitea_windows | ||||
|         env: | ||||
|           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: | ||||
|           GOOS: linux | ||||
|           GOARCH: 386 | ||||
| 
 | ||||
|   docs: | ||||
|     if: needs.files-changed.outputs.docs == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: 20 | ||||
|       - run: make deps-frontend | ||||
|       - run: make lint-md | ||||
|       - run: make docs | ||||
| 
 | ||||
|   actions: | ||||
|     if: needs.files-changed.outputs.actions == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - run: make lint-actions | ||||
							
								
								
									
										215
									
								
								.github/workflows/pull-db-tests.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										215
									
								
								.github/workflows/pull-db-tests.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,215 +0,0 @@ | |||
| name: db-tests | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   files-changed: | ||||
|     uses: ./.github/workflows/files-changed.yml | ||||
| 
 | ||||
|   test-pgsql: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     services: | ||||
|       pgsql: | ||||
|         image: postgres:12 | ||||
|         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:2023.8.31 | ||||
|         env: | ||||
|           MINIO_ROOT_USER: 123456 | ||||
|           MINIO_ROOT_PASSWORD: 12345678 | ||||
|         ports: | ||||
|           - "9000:9000" | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - name: Add hosts to /etc/hosts | ||||
|         run: '[ -e "/.dockerenv" ] || [ -e "/run/.containerenv" ] || echo "127.0.0.1 pgsql ldap minio" | sudo tee -a /etc/hosts' | ||||
|       - run: make deps-backend | ||||
|       - run: make backend | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|       - run: make test-pgsql-migration test-pgsql | ||||
|         timeout-minutes: 50 | ||||
|         env: | ||||
|           TAGS: bindata gogit | ||||
|           RACE_ENABLED: true | ||||
|           TEST_TAGS: gogit | ||||
|           TEST_LDAP: 1 | ||||
|           USE_REPO_TEST_DIR: 1 | ||||
| 
 | ||||
|   test-sqlite: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - run: make deps-backend | ||||
|       - run: make backend | ||||
|         env: | ||||
|           TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||
|       - run: make test-sqlite-migration test-sqlite | ||||
|         timeout-minutes: 50 | ||||
|         env: | ||||
|           TAGS: bindata gogit sqlite sqlite_unlock_notify | ||||
|           RACE_ENABLED: true | ||||
|           TEST_TAGS: gogit sqlite sqlite_unlock_notify | ||||
|           USE_REPO_TEST_DIR: 1 | ||||
| 
 | ||||
|   test-unit: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     services: | ||||
|       elasticsearch: | ||||
|         image: elasticsearch:7.5.0 | ||||
|         env: | ||||
|           discovery.type: single-node | ||||
|         ports: | ||||
|           - "9200:9200" | ||||
|       meilisearch: | ||||
|         image: getmeili/meilisearch:v1.2.0 | ||||
|         env: | ||||
|           MEILI_ENV: development # disable auth | ||||
|         ports: | ||||
|           - "7700:7700" | ||||
|       redis: | ||||
|         image: redis | ||||
|         options: >- # wait until redis has started | ||||
|           --health-cmd "redis-cli ping" | ||||
|           --health-interval 5s | ||||
|           --health-timeout 3s | ||||
|           --health-retries 10 | ||||
|         ports: | ||||
|           - 6379:6379 | ||||
|       minio: | ||||
|         image: bitnami/minio:2021.3.17 | ||||
|         env: | ||||
|           MINIO_ACCESS_KEY: 123456 | ||||
|           MINIO_SECRET_KEY: 12345678 | ||||
|         ports: | ||||
|           - "9000:9000" | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - name: Add hosts to /etc/hosts | ||||
|         run: '[ -e "/.dockerenv" ] || [ -e "/run/.containerenv" ] || echo "127.0.0.1 mysql elasticsearch meilisearch smtpimap" | sudo tee -a /etc/hosts' | ||||
|       - run: make deps-backend | ||||
|       - run: make backend | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|       - name: unit-tests | ||||
|         run: make unit-test-coverage test-check | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|           RACE_ENABLED: true | ||||
|           GITHUB_READ_TOKEN: ${{ secrets.GITHUB_READ_TOKEN }} | ||||
|       - name: unit-tests-gogit | ||||
|         run: make unit-test-coverage test-check | ||||
|         env: | ||||
|           TAGS: bindata gogit | ||||
|           RACE_ENABLED: true | ||||
|           GITHUB_READ_TOKEN: ${{ secrets.GITHUB_READ_TOKEN }} | ||||
| 
 | ||||
|   test-mysql: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     services: | ||||
|       mysql: | ||||
|         image: mysql:8.0 | ||||
|         env: | ||||
|           MYSQL_ALLOW_EMPTY_PASSWORD: true | ||||
|           MYSQL_DATABASE: testgitea | ||||
|         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: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - name: Add hosts to /etc/hosts | ||||
|         run: '[ -e "/.dockerenv" ] || [ -e "/run/.containerenv" ] || echo "127.0.0.1 mysql elasticsearch smtpimap" | sudo tee -a /etc/hosts' | ||||
|       - run: make deps-backend | ||||
|       - run: make backend | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|       - name: run tests | ||||
|         run: make test-mysql-migration integration-test-coverage | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|           RACE_ENABLED: true | ||||
|           USE_REPO_TEST_DIR: 1 | ||||
|           TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200" | ||||
| 
 | ||||
|   test-mssql: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     services: | ||||
|       mssql: | ||||
|         image: mcr.microsoft.com/mssql/server:2017-latest | ||||
|         env: | ||||
|           ACCEPT_EULA: Y | ||||
|           MSSQL_PID: Standard | ||||
|           SA_PASSWORD: MwantsaSecurePassword1 | ||||
|         ports: | ||||
|           - "1433:1433" | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - name: Add hosts to /etc/hosts | ||||
|         run: '[ -e "/.dockerenv" ] || [ -e "/run/.containerenv" ] || echo "127.0.0.1 mssql" | sudo tee -a /etc/hosts' | ||||
|       - run: make deps-backend | ||||
|       - run: make backend | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|       - run: make test-mssql-migration test-mssql | ||||
|         timeout-minutes: 50 | ||||
|         env: | ||||
|           TAGS: bindata | ||||
|           USE_REPO_TEST_DIR: 1 | ||||
							
								
								
									
										35
									
								
								.github/workflows/pull-docker-dryrun.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								.github/workflows/pull-docker-dryrun.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,35 +0,0 @@ | |||
| name: docker-dryrun | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   files-changed: | ||||
|     uses: ./.github/workflows/files-changed.yml | ||||
| 
 | ||||
|   regular: | ||||
|     if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: docker/setup-buildx-action@v3 | ||||
|       - uses: docker/build-push-action@v5 | ||||
|         with: | ||||
|           push: false | ||||
|           tags: gitea/gitea:linux-amd64 | ||||
| 
 | ||||
|   rootless: | ||||
|     if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: docker/setup-buildx-action@v3 | ||||
|       - uses: docker/build-push-action@v5 | ||||
|         with: | ||||
|           push: false | ||||
|           file: Dockerfile.rootless | ||||
|           tags: gitea/gitea:linux-amd64 | ||||
							
								
								
									
										32
									
								
								.github/workflows/pull-e2e-tests.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								.github/workflows/pull-e2e-tests.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,32 +0,0 @@ | |||
| name: e2e-tests | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||||
|   cancel-in-progress: true | ||||
| 
 | ||||
| jobs: | ||||
|   files-changed: | ||||
|     uses: ./.github/workflows/files-changed.yml | ||||
| 
 | ||||
|   test-e2e: | ||||
|     if: needs.files-changed.outputs.backend == 'true' || needs.files-changed.outputs.frontend == 'true' || needs.files-changed.outputs.actions == 'true' | ||||
|     needs: files-changed | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/setup-go@v4 | ||||
|         with: | ||||
|           go-version-file: go.mod | ||||
|           check-latest: true | ||||
|       - uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: 20 | ||||
|       - run: make deps-frontend frontend deps-backend | ||||
|       - run: npx playwright install --with-deps | ||||
|       - run: make test-e2e-sqlite | ||||
|         timeout-minutes: 40 | ||||
|         env: | ||||
|           USE_REPO_TEST_DIR: 1 | ||||
|  | @ -22,7 +22,7 @@ func TestMinioStorageIterator(t *testing.T) { | |||
| 	} | ||||
| 	testStorageIterator(t, setting.MinioStorageType, &setting.Storage{ | ||||
| 		MinioConfig: setting.MinioStorageConfig{ | ||||
| 			Endpoint:        "127.0.0.1:9000", | ||||
| 			Endpoint:        "minio:9000", | ||||
| 			AccessKeyID:     "123456", | ||||
| 			SecretAccessKey: "12345678", | ||||
| 			Bucket:          "gitea", | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue