коммит произвёл
GitHub
родитель
58d362e0c8
Коммит
7f6b43a15f
126
.gitlab-ci.yml
Обычный файл
126
.gitlab-ci.yml
Обычный файл
@@ -0,0 +1,126 @@
|
|||||||
|
stages:
|
||||||
|
# - test
|
||||||
|
# - build
|
||||||
|
# - publish
|
||||||
|
- create-vars
|
||||||
|
- trigger-build-ee
|
||||||
|
|
||||||
|
include:
|
||||||
|
- project: mattermost/ci/mattermost-server
|
||||||
|
ref: master
|
||||||
|
file: private.yml
|
||||||
|
# - local: .gitlab-ci/test.yml
|
||||||
|
# - local: .gitlab-ci/test-schema.yml
|
||||||
|
|
||||||
|
variables:
|
||||||
|
ONLY_BUILD: "yes"
|
||||||
|
ONLY_TEST: "no"
|
||||||
|
|
||||||
|
empty:
|
||||||
|
stage: create-vars
|
||||||
|
script:
|
||||||
|
- echo "empty"
|
||||||
|
|
||||||
|
#lint:
|
||||||
|
# image: golangci/golangci-lint:v1.31.0
|
||||||
|
# stage: .pre
|
||||||
|
# script:
|
||||||
|
# - GO111MODULE=off GOBIN=$PWD/bin go get -u github.com/mattermost/mattermost-govet
|
||||||
|
# - make config-reset
|
||||||
|
# - make check-style #todo MM_VET_OPENSPEC_PATH='$CI_PROJECT_DIR/mattermost-api-reference/v4/html/static/mattermost-openapi-v4.yaml'
|
||||||
|
# timeout: 60 mins
|
||||||
|
# rules:
|
||||||
|
# - if: '$ONLY_BUILD != "yes"'
|
||||||
|
#
|
||||||
|
#layers:
|
||||||
|
# image: mattermost/mattermost-build-server:20201023_golang-1.14.6
|
||||||
|
# stage: .pre
|
||||||
|
# script:
|
||||||
|
# - make store-layers
|
||||||
|
# - if [[ -n $(git status --porcelain) ]]; then echo "Please update the store layers using make store-layers"; exit 1; fi
|
||||||
|
# - git reset --hard
|
||||||
|
# - make app-layers
|
||||||
|
# - if [[ -n $(git status --porcelain) ]]; then echo "Please update the app layers using make app-layers"; exit 1; fi
|
||||||
|
# - git reset --hard
|
||||||
|
# rules:
|
||||||
|
# - if: '$ONLY_BUILD != "yes"'
|
||||||
|
#
|
||||||
|
#test-postgres:
|
||||||
|
# extends: .test
|
||||||
|
# tags:
|
||||||
|
# - docker
|
||||||
|
# variables:
|
||||||
|
# MM_SQLSETTINGS_DATASOURCE: "postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10"
|
||||||
|
# MM_SQLSETTINGS_DRIVERNAME: postgres
|
||||||
|
# rules:
|
||||||
|
# - if: '$ONLY_BUILD != "yes"'
|
||||||
|
#
|
||||||
|
#test-mysql:
|
||||||
|
# extends: .test
|
||||||
|
# tags:
|
||||||
|
# - docker
|
||||||
|
# variables:
|
||||||
|
# MM_SQLSETTINGS_DATASOURCE: "mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8&multiStatements=true"
|
||||||
|
# MM_SQLSETTINGS_DRIVERNAME: mysql
|
||||||
|
# rules:
|
||||||
|
# - if: '$ONLY_BUILD != "yes"'
|
||||||
|
#
|
||||||
|
#test-schema-postgres:
|
||||||
|
# extends: .test-schema
|
||||||
|
# tags:
|
||||||
|
# - docker
|
||||||
|
# script:
|
||||||
|
# - echo "Creating databases"
|
||||||
|
# - docker-compose --no-ansi exec -T postgres sh -c 'exec echo "CREATE DATABASE migrated; CREATE DATABASE latest;" | exec psql -U mmuser mattermost_test'
|
||||||
|
# - echo "Importing postgres dump from version 5.0"
|
||||||
|
# - docker-compose --no-ansi exec -T postgres psql -U mmuser -d migrated < ../scripts/mattermost-postgresql-5.0.sql
|
||||||
|
# - >
|
||||||
|
# docker run -d -it --name server-postgres --net build_mm-test \
|
||||||
|
# --env-file="dotenv/test-schema-validation.env" \
|
||||||
|
# --env MM_SQLSETTINGS_DATASOURCE="postgres://mmuser:mostest@postgres:5432/migrated?sslmode=disable&connect_timeout=10" \
|
||||||
|
# --env MM_SQLSETTINGS_DRIVERNAME=postgres \
|
||||||
|
# -v $CI_PROJECT_DIR:/mattermost-server \
|
||||||
|
# -w /mattermost-server \
|
||||||
|
# mattermost/mattermost-build-server:20201023_golang-1.14.6 \
|
||||||
|
# bash -c "ulimit -n 8096; make ARGS='version' run-cli && make MM_SQLSETTINGS_DATASOURCE='postgres://mmuser:mostest@postgres:5432/latest?sslmode=disable&connect_timeout=10' ARGS='version' run-cli"
|
||||||
|
# - docker logs -f server-postgres
|
||||||
|
# - echo "Generating dump"
|
||||||
|
# - docker-compose --no-ansi exec -T postgres pg_dump --schema-only -d migrated -U mmuser > migrated.sql
|
||||||
|
# - docker-compose --no-ansi exec -T postgres pg_dump --schema-only -d latest -U mmuser > latest.sql
|
||||||
|
# - echo "Removing databases created for db comparison"
|
||||||
|
# - docker-compose --no-ansi exec -T postgres sh -c 'exec echo "DROP DATABASE migrated; DROP DATABASE latest;" | exec psql -U mmuser mattermost_test'
|
||||||
|
# - echo "Generating diff"
|
||||||
|
# - diff migrated.sql latest.sql > diff.txt && echo "Both schemas are same" || (echo "Schema mismatch" && cat diff.txt && exit 1)
|
||||||
|
# rules:
|
||||||
|
# - if: '$ONLY_BUILD != "yes"'
|
||||||
|
#
|
||||||
|
#test-schema-mysql:
|
||||||
|
# extends: .test-schema
|
||||||
|
# tags:
|
||||||
|
# - docker
|
||||||
|
# script:
|
||||||
|
# - echo "Creating databases"
|
||||||
|
# - docker-compose --no-ansi exec -T mysql mysql -uroot -pmostest -e "CREATE DATABASE migrated; CREATE DATABASE latest; GRANT ALL PRIVILEGES ON migrated.* TO mmuser; GRANT ALL PRIVILEGES ON latest.* TO mmuser"
|
||||||
|
# - echo "Importing mysql dump from version 5.0"
|
||||||
|
# - docker-compose --no-ansi exec -T mysql mysql -D migrated -uroot -pmostest < ../scripts/mattermost-mysql-5.0.sql
|
||||||
|
# - >
|
||||||
|
# docker run -d -it --name server-mysql --net build_mm-test \
|
||||||
|
# --env-file="dotenv/test-schema-validation.env" \
|
||||||
|
# --env MM_SQLSETTINGS_DATASOURCE="mmuser:mostest@tcp(mysql:3306)/migrated?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s" \
|
||||||
|
# --env MM_SQLSETTINGS_DRIVERNAME=mysql \
|
||||||
|
# -v $CI_PROJECT_DIR:/mattermost-server \
|
||||||
|
# -w /mattermost-server \
|
||||||
|
# mattermost/mattermost-build-server:20201023_golang-1.14.6 \
|
||||||
|
# bash -c "ulimit -n 8096; make ARGS='version' run-cli && make MM_SQLSETTINGS_DATASOURCE='mmuser:mostest@tcp(mysql:3306)/latest?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s' ARGS='version' run-cli"
|
||||||
|
# - docker logs -f server-mysql
|
||||||
|
# - echo "Ignoring known MySQL mismatch 'ChannelMembers.SchemeGuest'"
|
||||||
|
# - docker-compose --no-ansi exec -T mysql mysql -D migrated -uroot -pmostest -e "ALTER TABLE ChannelMembers DROP COLUMN SchemeGuest;" || echo "drop failed"
|
||||||
|
# - docker-compose --no-ansi exec -T mysql mysql -D latest -uroot -pmostest -e "ALTER TABLE ChannelMembers DROP COLUMN SchemeGuest;" || echo "drop failed"
|
||||||
|
# - echo "Generating dump"
|
||||||
|
# - docker-compose --no-ansi exec -T mysql mysqldump --skip-opt --no-data --compact -u root -pmostest migrated > migrated.sql
|
||||||
|
# - docker-compose --no-ansi exec -T mysql mysqldump --skip-opt --no-data --compact -u root -pmostest latest > latest.sql
|
||||||
|
# - echo "Removing databases created for db comparison"
|
||||||
|
# - docker-compose --no-ansi exec -T mysql mysql -uroot -pmostest -e 'DROP DATABASE migrated; DROP DATABASE latest'
|
||||||
|
# - echo "Generating diff"
|
||||||
|
# rules:
|
||||||
|
# - if: '$ONLY_BUILD != "yes"'
|
||||||
23
.gitlab-ci/test-schema.yml
Обычный файл
23
.gitlab-ci/test-schema.yml
Обычный файл
@@ -0,0 +1,23 @@
|
|||||||
|
.test-schema:
|
||||||
|
stage: test
|
||||||
|
image: mattermost/mattermost-build-docker:20201023_19.03.12
|
||||||
|
variables:
|
||||||
|
DOCKER_TLS_CERTDIR: ""
|
||||||
|
DOCKER_HOST: tcp://docker:2375/
|
||||||
|
DOCKER_DRIVER: overlay2
|
||||||
|
DOCKER_CONTENT_TRUST: 0
|
||||||
|
DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE: ""
|
||||||
|
services:
|
||||||
|
- name: docker:19.03.12-dind
|
||||||
|
alias: dind
|
||||||
|
before_script:
|
||||||
|
- docker ps
|
||||||
|
|
||||||
|
- ulimit -n 8096
|
||||||
|
- cd build
|
||||||
|
- docker-compose --no-ansi run --rm start_dependencies
|
||||||
|
- cat ../tests/test-data.ldif | docker-compose --no-ansi exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'
|
||||||
|
- docker-compose --no-ansi exec -T minio sh -c 'mkdir -p /data/mattermost-test'
|
||||||
|
- sleep 5
|
||||||
|
- docker run --net build_mm-test appropriate/curl:latest sh -c "until curl --max-time 5 --output - http://mysql:3306; do echo waiting for mysql; sleep 5; done;"
|
||||||
|
- docker run --net build_mm-test appropriate/curl:latest sh -c "until curl --max-time 5 --output - http://elasticsearch:9200; do echo waiting for elasticsearch; sleep 5; done;"
|
||||||
53
.gitlab-ci/test.yml
Обычный файл
53
.gitlab-ci/test.yml
Обычный файл
@@ -0,0 +1,53 @@
|
|||||||
|
.test:
|
||||||
|
stage: test
|
||||||
|
image: mattermost/mattermost-build-docker:20201023_19.03.12
|
||||||
|
variables:
|
||||||
|
DOCKER_TLS_CERTDIR: ""
|
||||||
|
DOCKER_HOST: tcp://docker:2375/
|
||||||
|
DOCKER_DRIVER: overlay2
|
||||||
|
DOCKER_CONTENT_TRUST: 0
|
||||||
|
DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE: ""
|
||||||
|
|
||||||
|
MM_SQLSETTINGS_DATASOURCE: "postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable&connect_timeout=10"
|
||||||
|
MM_SQLSETTINGS_DRIVERNAME: postgres
|
||||||
|
services:
|
||||||
|
- name: docker:19.03.12-dind
|
||||||
|
alias: dind
|
||||||
|
script:
|
||||||
|
- mkdir -p client/plugins
|
||||||
|
- mkdir -p build/test-results
|
||||||
|
- mkdir -p build/logs
|
||||||
|
- cd build
|
||||||
|
- docker-compose --no-ansi run --rm start_dependencies
|
||||||
|
- cat ../tests/test-data.ldif | docker-compose --no-ansi exec -T openldap bash -c 'ldapadd -x -D "cn=admin,dc=mm,dc=test,dc=com" -w mostest'
|
||||||
|
- docker-compose --no-ansi exec -T minio sh -c 'mkdir -p /data/mattermost-test'
|
||||||
|
- sleep 5
|
||||||
|
- docker run --net build_mm-test appropriate/curl:latest sh -c "until curl --max-time 5 --output - http://mysql:3306; do echo waiting for mysql; sleep 5; done;"
|
||||||
|
- docker run --net build_mm-test appropriate/curl:latest sh -c "until curl --max-time 5 --output - http://elasticsearch:9200; do echo waiting for elasticsearch; sleep 5; done;"
|
||||||
|
- ulimit -n 8096
|
||||||
|
# todo: remove setting GOBIN here, once circleci can be removed (see build/dotenv/test.env)
|
||||||
|
- >
|
||||||
|
time docker run -it -d --name server --net build_mm-test \
|
||||||
|
--env-file=dotenv/test.env \
|
||||||
|
--env MM_SQLSETTINGS_DATASOURCE=$MM_SQLSETTINGS_DATASOURCE \
|
||||||
|
--env MM_SQLSETTINGS_DRIVERNAME=$MM_SQLSETTINGS_DRIVERNAME \
|
||||||
|
--env GOBIN=$PWD/bin \
|
||||||
|
-v $CI_PROJECT_DIR:/mattermost-server \
|
||||||
|
-w /mattermost-server \
|
||||||
|
mattermost/mattermost-build-server:20201023_golang-1.14.6 \
|
||||||
|
bash -c "ulimit -n 8096; make test-server BUILD_NUMBER=$CI_COMMIT_SHA TESTFLAGS= TESTFLAGSEE=;"
|
||||||
|
- docker logs -f server
|
||||||
|
- docker-compose logs --tail="all" -t --no-color > logs/docker-compose_logs
|
||||||
|
- docker ps -a --no-trunc > logs/docker_ps
|
||||||
|
- docker stats -a --no-stream > logs/docker_stats
|
||||||
|
- tar -czvf logs/docker_logs.tar.gz logs/docker-compose_logs logs/docker_ps logs/docker_stats
|
||||||
|
- cp ../report.xml test-results
|
||||||
|
- DOCKER_EXIT_CODE=$(docker inspect server --format='{{.State.ExitCode}}')
|
||||||
|
- echo $DOCKER_EXIT_CODE
|
||||||
|
- exit $DOCKER_EXIT_CODE
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- build/logs
|
||||||
|
reports:
|
||||||
|
junit: build/test-results/report.xml
|
||||||
|
expire_in: 7 days
|
||||||
Ссылка в новой задаче
Block a user