Commit c76bea45 authored by Noel Alonso's avatar Noel Alonso
Browse files

Actualiza estructura en base a plantillas

Añade arranque de dependiencias en maven-build
parent 7b7806d3
Loading
Loading
Loading
Loading
+77 −15
Original line number Diff line number Diff line
@@ -11,32 +11,94 @@ include:
  - project: 'redmic-project/gitlab-ci-templates'
    ref: master
    file: '/deployment.yml'
  - project: 'redmic-project/gitlab-ci-templates'
    ref: master
    file: '/deployment-custom-image.yml'

stages:
  - build
  - 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: user
  PROJECT_PARENT_NAME: user

.deploy:
  script:
.maven-build:
  variables:
    POSTGRES_IMAGE_TAG: 10.13-alpine
    POSTGRES_DB: redmic
    POSTGRES_USER: ${SPRING_DATASOURCE_USERNAME}
    POSTGRES_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
    PGPASSWORD: ${SPRING_DATASOURCE_PASSWORD}
    OAUTH_IMAGE_NAME: registry.gitlab.com/redmic-project/server/oauth
    OAUTH_IMAGE_TAG: latest
  before_script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE} SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME}
      SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD} OAUTH_CLIENT_ID=${OAUTH_CLIENT_ID}
      OAUTH_CLIENT_SECRET=${OAUTH_CLIENT_SECRET} RECAPTCHA_SECRET=${RECAPTCHA_SECRET} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    url: https://${PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}
      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";
    - >
      docker exec postgres psql -h localhost
        -d redmic
        -U ${SPRING_DATASOURCE_USERNAME}
        -f /sql/oauth_database_structure_test.sql;
      docker exec postgres psql -h localhost
        -d redmic
        -U ${SPRING_DATASOURCE_USERNAME}
        -f /sql/oauth_database_data_test.sql;
      docker exec postgres psql -h localhost
        -d redmic
        -U ${SPRING_DATASOURCE_USERNAME}
        -f /sql/user_database_structure_test.sql;
      docker exec postgres psql -h localhost
        -d redmic
        -U ${SPRING_DATASOURCE_USERNAME}
        -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:
    - docker stop oauth postgres

.deploy-development:
.docker-build:
  variables:
    SPRING_PROFILES_ACTIVE: pre
    DBLD_PARENT_IMAGE_NAME: ${REDMIC_SERVER_IMAGE_NAME}
    DBLD_PARENT_IMAGE_TAG: ${REDMIC_SERVER_IMAGE_TAG}

.deploy-production:
.deploy:
  variables:
    SPRING_PROFILES_ACTIVE: prod
    STACK: ${PROJECT_PARENT_NAME}
    SERVICES_TO_CHECK: ${PROJECT_PARENT_NAME}_${CI_PROJECT_NAME}
  environment:
    url: https://${PUBLIC_HOSTNAME}/api/${CI_PROJECT_NAME}