From b69210254f27fafec919d9f9d9362e314f6a138c Mon Sep 17 00:00:00 2001 From: Scott Charlton Date: Sat, 18 Jan 2020 23:37:32 -0700 Subject: [PATCH 1/2] Added .gitlab-ci.yml --- .gitlab-ci.yml | 122 ++++++++++++++++++++++++++++++++ phreeqcpp/.gitlab-ci.yml | 110 ++++++++++++++++++++++++++++ phreeqcpp/common/.gitlab-ci.yml | 45 ++++++++++++ 3 files changed, 277 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 phreeqcpp/.gitlab-ci.yml create mode 100644 phreeqcpp/common/.gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..129da58f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,122 @@ +# +# https://code.chs.usgs.gov/coupled/subtrees/iphreeqc-src +# +image: buildpack-deps:bionic-scm + +stages: + - sync + - trigger + +before_script: + - eval $(ssh-agent -s) + - echo "${SSH_PRIVATE_KEY_ENC}" | base64 --decode | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - ssh-keyscan ${CI_SERVER_HOST} >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - git config --global user.email "darth@empire.com" + - git config --global user.name "Darth Vader" + +subtree-sync: + stage: sync + + ## + ## Only run if on the master branch and the variable GROUP is set + ## + ## change this to + ## only: + ## - master@$GROUP/subtrees/iphreeqc-src + ## and set GROUP to coupled before merge + only: + refs: + - master + variables: + - $GROUP + + script: + ## + ## Must re-clone in order for the subtree merge to work + ## tried re-setting the url for the origin but didn't work + ## + - cd .. + - rm -rf ${CI_PROJECT_NAME} + - git clone git@${CI_SERVER_HOST}:${CI_PROJECT_PATH}.git + - cd ${CI_PROJECT_NAME} + + ## + ## Sync subtrees + ## + - | + #!/bin/bash -ex + # + # IPhreeqc/ git@${CI_SERVER_HOST}:${GROUP}/IPhreeqc.git + # ├─database/ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-database.git database + # ├─examples/ │ └─examples + # │ ├─c/ │ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc-COMManuscript-CGfinal-examples-c.git examples/c + # │ ├─com/ │ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc-COMManuscript-CGfinal-examples-com.git examples/com + # │ └─fortran/ │ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc-COMManuscript-CGfinal-examples-fortran.git examples/fortran + # ├─phreeqc3-doc/ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-doc.git phreeqc3-doc + # ├─phreeqc3-examples/ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-examples.git phreeqc3-examples + # └─src/ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/IPhreeqc-src.git src + # └─phreeqcpp/ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src.git src/phreeqcpp + # └─common/ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src-common.git src/phreeqcpp/common + # + # IPhreeqc-src/ git@${CI_SERVER_HOST}:${GROUP}/subtrees/IPhreeqc-src.git + # └─phreeqcpp/ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src.git phreeqcpp + # └─common/ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src-common.git phreeqcpp/common + + git_subtree() { + git subtree "${1}" --prefix="${2}" "${4}" master 2>&1 | grep -v "^[[:digit:]].*/[[:digit:]].*" + } + + declare -A urls=( \ + ["phreeqc3-src"]="git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src.git" \ + ) + + declare -A prefixes=( \ + ["phreeqc3-src"]="phreeqcpp" \ + ) + + export GIT_EDITOR=true + + for remote in "${!urls[@]}"; do + git_subtree "pull" "${prefixes[$remote]}" "$remote" "${urls[$remote]}" + done + + for remote in "${!urls[@]}"; do + git_subtree "push" "${prefixes[$remote]}" "$remote" "${urls[$remote]}" + done + + git push origin master + git status + +trigger-downstream: + stage: trigger + ## + ## Only run if on the master branch and the variable GROUP is set + ## + ## change this to + ## only: + ## - master@$GROUP/subtrees/iphreeqc-src + ## and set GROUP to coupled before merge + only: + refs: + - master + variables: + - $GROUP + + ## Downstream Projects + ## triggers and ids are stored at the group level + ## iphreeqc https://code.chs.usgs.gov/coupled/iphreeqc + ## iphreeqccom https://code.chs.usgs.gov/coupled/iphreeqccom + ## phreeqcrm-src https://code.chs.usgs.gov/coupled/subtrees/phreeqcrm-src + script: + - echo triggering iphreeqc + - curl -X POST -F token=${IPHREEQC_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${IPHREEQC_ID}/trigger/pipeline + - echo triggering iphreeqccom + - curl -X POST -F token=${IPHREEQCCOM_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${IPHREEQCCOM_ID}/trigger/pipeline + - echo triggering phreeqcrm-src + - curl -X POST -F token=${PHREEQCRM_SRC_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${PHREEQCRM_SRC_ID}/trigger/pipeline + + ## Upstream Projects + ## phreeqc3-src https://code.chs.usgs.gov/coupled/subtrees/phreeqc3-src diff --git a/phreeqcpp/.gitlab-ci.yml b/phreeqcpp/.gitlab-ci.yml new file mode 100644 index 00000000..a1e8f4d3 --- /dev/null +++ b/phreeqcpp/.gitlab-ci.yml @@ -0,0 +1,110 @@ +# +# https://code.chs.usgs.gov/coupled/subtrees/phreeqc3-src +# +image: buildpack-deps:bionic-scm + +stages: + - sync + - trigger + +before_script: + - eval $(ssh-agent -s) + - echo "${SSH_PRIVATE_KEY_ENC}" | base64 --decode | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - ssh-keyscan ${CI_SERVER_HOST} >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - git config --global user.email "darth@empire.com" + - git config --global user.name "Darth Vader" + +subtree-sync: + stage: sync + + ## + ## Only run if on the master branch and the variable GROUP is set + ## + ## change this to + ## only: + ## - master@$GROUP/subtrees/phreeqc3-src + ## and set GROUP to coupled before merge + only: + refs: + - master + variables: + - $GROUP + + script: + ## + ## Must re-clone in order for the subtree merge to work + ## tried re-setting the url for the origin but didn't work + ## + - cd .. + - rm -rf ${CI_PROJECT_NAME} + - git clone git@${CI_SERVER_HOST}:${CI_PROJECT_PATH}.git + - cd ${CI_PROJECT_NAME} + + ## + ## Sync subtrees + ## + - | + #!/bin/bash -ex + # + # phreeqc3/ git@${CI_SERVER_HOST}:${GROUP}/phreeqc3.git + # ├─database/ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-database.git database + # ├─doc/ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-doc.git doc + # ├─examples/ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-examples.git examples + # └─src/ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src.git src + # └─common/ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src-common.git src/common + + git_subtree() { + git subtree "${1}" --prefix="${2}" "${4}" master 2>&1 | grep -v "^[[:digit:]].*/[[:digit:]].*" + } + + declare -A urls=( \ + ["phreeqc3-src-common"]="git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src-common.git" \ + ) + + declare -A prefixes=( \ + ["phreeqc3-src-common"]="common" \ + ) + + export GIT_EDITOR=true + + for remote in "${!urls[@]}"; do + git_subtree "pull" "${prefixes[$remote]}" "$remote" "${urls[$remote]}" + done + + for remote in "${!urls[@]}"; do + git_subtree "push" "${prefixes[$remote]}" "$remote" "${urls[$remote]}" + done + + git push origin master + git status + +trigger-downstream: + stage: trigger + ## + ## Only run if on the master branch and the variable GROUP is set + ## + ## change this to + ## only: + ## - master@$GROUP/subtrees/phreeqc3-src + ## and set GROUP to coupled before merge + only: + refs: + - master + variables: + - $GROUP + + ## Downstream Projects + ## triggers and ids are stored at the group level + ## iphreeqc-src https://code.chs.usgs.gov/coupled/subtrees/iphreeqc-src + ## phreeqc3 https://code.chs.usgs.gov/coupled/phreeqc3 + script: + - echo triggering iphreeqc-src + - curl -X POST -F token=${IPHREEQC_SRC_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${IPHREEQC_SRC_ID}/trigger/pipeline + - echo triggering phreeqc3 + - curl -X POST -F token=${PHREEQC3_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${PHREEQC3_ID}/trigger/pipeline + + ## Upstream Projects + ## phreeqc3-src-common https://code.chs.usgs.gov/coupled/subtrees/phreeqc3-src-common diff --git a/phreeqcpp/common/.gitlab-ci.yml b/phreeqcpp/common/.gitlab-ci.yml new file mode 100644 index 00000000..6c7d5573 --- /dev/null +++ b/phreeqcpp/common/.gitlab-ci.yml @@ -0,0 +1,45 @@ +# +# https://code.chs.usgs.gov/coupled/subtrees/phreeqc3-src-common +# +image: buildpack-deps:bionic-scm + +stages: + - trigger + +before_script: + - eval $(ssh-agent -s) + - echo "${SSH_PRIVATE_KEY_ENC}" | base64 --decode | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - ssh-keyscan ${CI_SERVER_HOST} >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - git config --global user.email "darth@empire.com" + - git config --global user.name "Darth Vader" + +trigger-downstream: + stage: trigger + ## + ## Only run if on the master branch and the variable GROUP is set + ## + ## change this to + ## only: + ## - master@$GROUP/subtrees/phreeqc3-src-common + ## and set GROUP to coupled before merge + only: + refs: + - master + variables: + - $GROUP + + ## Downstream Projects + ## triggers and ids are stored at the group level + ## phreeqc3-src https://code.chs.usgs.gov/coupled/subtrees/phreeqc3-src + ## wphast https://code.chs.usgs.gov/coupled/wphast + script: + - echo triggering phreeqc3-src + - curl -X POST -F token=${PHREEQC3_SRC_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${PHREEQC3_SRC_ID}/trigger/pipeline + - echo triggering wphast + - curl -X POST -F token=${WPHAST_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${WPHAST_ID}/trigger/pipeline + + ## Upstream Projects + ## none From d39819503623fde197564359a66437a89ee7480a Mon Sep 17 00:00:00 2001 From: Scott Charlton Date: Sat, 18 Jan 2020 23:42:45 -0700 Subject: [PATCH 2/2] Added .gitlab-ci.yml --- .gitlab-ci.yml | 110 ++++++++++++++++++++++++++++++++++++++++++ common/.gitlab-ci.yml | 45 +++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 common/.gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..a1e8f4d3 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,110 @@ +# +# https://code.chs.usgs.gov/coupled/subtrees/phreeqc3-src +# +image: buildpack-deps:bionic-scm + +stages: + - sync + - trigger + +before_script: + - eval $(ssh-agent -s) + - echo "${SSH_PRIVATE_KEY_ENC}" | base64 --decode | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - ssh-keyscan ${CI_SERVER_HOST} >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - git config --global user.email "darth@empire.com" + - git config --global user.name "Darth Vader" + +subtree-sync: + stage: sync + + ## + ## Only run if on the master branch and the variable GROUP is set + ## + ## change this to + ## only: + ## - master@$GROUP/subtrees/phreeqc3-src + ## and set GROUP to coupled before merge + only: + refs: + - master + variables: + - $GROUP + + script: + ## + ## Must re-clone in order for the subtree merge to work + ## tried re-setting the url for the origin but didn't work + ## + - cd .. + - rm -rf ${CI_PROJECT_NAME} + - git clone git@${CI_SERVER_HOST}:${CI_PROJECT_PATH}.git + - cd ${CI_PROJECT_NAME} + + ## + ## Sync subtrees + ## + - | + #!/bin/bash -ex + # + # phreeqc3/ git@${CI_SERVER_HOST}:${GROUP}/phreeqc3.git + # ├─database/ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-database.git database + # ├─doc/ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-doc.git doc + # ├─examples/ ├─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-examples.git examples + # └─src/ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src.git src + # └─common/ └─git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src-common.git src/common + + git_subtree() { + git subtree "${1}" --prefix="${2}" "${4}" master 2>&1 | grep -v "^[[:digit:]].*/[[:digit:]].*" + } + + declare -A urls=( \ + ["phreeqc3-src-common"]="git@${CI_SERVER_HOST}:${GROUP}/subtrees/phreeqc3-src-common.git" \ + ) + + declare -A prefixes=( \ + ["phreeqc3-src-common"]="common" \ + ) + + export GIT_EDITOR=true + + for remote in "${!urls[@]}"; do + git_subtree "pull" "${prefixes[$remote]}" "$remote" "${urls[$remote]}" + done + + for remote in "${!urls[@]}"; do + git_subtree "push" "${prefixes[$remote]}" "$remote" "${urls[$remote]}" + done + + git push origin master + git status + +trigger-downstream: + stage: trigger + ## + ## Only run if on the master branch and the variable GROUP is set + ## + ## change this to + ## only: + ## - master@$GROUP/subtrees/phreeqc3-src + ## and set GROUP to coupled before merge + only: + refs: + - master + variables: + - $GROUP + + ## Downstream Projects + ## triggers and ids are stored at the group level + ## iphreeqc-src https://code.chs.usgs.gov/coupled/subtrees/iphreeqc-src + ## phreeqc3 https://code.chs.usgs.gov/coupled/phreeqc3 + script: + - echo triggering iphreeqc-src + - curl -X POST -F token=${IPHREEQC_SRC_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${IPHREEQC_SRC_ID}/trigger/pipeline + - echo triggering phreeqc3 + - curl -X POST -F token=${PHREEQC3_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${PHREEQC3_ID}/trigger/pipeline + + ## Upstream Projects + ## phreeqc3-src-common https://code.chs.usgs.gov/coupled/subtrees/phreeqc3-src-common diff --git a/common/.gitlab-ci.yml b/common/.gitlab-ci.yml new file mode 100644 index 00000000..6c7d5573 --- /dev/null +++ b/common/.gitlab-ci.yml @@ -0,0 +1,45 @@ +# +# https://code.chs.usgs.gov/coupled/subtrees/phreeqc3-src-common +# +image: buildpack-deps:bionic-scm + +stages: + - trigger + +before_script: + - eval $(ssh-agent -s) + - echo "${SSH_PRIVATE_KEY_ENC}" | base64 --decode | tr -d '\r' | ssh-add - + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - ssh-keyscan ${CI_SERVER_HOST} >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - git config --global user.email "darth@empire.com" + - git config --global user.name "Darth Vader" + +trigger-downstream: + stage: trigger + ## + ## Only run if on the master branch and the variable GROUP is set + ## + ## change this to + ## only: + ## - master@$GROUP/subtrees/phreeqc3-src-common + ## and set GROUP to coupled before merge + only: + refs: + - master + variables: + - $GROUP + + ## Downstream Projects + ## triggers and ids are stored at the group level + ## phreeqc3-src https://code.chs.usgs.gov/coupled/subtrees/phreeqc3-src + ## wphast https://code.chs.usgs.gov/coupled/wphast + script: + - echo triggering phreeqc3-src + - curl -X POST -F token=${PHREEQC3_SRC_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${PHREEQC3_SRC_ID}/trigger/pipeline + - echo triggering wphast + - curl -X POST -F token=${WPHAST_TRIGGER} -F ref=master https://code.chs.usgs.gov/api/v4/projects/${WPHAST_ID}/trigger/pipeline + + ## Upstream Projects + ## none