Skip to content

Instantly share code, notes, and snippets.

@safoorsafdar
Last active April 9, 2022 23:20
Show Gist options
  • Save safoorsafdar/c25505ad69b77f91f6ac90f8b21f44f8 to your computer and use it in GitHub Desktop.
Save safoorsafdar/c25505ad69b77f91f6ac90f8b21f44f8 to your computer and use it in GitHub Desktop.
Source code continues integration of Mendix application with Gitlab Pipeline
# 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