Loading .gitlab-ci.yml +100 −7 Original line number Diff line number Diff line Loading @@ -13,27 +13,120 @@ include: file: '/deployment-functional-unit.yml' stages: - build-parent - build-lib - build-service - license-list - pre-package - package - test-package - post-package - deploy variables: DOCKER_BUILD_ARGS: --build-arg PARENT_IMAGE_NAME=${REDMIC_SERVER_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${REDMIC_SERVER_IMAGE_TAG} STACK: atlas LOGGING_LEVEL_ROOT: error LOGGING_LEVEL_ORG_SPRINGFRAMEWORK: error LOGGING_LEVEL_ES_REDMIC: error STATUS_CHECK_DELAY: 200 PROJECT_PARENT_NAME: atlas .maven-build-microservice: variables: DIND_IMAGE_NAME: docker DIND_IMAGE_TAG: dind DOCKER_HOST: tcp://docker:2375 POSTGRES_IMAGE_TAG: 10.13-alpine POSTGRES_DB: redmic POSTGRES_USER: postgres POSTGRES_PASSWORD: password OAUTH_SERVER: http://docker:8081 OAUTH_IMAGE_NAME: registry.gitlab.com/redmic-project/server/oauth/master OAUTH_IMAGE_TAG: latest services: - ${DIND_IMAGE_NAME}:${DIND_IMAGE_TAG} before_script: &maven-build-microservice-before-script - > mkdir -p sql; chmod -R 755 sql; docker network create test - > docker run -d --rm --name postgres \ -p 5432:5432 \ --network test \ --network-alias db \ -e POSTGRES_DB \ -e POSTGRES_USER \ -e POSTGRES_PASSWORD \ -v $(pwd)/sql:/sql \ postgres:${POSTGRES_IMAGE_TAG} - > curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/oauth_database_structure_test.sql \ "https://gitlab.com/api/v4/snippets/${OAUTH_DATABASE_STRUCTURE_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/oauth_database_data_test.sql \ "https://gitlab.com/api/v4/snippets/${OAUTH_DATABASE_DATA_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/user_database_structure_test.sql \ "https://gitlab.com/api/v4/snippets/${USER_DATABASE_STRUCTURE_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/user_database_data_test.sql \ "https://gitlab.com/api/v4/snippets/${USER_DATABASE_DATA_TEST_SNIPPET_ID}/raw" - > RETRIES=10; until docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -c 'select 1' > /dev/null 2>&1 || [ $RETRIES -eq 0 ]; do RETRIES=$((RETRIES-=1)); echo "Waiting for postgres server, ${RETRIES} remaining attempts..."; sleep 1; done; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/oauth_database_structure_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -c "ALTER ROLE ${SPRING_DATASOURCE_USERNAME} WITH PASSWORD '${SPRING_DATASOURCE_PASSWORD}'"; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/oauth_database_data_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/user_database_structure_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/user_database_data_test.sql - > docker run -d --rm --name oauth \ -p 8081:8081 \ --network test \ -e SPRING_PROFILES_ACTIVE=dev \ -e SPRING_DATASOURCE_USERNAME \ -e SPRING_DATASOURCE_PASSWORD \ ${OAUTH_IMAGE_NAME}:${OAUTH_IMAGE_TAG} after_script: - rm -rf .m2/repository/es - docker stop oauth postgres maven-build-view: variables: GIT_SUBMODULE_STRATEGY: normal before_script: - *maven-build-microservice-before-script - mvn -f elasticsearch-cluster-runner compile exec:java -Dexec.args="-numOfNode 1 -clusterName ${ELASTIC_CLUSTERNAME}" & .docker-build: variables: COMPOSE_FILE_NAME: docker-compose.atlas.build.yml DBLD_PARENT_IMAGE_NAME: ${REDMIC_SERVER_IMAGE_NAME} DBLD_PARENT_IMAGE_TAG: ${REDMIC_SERVER_IMAGE_TAG} .deploy: variables: STACK: atlas .deploy-commands: environment: url: https://${PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}/commands Loading .gitmodules +1 −1 Original line number Diff line number Diff line [submodule "elasticsearch-cluster-runner"] path = elasticsearch-cluster-runner url = https://github.com/codelibs/elasticsearch-cluster-runner.git branch = master branch = 6.5.x ignore = dirty Dockerfile +2 −6 Original line number Diff line number Diff line Loading @@ -6,11 +6,7 @@ FROM ${PARENT_IMAGE_NAME}:${PARENT_IMAGE_TAG} COPY /*/dist/*.jar ./ ARG PORT=8080 EXPOSE ${PORT} HEALTHCHECK \ --interval=30s \ --timeout=15s \ --start-period=3m \ --retries=10 \ CMD wget --spider -q http://localhost:${PORT}/api/${UNIT_NAME}/${MICROSERVICE_PATH}/actuator/health ENV PORT=${PORT} atlas-commands/src/main/resources/application-dev.properties +5 −5 Original line number Diff line number Diff line spring.kafka.bootstrap-servers=redmic.net:19092 spring.kafka.bootstrap-servers=localhost:19092 spring.kafka.properties.schema.registry.url=http://redmic.net:18081 spring.kafka.properties.schema.registry.url=http://localhost:18081 stream.application.id=${spring.kafka.client-id} broker.state.store.config.dir=/home/REDMIC/kafka broker.state.store.config.dir=/tmp/REDMIC/kafka #oauth oauth.server=http://redmic.net:8081 oauth.server=http://oauth:8081 #Local private property.path.media_storage.LOCAL_PRIVATE_BASE_PATH=/home/REDMIC/MEDIA_STORAGE property.path.media_storage.LOCAL_PRIVATE_BASE_PATH=/tmp/REDMIC/MEDIA_STORAGE atlas-commands/src/main/resources/application-test.properties +14 −2 Original line number Diff line number Diff line Loading @@ -6,16 +6,28 @@ stream.application.id=${random.value} broker.state.store.config.dir=/tmp/kafka #sobrescribe timeout para entorno test rest.eventsource.timeout.ms=400000 #desactiva logs logging.level.root=OFF logging.level.org.springframework=OFF logging.level.es.redmic=OFF #oauth oauth.server=http://redmic.net:8081 oauth.server=http://localhost:8081 #TEST USERS test.user.ADMINISTRATOR=administrator@redmic.es test.user.OAG=oag@redmic.es #TODO: eliminar cuando se cambie OAG por OPERATOR en librería test test.user.OAG=operator@redmic.es test.user.COLLABORATOR=collaborator@redmic.es test.user.USER=user@redmic.es test.user.PASSWORD=test.user.PASSWORD test.oauth.AUTHORIZATION=test.oauth.AUTHORIZATION test.oauth.GETTOKENPATH=/api/oauth/token #Local private property.path.media_storage.LOCAL_PRIVATE_BASE_PATH=/home/REDMIC/MEDIA_STORAGE property.path.media_storage.LOCAL_PRIVATE_BASE_PATH=/tmp/REDMIC/MEDIA_STORAGE Loading
.gitlab-ci.yml +100 −7 Original line number Diff line number Diff line Loading @@ -13,27 +13,120 @@ include: file: '/deployment-functional-unit.yml' stages: - build-parent - build-lib - build-service - license-list - pre-package - package - test-package - post-package - deploy variables: DOCKER_BUILD_ARGS: --build-arg PARENT_IMAGE_NAME=${REDMIC_SERVER_IMAGE_NAME} --build-arg PARENT_IMAGE_TAG=${REDMIC_SERVER_IMAGE_TAG} STACK: atlas LOGGING_LEVEL_ROOT: error LOGGING_LEVEL_ORG_SPRINGFRAMEWORK: error LOGGING_LEVEL_ES_REDMIC: error STATUS_CHECK_DELAY: 200 PROJECT_PARENT_NAME: atlas .maven-build-microservice: variables: DIND_IMAGE_NAME: docker DIND_IMAGE_TAG: dind DOCKER_HOST: tcp://docker:2375 POSTGRES_IMAGE_TAG: 10.13-alpine POSTGRES_DB: redmic POSTGRES_USER: postgres POSTGRES_PASSWORD: password OAUTH_SERVER: http://docker:8081 OAUTH_IMAGE_NAME: registry.gitlab.com/redmic-project/server/oauth/master OAUTH_IMAGE_TAG: latest services: - ${DIND_IMAGE_NAME}:${DIND_IMAGE_TAG} before_script: &maven-build-microservice-before-script - > mkdir -p sql; chmod -R 755 sql; docker network create test - > docker run -d --rm --name postgres \ -p 5432:5432 \ --network test \ --network-alias db \ -e POSTGRES_DB \ -e POSTGRES_USER \ -e POSTGRES_PASSWORD \ -v $(pwd)/sql:/sql \ postgres:${POSTGRES_IMAGE_TAG} - > curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/oauth_database_structure_test.sql \ "https://gitlab.com/api/v4/snippets/${OAUTH_DATABASE_STRUCTURE_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/oauth_database_data_test.sql \ "https://gitlab.com/api/v4/snippets/${OAUTH_DATABASE_DATA_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/user_database_structure_test.sql \ "https://gitlab.com/api/v4/snippets/${USER_DATABASE_STRUCTURE_TEST_SNIPPET_ID}/raw"; curl -s --header "PRIVATE-TOKEN: ${GITLAB_TOKEN_READ_API}" \ -o sql/user_database_data_test.sql \ "https://gitlab.com/api/v4/snippets/${USER_DATABASE_DATA_TEST_SNIPPET_ID}/raw" - > RETRIES=10; until docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -c 'select 1' > /dev/null 2>&1 || [ $RETRIES -eq 0 ]; do RETRIES=$((RETRIES-=1)); echo "Waiting for postgres server, ${RETRIES} remaining attempts..."; sleep 1; done; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/oauth_database_structure_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -c "ALTER ROLE ${SPRING_DATASOURCE_USERNAME} WITH PASSWORD '${SPRING_DATASOURCE_PASSWORD}'"; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/oauth_database_data_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/user_database_structure_test.sql; docker exec postgres psql -h localhost \ -d redmic \ -U ${POSTGRES_USER} \ -f /sql/user_database_data_test.sql - > docker run -d --rm --name oauth \ -p 8081:8081 \ --network test \ -e SPRING_PROFILES_ACTIVE=dev \ -e SPRING_DATASOURCE_USERNAME \ -e SPRING_DATASOURCE_PASSWORD \ ${OAUTH_IMAGE_NAME}:${OAUTH_IMAGE_TAG} after_script: - rm -rf .m2/repository/es - docker stop oauth postgres maven-build-view: variables: GIT_SUBMODULE_STRATEGY: normal before_script: - *maven-build-microservice-before-script - mvn -f elasticsearch-cluster-runner compile exec:java -Dexec.args="-numOfNode 1 -clusterName ${ELASTIC_CLUSTERNAME}" & .docker-build: variables: COMPOSE_FILE_NAME: docker-compose.atlas.build.yml DBLD_PARENT_IMAGE_NAME: ${REDMIC_SERVER_IMAGE_NAME} DBLD_PARENT_IMAGE_TAG: ${REDMIC_SERVER_IMAGE_TAG} .deploy: variables: STACK: atlas .deploy-commands: environment: url: https://${PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}/commands Loading
.gitmodules +1 −1 Original line number Diff line number Diff line [submodule "elasticsearch-cluster-runner"] path = elasticsearch-cluster-runner url = https://github.com/codelibs/elasticsearch-cluster-runner.git branch = master branch = 6.5.x ignore = dirty
Dockerfile +2 −6 Original line number Diff line number Diff line Loading @@ -6,11 +6,7 @@ FROM ${PARENT_IMAGE_NAME}:${PARENT_IMAGE_TAG} COPY /*/dist/*.jar ./ ARG PORT=8080 EXPOSE ${PORT} HEALTHCHECK \ --interval=30s \ --timeout=15s \ --start-period=3m \ --retries=10 \ CMD wget --spider -q http://localhost:${PORT}/api/${UNIT_NAME}/${MICROSERVICE_PATH}/actuator/health ENV PORT=${PORT}
atlas-commands/src/main/resources/application-dev.properties +5 −5 Original line number Diff line number Diff line spring.kafka.bootstrap-servers=redmic.net:19092 spring.kafka.bootstrap-servers=localhost:19092 spring.kafka.properties.schema.registry.url=http://redmic.net:18081 spring.kafka.properties.schema.registry.url=http://localhost:18081 stream.application.id=${spring.kafka.client-id} broker.state.store.config.dir=/home/REDMIC/kafka broker.state.store.config.dir=/tmp/REDMIC/kafka #oauth oauth.server=http://redmic.net:8081 oauth.server=http://oauth:8081 #Local private property.path.media_storage.LOCAL_PRIVATE_BASE_PATH=/home/REDMIC/MEDIA_STORAGE property.path.media_storage.LOCAL_PRIVATE_BASE_PATH=/tmp/REDMIC/MEDIA_STORAGE
atlas-commands/src/main/resources/application-test.properties +14 −2 Original line number Diff line number Diff line Loading @@ -6,16 +6,28 @@ stream.application.id=${random.value} broker.state.store.config.dir=/tmp/kafka #sobrescribe timeout para entorno test rest.eventsource.timeout.ms=400000 #desactiva logs logging.level.root=OFF logging.level.org.springframework=OFF logging.level.es.redmic=OFF #oauth oauth.server=http://redmic.net:8081 oauth.server=http://localhost:8081 #TEST USERS test.user.ADMINISTRATOR=administrator@redmic.es test.user.OAG=oag@redmic.es #TODO: eliminar cuando se cambie OAG por OPERATOR en librería test test.user.OAG=operator@redmic.es test.user.COLLABORATOR=collaborator@redmic.es test.user.USER=user@redmic.es test.user.PASSWORD=test.user.PASSWORD test.oauth.AUTHORIZATION=test.oauth.AUTHORIZATION test.oauth.GETTOKENPATH=/api/oauth/token #Local private property.path.media_storage.LOCAL_PRIVATE_BASE_PATH=/home/REDMIC/MEDIA_STORAGE property.path.media_storage.LOCAL_PRIVATE_BASE_PATH=/tmp/REDMIC/MEDIA_STORAGE