Loading .gitlab-ci.yml +24 −31 Original line number Diff line number Diff line Loading @@ -8,36 +8,24 @@ workflow: # VARIABLES variables: GIT_PUSH_URL: GIT_PUSH_REPO: value: "" description: "1.1) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем адрес репозитория нашего форка" GIT_PUSH_PRIVATE_KEY: value: "" description: "1.2) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем ssh-ключ репозитория нашего форка" GIT_PUSH_BRANCH: value: "master" description: "1.2) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем branch репозитория нашего форка" GIT_PUSH_LOGIN: value: "" description: "1.3) НЕобязательная переменная: указываем логин репозитория нашего форка" GIT_PUSH_PASSWORD: value: "" description: "1.4) НЕобязательная переменная: указываем пароль репозитория нашего форка" SSH_PUSH_PRIVATE_KEY: value: "" description: "1.5) НЕобязательная переменная: указываем ssh-ключ репозитория нашего форка вместо пп. 1.3-1.4" GIT_PULL_URL: description: "1.3) НЕобязательная переменная: указываем branch (master) репозитория нашего форка" GIT_PULL_REPO: value: "" description: "2.1) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем адрес репозитория оригинала" GIT_PULL_PRIVATE_KEY: value: "" description: "2.2) НЕобязательная переменная: указываем ssh-ключ репозитория оригинала" GIT_PULL_BRANCH: value: "master" description: "2.2) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем branch репозитория оригинала" GIT_PULL_LOGIN: value: "" description: "2.3) НЕобязательная переменная: указываем логин репозитория оригинала" GIT_PULL_PASSWORD: value: "" description: "2.4) НЕобязательная переменная: указываем пароль репозитория оригинала" SSH_PULL_PRIVATE_KEY: value: "" description: "2.5) НЕобязательная переменная: указываем ssh-ключ репозитория оригинала вместо пп. 2.2-2.3" description: "2.3) НЕобязательная переменная: указываем branch (master) репозитория оригинала" ########################################################################################################## Loading @@ -55,14 +43,19 @@ sync: GIT_STRATEGY: "none" only: variables: - $GIT_PUSH_URL =~ /^\S+$/ && ($GIT_PUSH_PASSWORD =~ /^\S+$/ || $SSH_PULL_PRIVATE_KEY=~ /^\S+$/) && $GIT_PULL_URL =~ /^\S+$/ - $GIT_PUSH_REPO && $GIT_PUSH_PRIVATE_KEY && $GIT_PULL_REPO before_script: - rm -f ~/.git-credentials || true; git config --global credential.helper store && touch ~/.git-credentials - test -n "${GIT_PULL_PASSWORD}" && echo "https://${GIT_PULL_LOGIN:-oauth2}:${GIT_PULL_PASSWORD}@$(echo ${GIT_PULL_URL} | sed -r 's#([^/])/[^/].*#\1#' | sed -e 's|https://||g')" >> ~/.git-credentials || true - test -n "${GIT_PUSH_PASSWORD}" && echo "https://${GIT_PUSH_LOGIN:-oauth2}:${GIT_PUSH_PASSWORD}@$(echo ${GIT_PUSH_URL} | sed -r 's#([^/])/[^/].*#\1#' | sed -e 's|https://||g')" >> ~/.git-credentials || true - ( eval $(ssh-agent -s); echo "${SSH_PULL_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null && mkdir -p ~/.ssh && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config ) || true - ( eval $(ssh-agent -s); echo "${SSH_PUSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null && mkdir -p ~/.ssh && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config ) || true - rm -f ~/.git-credentials - eval $(ssh-agent -s) && mkdir -p ~/.ssh && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - test -n "${GIT_PULL_PRIVATE_KEY}" && echo "${GIT_PULL_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null || true - test -n "${GIT_PUSH_PRIVATE_KEY}" && echo "${GIT_PUSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null || true script: - echo "Destination url - ${GIT_PUSH_URL}" && git clone "${GIT_PUSH_URL}" /tmp/repo && cd /tmp/repo && git checkout "${GIT_PUSH_BRANCH:-master}" - git remote add upstream "${GIT_PULL_URL}" && git fetch upstream --tags && git pull --ff-only upstream "${GIT_PULL_BRANCH:-master}" - git push origin "${GIT_PUSH_BRANCH:-master}" && git push origin --tags - rm -rf /tmp/repo - git clone "${GIT_PUSH_REPO}" /tmp/repo - cd /tmp/repo - git checkout "${GIT_PUSH_BRANCH:-master}" - git remote add upstream "${GIT_PULL_REPO}" - test -n "${GIT_TAGS}" && git fetch upstream --tags - git pull --ff-only upstream "${GIT_PULL_BRANCH:-master}" - git push origin "${GIT_PUSH_BRANCH:-master}" - test -n "${GIT_TAGS}" && git push origin --tags Loading
.gitlab-ci.yml +24 −31 Original line number Diff line number Diff line Loading @@ -8,36 +8,24 @@ workflow: # VARIABLES variables: GIT_PUSH_URL: GIT_PUSH_REPO: value: "" description: "1.1) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем адрес репозитория нашего форка" GIT_PUSH_PRIVATE_KEY: value: "" description: "1.2) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем ssh-ключ репозитория нашего форка" GIT_PUSH_BRANCH: value: "master" description: "1.2) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем branch репозитория нашего форка" GIT_PUSH_LOGIN: value: "" description: "1.3) НЕобязательная переменная: указываем логин репозитория нашего форка" GIT_PUSH_PASSWORD: value: "" description: "1.4) НЕобязательная переменная: указываем пароль репозитория нашего форка" SSH_PUSH_PRIVATE_KEY: value: "" description: "1.5) НЕобязательная переменная: указываем ssh-ключ репозитория нашего форка вместо пп. 1.3-1.4" GIT_PULL_URL: description: "1.3) НЕобязательная переменная: указываем branch (master) репозитория нашего форка" GIT_PULL_REPO: value: "" description: "2.1) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем адрес репозитория оригинала" GIT_PULL_PRIVATE_KEY: value: "" description: "2.2) НЕобязательная переменная: указываем ssh-ключ репозитория оригинала" GIT_PULL_BRANCH: value: "master" description: "2.2) ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ: указываем branch репозитория оригинала" GIT_PULL_LOGIN: value: "" description: "2.3) НЕобязательная переменная: указываем логин репозитория оригинала" GIT_PULL_PASSWORD: value: "" description: "2.4) НЕобязательная переменная: указываем пароль репозитория оригинала" SSH_PULL_PRIVATE_KEY: value: "" description: "2.5) НЕобязательная переменная: указываем ssh-ключ репозитория оригинала вместо пп. 2.2-2.3" description: "2.3) НЕобязательная переменная: указываем branch (master) репозитория оригинала" ########################################################################################################## Loading @@ -55,14 +43,19 @@ sync: GIT_STRATEGY: "none" only: variables: - $GIT_PUSH_URL =~ /^\S+$/ && ($GIT_PUSH_PASSWORD =~ /^\S+$/ || $SSH_PULL_PRIVATE_KEY=~ /^\S+$/) && $GIT_PULL_URL =~ /^\S+$/ - $GIT_PUSH_REPO && $GIT_PUSH_PRIVATE_KEY && $GIT_PULL_REPO before_script: - rm -f ~/.git-credentials || true; git config --global credential.helper store && touch ~/.git-credentials - test -n "${GIT_PULL_PASSWORD}" && echo "https://${GIT_PULL_LOGIN:-oauth2}:${GIT_PULL_PASSWORD}@$(echo ${GIT_PULL_URL} | sed -r 's#([^/])/[^/].*#\1#' | sed -e 's|https://||g')" >> ~/.git-credentials || true - test -n "${GIT_PUSH_PASSWORD}" && echo "https://${GIT_PUSH_LOGIN:-oauth2}:${GIT_PUSH_PASSWORD}@$(echo ${GIT_PUSH_URL} | sed -r 's#([^/])/[^/].*#\1#' | sed -e 's|https://||g')" >> ~/.git-credentials || true - ( eval $(ssh-agent -s); echo "${SSH_PULL_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null && mkdir -p ~/.ssh && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config ) || true - ( eval $(ssh-agent -s); echo "${SSH_PUSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null && mkdir -p ~/.ssh && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config ) || true - rm -f ~/.git-credentials - eval $(ssh-agent -s) && mkdir -p ~/.ssh && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - test -n "${GIT_PULL_PRIVATE_KEY}" && echo "${GIT_PULL_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null || true - test -n "${GIT_PUSH_PRIVATE_KEY}" && echo "${GIT_PUSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null || true script: - echo "Destination url - ${GIT_PUSH_URL}" && git clone "${GIT_PUSH_URL}" /tmp/repo && cd /tmp/repo && git checkout "${GIT_PUSH_BRANCH:-master}" - git remote add upstream "${GIT_PULL_URL}" && git fetch upstream --tags && git pull --ff-only upstream "${GIT_PULL_BRANCH:-master}" - git push origin "${GIT_PUSH_BRANCH:-master}" && git push origin --tags - rm -rf /tmp/repo - git clone "${GIT_PUSH_REPO}" /tmp/repo - cd /tmp/repo - git checkout "${GIT_PUSH_BRANCH:-master}" - git remote add upstream "${GIT_PULL_REPO}" - test -n "${GIT_TAGS}" && git fetch upstream --tags - git pull --ff-only upstream "${GIT_PULL_BRANCH:-master}" - git push origin "${GIT_PUSH_BRANCH:-master}" - test -n "${GIT_TAGS}" && git push origin --tags