Commit 5208e42d authored by Илья Рассадин's avatar Илья Рассадин
Browse files

Merge branch 'ir-ce-ci' into 'master'

Set up CI/CD pipeline

See merge request boilerplate/ci!4
parents 05ff35b6 6792dd59
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -8,7 +8,12 @@
    url: http://wireframes.cetera.ru/$CI_PROJECT_NAME/
  script:
    - rsync -v -e ssh /dev/null root@vps4.cetera.su::wireframe/$CI_PROJECT_NAME/
  - for item in ${LAYOUTS[*]}; do echo $item; rsync -avz --delete --ignore-times --numeric-ids --chown=33:33 -e ssh $CI_PROJECT_DIR/working/$item/dist/ vps4.cetera.su::wireframe/$CI_PROJECT_NAME/$item/; done
    - |
      for item in ${LAYOUTS[*]}; do
        echo $item
        rsync -avz --delete --ignore-times --numeric-ids --chown=33:33 -e ssh \
          $CI_PROJECT_DIR/working/$item/dist/ vps4.cetera.su::wireframe/$CI_PROJECT_NAME/$item/
      done
  only:
    refs:
      - master
+16 −6
Original line number Diff line number Diff line
@@ -8,7 +8,9 @@
      # Proceed only if DOC_ROOT_NAME is set, non-empty, and differs from DEFAULT_DOC_ROOT_NAME
      #  and $DEFAULT_DOC_ROOT_NAME directory exists in current working directory
      #  and $DOC_ROOT_NAME directory not exists
      if [[ -n "${DOC_ROOT_NAME+x}" && -n "$DOC_ROOT_NAME" && "$DOC_ROOT_NAME" != "$DEFAULT_DOC_ROOT_NAME" && -d "$DEFAULT_DOC_ROOT_NAME" && ! -e "$DOC_ROOT_NAME" ]]; then
      if [[ -n "${DOC_ROOT_NAME+x}" && -n "$DOC_ROOT_NAME" \
          && "$DOC_ROOT_NAME" != "$DEFAULT_DOC_ROOT_NAME" \
          && -d "$DEFAULT_DOC_ROOT_NAME" && ! -e "$DOC_ROOT_NAME" ]]; then
          mv "$DEFAULT_DOC_ROOT_NAME" "$DOC_ROOT_NAME"
          echo "renamed www to $DOC_ROOT_NAME"
      fi
@@ -53,11 +55,16 @@
      # Proceed only if DOC_ROOT_NAME is set, non-empty, and differs from DEFAULT_DOC_ROOT_NAME
      #  and $DEFAULT_DOC_ROOT_NAME directory exists in current working directory
      #  and $DOC_ROOT_NAME directory not exists
      if [[ -n "${DOC_ROOT_NAME+x}" && -n "$DOC_ROOT_NAME" && "$DOC_ROOT_NAME" != "$DEFAULT_DOC_ROOT_NAME" && -d "$DEFAULT_DOC_ROOT_NAME" && ! -e "$DOC_ROOT_NAME" ]]; then
      if [[ -n "${DOC_ROOT_NAME+x}" && -n "$DOC_ROOT_NAME" \
          && "$DOC_ROOT_NAME" != "$DEFAULT_DOC_ROOT_NAME" \
          && -d "$DEFAULT_DOC_ROOT_NAME" && ! -e "$DOC_ROOT_NAME" ]]; then
          mv "$DEFAULT_DOC_ROOT_NAME" "$DOC_ROOT_NAME"
          echo "renamed www to $DOC_ROOT_NAME"
      fi
    - rsync --links --safe-links -avz --chown=$user:$group -e "ssh $SSH_OPTS" --filter="merge rsync-filter-std" --filter="merge $PROJECT_FILTER" $RSYNC_PARAMS $CI_PROJECT_DIR/ $DEPLOY_HOST_PATH/
    - |
      rsync --links --safe-links -avz --chown=$user:$group -e "ssh $SSH_OPTS" \
        --filter="merge rsync-filter-std" --filter="merge $PROJECT_FILTER" \
        $RSYNC_PARAMS $CI_PROJECT_DIR/ $DEPLOY_HOST_PATH/
  after_script:
    - |
      if [[ $PROJECT_CMS_TYPE = bitrix && $SKIP_SETTINGS_EXTRA_DEPLOYMENT != true ]]; then
@@ -76,7 +83,10 @@
deploy_autotests_to_server:
  extends: .before_deploy_code
  script:
    - rsync -avz --delete --chown=www-data:www-data -e "ssh -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -i $HOME/.ssh/deploy.key" $CI_PROJECT_DIR/autotests/ root@vps6.cetera.ru::www/autotest.cetera.su/projects/$CI_PROJECT_NAME/;
    - |
      rsync -avz --delete --chown=www-data:www-data \
        -e "ssh -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -i $HOME/.ssh/deploy.key" \
        $CI_PROJECT_DIR/autotests/ root@vps6.cetera.ru::www/autotest.cetera.su/projects/$CI_PROJECT_NAME/
  only:
    refs:
      - master
+6 −5
Original line number Diff line number Diff line
.upload_composer_files: &upload_composer_files |
  if [ -d "$CI_PROJECT_DIR/$COMPOSER_ARTIFACTS_DIR" ];
  then
    echo "RUNNING rsync -L -avz $RSYNC_PARAMS --chown=$user:$group -e "ssh $SSH_OPTS" $CI_PROJECT_DIR/$COMPOSER_ARTIFACTS_DIR $DEPLOY_HOST_PATH/$COMPOSER_SERVER_DIR;"
    echo "RUNNING rsync -L -avz $RSYNC_PARAMS" \
      "--chown=$user:$group -e ssh" \
      "$CI_PROJECT_DIR/$COMPOSER_ARTIFACTS_DIR $DEPLOY_HOST_PATH/$COMPOSER_SERVER_DIR"
    rsync -L -avz $RSYNC_PARAMS --chown=$user:$group -e "ssh $SSH_OPTS" $CI_PROJECT_DIR/$COMPOSER_ARTIFACTS_DIR $DEPLOY_HOST_PATH/$COMPOSER_SERVER_DIR;
  fi

@@ -9,12 +11,11 @@
  extends: .before_deploy_code
  variables:
    RSYNC_PARAMS: '--delete'
    COMPOSER_ARTIFACTS_DIR: vendor/
    COMPOSER_SERVER_DIR: vendor/
  dependencies:
    - build_composer
    - setup_environment_vars
  variables:
    COMPOSER_ARTIFACTS_DIR: vendor/
    COMPOSER_SERVER_DIR: vendor/
  script:
    - *upload_composer_files
  only:

.gitlab-ci.yml

0 → 100644
+20 −0
Original line number Diff line number Diff line
stages:
  - validate

pre-commit:
  stage: validate
  image: python:3.14-slim
  variables:
    PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.pre-commit-cache
  cache:
    key: pre-commit
    paths:
      - .pre-commit-cache/
  before_script:
    - apt-get update -qq && apt-get install -qqy git
    - pip install pre-commit --quiet
  script:
    - pre-commit run --all-files --hook-stage pre-push
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - if: $CI_COMMIT_BRANCH == "master"
+16 −0
Original line number Diff line number Diff line
repos:
  - repo: https://github.com/adrienverge/yamllint
    rev: v1.35.1
    hooks:
      - id: yamllint
        stages: [pre-push]

  - repo: local
    hooks:
      - id: gitlab-ci-lint
        name: Validate GitLab CI templates via API
        language: script
        entry: scripts/validate-gitlab-ci.py
        stages: [pre-push]
        pass_filenames: false
        always_run: true
Loading