123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- 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
|