mirror of https://github.com/go-gitea/gitea.git
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>pull/24506/head^2
parent
ad8631c069
commit
f7f0782132
@ -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
|
@ -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
|
@ -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
|
Loading…
Reference in New Issue