Skip to content

MCT GitHub Code Migration Design

This is a brief design of Migrating MCT code from BitBucket to GitHub.

Frontend Repo Structure

mct-web-portal

Refactored from: mct-web-portal

mct-web-portal/
├── .gitignore
├── Jenkinsfile
├── public/                    # static files
├── src/                       # mct main
│   ├── assets/
│   ├── components/
│   ├── store/
│   ├── App.vue
│   ├── main.ts
│   └── ...
├── vue.config.js              # Vue.js configuration
├── tsconfig.json              # TypeScript configuration
├── babel.config.js            # Babel configuration
├── package.json               # npm dependencies and scripts
├── README.md
└── ...

mct

Source: mct-core, which consolidates the former cloudtools-mct and cloudtools-mct-hydra repositories.

mct/
├── .gitignore
├── Jenkinsfile
├── database                      # DB change
│   ├── 17000/
│   └── ...
├── mct-cloud-agent/              # cloud agent
│   ├── src/
│   ├── Dockerfile
│   ├── pom.xml
│   └── ...
├── mct-status-consumer/          # akka stream
│   ├── src/
│   ├── Dockerfile
│   ├── pom.xml
│   └── ...
├── mct-job-engine/               # job engine
│   ├── src/
│   ├── Dockerfile
│   ├── pom.xml
│   └── ...
├── mct-shared/                   # common wrapper
│   ├── src/
│   ├── pom.xml
│   └── ...
├── mct-status-api/               # gpi + general wrapper (cloud be merged with gpi)
│   ├── src/
│   ├── Dockerfile
│   ├── pom.xml
│   └── ...
├── mct-api/                      # should be divided into finer grained micro services on later phase
│   ├── src/
│   ├── Dockerfile
│   ├── pom.xml
│   └── ...
│── legacy/                       # placeholder: may no need to migrate
│   ├── enterprise-agent/
│   ├── task-engine/
│   ├── mct-acl/
│   ├── MCTURLStation/
│   └── ...
├── pom.xml                       # root pom for all micro-services
└── README.md                     # should add the source / original BitBucket repo link here

💡 Leave TaskEngine on BitBucket, since it's belong to another project which is on-hold.

💡 Leave PageNew on BitBucket, since it will be retired

💡 Leave CloudAgent on BitBucket, since it will be retired

💡 Merge GeneralWrapper into gpi?

mct-java-plugin

Source: mct-java-plugin

mct-java-plugin/
├── .gitignore
├── Jenkinsfile
├── examples/                      # java plugin examples
│   └── hello-world/
│       ├── src/
│       ├── pom.xml
│       └── ...
├── middleware/                    # middleware: plugin manager and plugin parent.
│   ├── plugin-manager/
│   │   ├── src/
│   │   ├── pom.xml
│   │   └── ...
│   └── plugin-parent/
│       ├── src/
│       ├── pom.xml
│       └── ...
│── plugins/                       # all java plugins
│   ├── ESCountMonitor/
│   ├── CertMonitor/
│   ├── port-check/
│   └── ...
└── README.md                      # should add the source / original BitBucket repo link here

:heavy_exclamation_mark: Migrate all Jmx files to Jmeter plugin's sub folder

Backend Repo Structure

TODO

Migration Plan

  1. Migration owner confirm there is no active PR ongoing.
  2. Migration owner announces migration will be started.
  3. All team members stop making code changes based on BitBucket repo (except those legacy projects listed above)
  4. Migration owner migrate code to GitHub based on above structure.
  5. Migration owner announces code migration is completed, so that team members can checkout code from GitHub and develop based on it.
  6. Migration owner update the Jenkins configuration as soon as possible