The tests on migration tests failed but CI reports successfully https://github.com/go-gitea/gitea/actions/runs/7364373807/job/20044685969#step:8:141 This PR will fix the bug on migration v283 and also the CI hidden behaviour. The reason is on the Makefile `GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GO) test $(GOTESTFLAGS) -tags='$(TEST_TAGS)' $(MIGRATE_TEST_PACKAGES)` will return the error exit code. But `for pkg in $(shell $(GO) list code.gitea.io/gitea/models/migrations/...); do \ GITEA_ROOT="$(CURDIR)" GITEA_CONF=tests/mysql.ini $(GO) test $(GOTESTFLAGS) -tags '$(TEST_TAGS)' $$pkg; \ done` will not work. This also fix #29602
		
			
				
	
	
		
			226 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			226 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| 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@v5
 | |
|         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
 | |
|       - name: run migration tests
 | |
|         run: make test-pgsql-migration
 | |
|       - name: run tests
 | |
|         run: make 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@v5
 | |
|         with:
 | |
|           go-version-file: go.mod
 | |
|           check-latest: true
 | |
|       - run: make deps-backend
 | |
|       - run: make backend
 | |
|         env:
 | |
|           TAGS: bindata gogit sqlite sqlite_unlock_notify
 | |
|       - name: run migration tests
 | |
|         run: make test-sqlite-migration
 | |
|       - name: run tests
 | |
|         run: make 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@v5
 | |
|         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@v5
 | |
|         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 migration tests
 | |
|         run: make test-mysql-migration
 | |
|       - name: run tests
 | |
|         run: make 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@v5
 | |
|         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
 | |
|       - name: run tests
 | |
|         run: make test-mssql
 | |
|         timeout-minutes: 50
 | |
|         env:
 | |
|           TAGS: bindata
 | |
|           USE_REPO_TEST_DIR: 1
 |