-
-
Save safoorsafdar/c25505ad69b77f91f6ac90f8b21f44f8 to your computer and use it in GitHub Desktop.
Source code continues integration of Mendix application with Gitlab Pipeline
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# pipeline.yaml | |
image: alpine | |
stages: | |
- fetch | |
- sync | |
- push | |
- clean | |
variables: | |
SVN_SRC_PATH: ${CI_BUILDS_DIR}/${CI_PROJECT_PATH}/svnsrc | |
SVN_REPO_PATH: "<path to team server>" | |
SVN_USERNAME: "<team server username>" | |
SVN_PASSWORD: "<team server password>" | |
SVN_TRUNK_FOLDER: "trunk" | |
GIT_SRC_PATH: ${CI_BUILDS_DIR}/${CI_PROJECT_PATH}/gitsrc | |
GIT_USERNAME: "<git username>" | |
GIT_PASSWORD: "<git password>" | |
GIT_REPO_BRANCH: "develop" | |
GIT_SRC_FOLDER: "mxsrc" | |
GIT_REPO_HTTP_PATH: "http://${GIT_USERNAME}:${GIT_PASSWORD}@example.com.ae/test-group/example.git" | |
fetch-svn: | |
image: nbrun/svn-client:latest | |
stage: fetch | |
when: always | |
before_script: | |
- svn --version | |
- mkdir -p $SVN_SRC_PATH | |
script: | |
- echo "svn fetching" | |
- svn checkout $SVN_REPO_PATH $SVN_SRC_PATH --trust-server-cert --non-interactive --no-auth-cache --username $SVN_USERNAME --password "$SVN_PASSWORD"; | |
- cd $SVN_SRC_PATH | |
- svn info > ${SVN_TRUNK_FOLDER}/svn.info | |
artifacts: | |
name: "$CI_JOB_NAME-svnsrc" | |
paths: | |
- svnsrc/${SVN_TRUNK_FOLDER}/ | |
expire_in: 1 day | |
fetch-git: | |
image: pallet/git-client:latest | |
stage: fetch | |
when: always | |
before_script: | |
- git --version | |
- mkdir -p $GIT_SRC_PATH | |
artifacts: | |
name: "$CI_JOB_NAME-gitsrc" | |
paths: | |
- gitsrc/ | |
expire_in: 1 day | |
script: | |
- echo "git fetching" | |
- git clone --single-branch --branch ${GIT_REPO_BRANCH} ${GIT_REPO_HTTP_PATH} ${GIT_SRC_PATH} | |
- cd $GIT_SRC_PATH | |
- git config user.email ${GIT_USERNAME} | |
- git config user.name "Safoor Safdar" | |
merge-svn-to-git: | |
image: eeacms/rsync:latest | |
when: always | |
stage: sync | |
dependencies: | |
- fetch-git | |
- fetch-svn | |
before_script: | |
- rsync --version | |
- ls -lah svnsrc/ | |
- ls -lah gitsrc/ | |
artifacts: | |
name: "$CI_JOB_NAME-sync" | |
paths: | |
- gitsrc/ | |
expire_in: 1 day | |
script: | |
- echo "merging svn into git" | |
- rsync -av --progress --delete svnsrc/${SVN_TRUNK_FOLDER}/ gitsrc/${GIT_SRC_FOLDER} | |
pushToGit: | |
image: pallet/git-client:latest | |
stage: push | |
when: always | |
dependencies: | |
- merge-svn-to-git | |
before_script: | |
- git --version | |
- ls -lah gitsrc/${GIT_SRC_FOLDER} | |
- cat gitsrc/${GIT_SRC_FOLDER}/svn.info | |
script: | |
- echo "pushing to git" | |
- cd gitsrc/ | |
- git add --all . | |
- git commit -m "auto commit $(date) by:${SVN_USERNAME}" | |
- git push ${GIT_REPO_HTTP_PATH} ${GIT_REPO_BRANCH} | |
garbag-collector: | |
image: docker:19.03.1 | |
stage: clean | |
when: always | |
script: | |
- echo "cleaning"image: alpine | |
- rm -rf ./* | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment