Loading before_script.yml 0 → 100644 +16 −0 Original line number Diff line number Diff line # $CI_PROJECT_DIR - название проекта в GIT. Это переменная gitlab. Не меняйте её. # $CI_PROJECT_NAME - название проекта в GIT. Это переменная gitlab. Не меняйте её. # $LAYOUTS - это массив имен папок внутри каталога working, для которых мы собираем верстку и выкладываем в wireframes before_script: - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' - 'which rsync || ( apt-get update -y && apt-get install rsync -y )' - 'which perl || (apt-get update -y && apt-get install perl -y)' - eval $(ssh-agent -s) - ssh-add <(echo "$DEPLOY_KEY") - mkdir -p ~/.ssh - '[[ -f /.dockerenv ]] && echo "$SSH_SERVER_HOSTKEYS" > ~/.ssh/known_hosts' # Нижеследующая строчка положит в LAYOUTS все папки внутри working. - cd $CI_PROJECT_DIR/working/ && export LAYOUTS=(`ls -1 -d ./*/|perl -nE '$_ =~ s/^\.\/(.+)\/$\//$1/; chomp; say'`) # Если хочется указать вручную избранные папки, например folder1 и folder2, надо раскомментировать следующую строку и закомментировать строку выше. # - export LAYOUTS=(folder1 folder2) deploy_assets_to_staging.yml 0 → 100644 +16 −0 Original line number Diff line number Diff line deploy_assets_to_staging: stage: deploy environment: name: staging url: http://wireframes.cetera.ru/$CI_PROJECT_NAME/ script: - rsync -e ssh /dev/null root@vps10.cetera.ru::wireframe/$CI_PROJECT_NAME/ - for item in ${LAYOUTS[*]}; do rsync -avuz --numeric-ids --chown=33:33 -e ssh $CI_PROJECT_DIR/working/$item/dist/ vps10.cetera.ru::wireframe/$CI_PROJECT_NAME/$item/; done only: refs: - master changes: - working/**/* # always - сборка запускается автоматически при каждом коммите в master # manual - надо будет руками запустить сборку, нажав на кнопку в интерфейсе gitlab'а на странице pipelines when: on_success gitlab-ci-template.yml 0 → 100644 +4 −0 Original line number Diff line number Diff line include: - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/before_script.yml' - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/stages.yml' - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/jobs.yml' jobs.yml 0 → 100644 +3 −0 Original line number Diff line number Diff line include: - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/minify_assets.yml' - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/deploy_assets_to_staging.yml' minify_assets.yml 0 → 100644 +14 −0 Original line number Diff line number Diff line minify_assets: stage: build only: refs: - master changes: - working/**/* script: # здесь задается скрипт для сборки верстки - for item in ${LAYOUTS[*]}; do cd $CI_PROJECT_DIR/working/$item && npm install && npm run minify; done artifacts: paths: - "working/*/dist" expire_in: 1 week Loading
before_script.yml 0 → 100644 +16 −0 Original line number Diff line number Diff line # $CI_PROJECT_DIR - название проекта в GIT. Это переменная gitlab. Не меняйте её. # $CI_PROJECT_NAME - название проекта в GIT. Это переменная gitlab. Не меняйте её. # $LAYOUTS - это массив имен папок внутри каталога working, для которых мы собираем верстку и выкладываем в wireframes before_script: - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' - 'which rsync || ( apt-get update -y && apt-get install rsync -y )' - 'which perl || (apt-get update -y && apt-get install perl -y)' - eval $(ssh-agent -s) - ssh-add <(echo "$DEPLOY_KEY") - mkdir -p ~/.ssh - '[[ -f /.dockerenv ]] && echo "$SSH_SERVER_HOSTKEYS" > ~/.ssh/known_hosts' # Нижеследующая строчка положит в LAYOUTS все папки внутри working. - cd $CI_PROJECT_DIR/working/ && export LAYOUTS=(`ls -1 -d ./*/|perl -nE '$_ =~ s/^\.\/(.+)\/$\//$1/; chomp; say'`) # Если хочется указать вручную избранные папки, например folder1 и folder2, надо раскомментировать следующую строку и закомментировать строку выше. # - export LAYOUTS=(folder1 folder2)
deploy_assets_to_staging.yml 0 → 100644 +16 −0 Original line number Diff line number Diff line deploy_assets_to_staging: stage: deploy environment: name: staging url: http://wireframes.cetera.ru/$CI_PROJECT_NAME/ script: - rsync -e ssh /dev/null root@vps10.cetera.ru::wireframe/$CI_PROJECT_NAME/ - for item in ${LAYOUTS[*]}; do rsync -avuz --numeric-ids --chown=33:33 -e ssh $CI_PROJECT_DIR/working/$item/dist/ vps10.cetera.ru::wireframe/$CI_PROJECT_NAME/$item/; done only: refs: - master changes: - working/**/* # always - сборка запускается автоматически при каждом коммите в master # manual - надо будет руками запустить сборку, нажав на кнопку в интерфейсе gitlab'а на странице pipelines when: on_success
gitlab-ci-template.yml 0 → 100644 +4 −0 Original line number Diff line number Diff line include: - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/before_script.yml' - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/stages.yml' - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/jobs.yml'
jobs.yml 0 → 100644 +3 −0 Original line number Diff line number Diff line include: - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/minify_assets.yml' - 'https://gitlab.cetera.ru/boilerplate/ci/raw/master/deploy_assets_to_staging.yml'
minify_assets.yml 0 → 100644 +14 −0 Original line number Diff line number Diff line minify_assets: stage: build only: refs: - master changes: - working/**/* script: # здесь задается скрипт для сборки верстки - for item in ${LAYOUTS[*]}; do cd $CI_PROJECT_DIR/working/$item && npm install && npm run minify; done artifacts: paths: - "working/*/dist" expire_in: 1 week