3 Migrate an Oracle Developer Cloud Service Instance to Oracle Cloud Infrastructure
Migrating your projects from a source DevCS instance to a target involves migrating the Build VM and VM templates of the source instance, as well as each project's data.
In this documentation, the icon indicates either the source DevCS instance or the source project. The icon indicates either the target DevCS instance or the target project.
Open the Source and the Target DevCS Instances
Open the source DevCS instance in a browser and the target DevCS instance in another browser. You can't open both instances in the same session of a browser; however, you may open an instance in a tab and another instance in an incognito or a private tab of the same browser.
For example, in this image the source DevCS instance is open in Mozilla Firefox and the target DevCS instance is open in Google Chrome.
To view the list of supported browsers, seehttps://www.oracle.com/technetwork/indexes/products/browser-policy-2859268.html
.
To open the source DevCS instance:
To open the target DevCS instance:
- In another web browser, go to
https://cloud.oracle.com/home
, and click Sign In. - From the Cloud Account drop-down list, select Cloud Account with Identity Cloud Service. In Cloud Account Name, enter your tenant name or the identity domain name.
- Click Next.
- On the sign-in page, enter your Oracle Cloud account credentials, and click Sign In.
- Click Dashboard.
- On the Oracle Cloud Dashboard, in the Developer tile, click Action and select Open Service Console.
If the Developer tile isn’t visible, click Customize Dashboard. Under Platform, find the Developer service, click Show, and then close the Customize Dashboard window.
- On the Instances tab, click Manage this instance and select Access service instance.
Migrate the Organization's Properties
To migrate the source DevCS instance's organization properties, note its details and then configure the target DevCS instance's Organization with the same properties.
Migrate Projects
To migrate projects from the source DevCS instance, you will export each project's data to an OCI Object Storage bucket.
You'll then create projects in the target DevCS instance using the exported data. Finally, you will copy any data or artifacts that were not part of the export from the source DevCS instance to the target DevCS instance.
Gather Information About a Project From the Source DevCS Instance
Note the name, description, security, and the wiki markup language of the project in the source DevCS instance.
To get the details, you must be assigned the project's Owner role. If the role is not assigned to you, sign in as the Organization Administrator and assign the Owner role to yourself.
Perform these steps in the source DevCS instance.
Export Project Data From the Source DevCS Instance
You can export a project’s data to an OCI Object Storage bucket.
When you export project data, not all the artifacts are included. You'll have to manually export the remaining artifacts and data manually.
This table shows you which artifacts are exported and which aren't:
Artifact | Exported? | Notes |
---|---|---|
Project users | No | When you export a project's data, its users are not exported, but all data associated to usernames (such as issue ownership and reviewers of a merge request) is preserved.
After you import the project's data to another project, when you add a user to the project with the same username, the data associated to the username is automatically restored. |
User's favorite settings or personal preferences | No | |
Hosted Git repositories | Yes | |
Mirrored public external Git repositories | Yes | |
Mirrored private external Git repositories | No | Password protected external Git repositories aren't exported.
After you import the project's data to another project, you must add each external private Git repository. |
Branch restrictions | Yes | |
Issues | Yes | |
Agile boards | Yes | |
Wiki pages | Yes | |
Merge Requests | Yes | |
Default reviewers of a branch | Yes | After you import the project's data to another project, default reviewers are added automatically after the same users are added to the target project. |
Build jobs | No | |
Deployment configurations | No | |
Maven artifacts | No | |
Environments | No | |
Releases | Yes | |
Snippets | Yes | |
Linked Docker registries | No | |
Project template definition | No | |
Announcements | No | |
Webhooks | No | |
RSS/ATOM feeds | No | |
Link rules | No | |
Project tags | Yes | |
Issue products and components | Yes | |
Default owners of issue components | Yes | After you import the project's data to another project, owners are activated automatically after the same users are added to the target project. |
Issue custom fields | Yes | |
Named passwords | Yes |
Export a Project's Data to an OCI Object Storage Bucket
To export a project's data to an OCI Object Storage bucket, you need the bucket's name, private key and fingerprint of a user who can write objects to the bucket, and details of the compartment that hosts the bucket.
Perform these steps for each project in the source DevCS instance as the project's Owner.
Create a Project With an Exported Project's Data in the Target DevCS Instance
While creating a project, you can import data from an exported project's archive file stored in an OCI Object Storage bucket.
To import project data, you need these details:
- Name of the target bucket
- Name of the exported archive file
- Private key and fingerprint of a user who has the
BUCKET_INSPECT
(orBUCKET_READ
) andOBJECT_READ
permissions of the bucket - Details of the compartment that hosts the bucket
After you have the required input values, you can import the project.
Perform these steps in the target DevCS instance.
In the created project, verify artifacts listed in the table of Export Project Data From the Source DevCS Instance with Yes value in the Exported? column have been imported.
If the import fails, you can import the data again without creating the project. See Export Project Data to and Import Project Data from Oracle Cloud in Using Oracle Developer Cloud Service.Migrate Other Artifacts and Data
After exporting a project from the source DevCS instance and creating the same name project with the exported project’s data in the target DevCS instance, migrate the artifacts that weren't exported.
Before you begin, open the source project in a browser and the target project in another browser. Then, to migrate an artifact, note and copy its details from the source project and create or add it manually to the new project.
For example, in this image the source project is open in Mozilla Firefox and the target project is open in Google Chrome.
Project Users
To migrate users, you'll need to add them manually to the new project.
If you're switching to another identity domain, make sure that DevCS users of the source identity domain are added to the target identity domain with the same usernames and roles. See Create Users and Assign Roles in Getting Started with Oracle Cloud.
Follow these steps to migrate project users:
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Home .
- Click the Team tab.
- In the source project, gather information about the usernames and roles of project users.
- In the target project, add the users and assign them the same roles.
- After adding users, with the Team tab open in both source and target projects, verify that users and roles in the target project match the source project.
Add Users in the Target Project
Perform these steps in the target project.
When you're done, verify that the users and roles in the target project match the source project.
Before you exported the source project's data, you noted whether you're a member or an owner in the source project. Don't delete that data. You'll use it after migrating all source project's artifacts to the target project.Mirrored Private Git Repositories
If you’ve been using private Git repositories on another platform, such as GitHub or Bitbucket, and have mirrored them to your project, note that they aren't exported to the archive file when you export project data.
Follow these steps to migrate mirrored private Git repositories:
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Administration .
- Click Repositories.
- Expand External Repositories.
- Repeat these steps to migrate each mirrored private Git repository:
- In the source project, gather information about a mirrored private Git repository.
- In the target project, add a mirror to the private Git repository.
- After migrating all private Git repositories, with the Repositories page open in both source and target projects, verify that repositories in the target project match the source project.
Build Jobs
When you create a project with the exported project's data, the build jobs of the source project are not migrated to the target project.
Follow these steps to migrate build jobs:
- In the source and target projects, in the navigation bar, click Builds .
- Repeat these steps to migrate each job:
- In the source project, gather information about the job's software packages.
- In the target instance, create a Build VM template with the job's software packages and allocate Build VMs to it.
- Open two browser windows, one that shows the configuration page of the source job and the other that shows the configuration page of the target job.
- Note the configuration settings of the source job and make the same settings in the target job.
- Save the target job.
- If the source job has any dependencies, create a pipeline in the target project.
- After creating the job and pipelines, run a build. If the build fails, verify the configuration.
Before you migrate jobs, you might want to learn about the differences between the Builds page's user interface on the source and target DevCS instances.
Builds Page User Interface
The Builds page and its sub-pages in the target DevCS instance have been redesigned and differ from the Builds pages in the source DevCS instance. In the Builds page of the target project, you'll notice some new fields and options were added, the names of some fields and options have changed, and some fields and options have been removed.
To see the differences, open the source project in a browser and the target project in another browser. Then, in both source and target projects, click Builds in the navigation bar.
Builds Page
On the target project's Builds page, you'll notice these differences:
- A new tab, Pipelines, is available for creating and configuring build pipelines. More on that later.
- Icons in the Actions column of the jobs table have changed.
- In the toggle buttons, All Unstable jobs is now Test Failed Jobs.
- Job Statistics doesn't show pending jobs anymore.
Example:
Job Details Page
Click a job's name to open the job's details page. On the target project, you'll notice these differences:
- Descriptions is now Job Details.
- There are some new report icons on the right. The icons of other reports have been updated too.
- Build artifacts under Artifacts of Last Successful Build are now available in the Artifacts report.
- Permalinks have moved above the build history
- A new By column in the build history indicates who ran the build.
- Icons in the Actions column of build history have changed.
- The graph type of Build Trend has changed.
Example:
Job Configuration Page
Click the Configure button to open the job's configure page. On the target project, notice these differences:
- The order and labels of horizontal tabs have changed.
- The tabs are categorized into two vertical tabs: Settings and Configure .
Example:
Gather Information About the Job's Software Packages From the Source Project
Perform these steps in the source project.
Create a VM Template and its Build VMs in the Target DevCS Instance
Perform these steps in the target DevCS instance.
- Learn about the OCI regions and shapes where you'll create the VMs. A region is a localized geographic area, and an availability domain is one or more data centers located within a region. A shape is a template that determines the number of CPUs, amount of memory, and other resources allocated to a newly created instance. For more details, see Regions and Availability Domains and VM Shapes.
- When you create a Build VM Template, some software packages (such as Maven, Ant, and Java) are available by default in the template's required Build VM components. They're are not available in the Software Catalog.
- Some software packages are available on a particular platform only. For example, Xvfb is available on Oracle Linux 7. To find about the software packages available by default and their compatible platform, see Software Installed on the Build Executor in Using Oracle Developer Cloud Service.
Let's get started.
Create and Configure a Job in the Target Project
To migrate a job, note its configuration from the source project. In the target project, create a job with the same name and then configure it accordingly.
The following topics help you migrate each tab's configuration from the source job to the target job. While migrating a job, you would notice some new fields and configuration options in the target job. This guide doesn't describe them, but if you want to learn about them, see Configure and Run Project Jobs and Builds in Using Oracle Developer Cloud Service.
Environment Tab
- Switch to the browser with the source job.
- Click the Environment tab.
- If the Start Xvfb before the build, and shut it down after check box is selected, follow these steps:
- In the source job, if the Abort the build if it's stuck check box is selected, note the value of Timeout Minutes and whether the Fail the build check box is selected. Then, follow these steps:
- In the source job, if the Add Timestamps to the Console Output check box is selected, follow these steps:
- Switch to the browser with the target job.
- Click Settings .
- Click the Advanced tab.
- Select the Add Timestamps to the Console Output check box.
- In the source job, if the Connect Oracle Maven Repository check box is selected, then follow these steps:
- Switch to the browser with the target job.
- Click Configure .
- Click the Before Build tab.
- From the Add Before Build Action drop-down list, select Oracle Maven Repository Connection.
- Click the Use existing connection toggle button to disable it.
- Switch to the browser with the source job.
- Copy the values of OTN Login, OTN Password, Server Id, and Custom settings.xml.
- Switch to the browser with the target job.
- Paste the copied values into the fields with the same names.
- In the source job, if the Use NodeJS version check box is selected, then configure the target job to use a Build VM Template with the same (or higher) version of Node.js. You probably already did this when you created the Build VM Template.
Post Build Tab
- Switch to the browser with the source job.
- Click the Post Build tab.
- If the Aggregate all downstream test results check box is selected, ignore it because the option isn't available in the target job.
- If the Build other jobs check box is selected, you'll need to create a pipeline in the target project, after first creating all dependent jobs. See Create and Configure Pipelines.
- In the source job, if the Archive the artifacts check box is selected, follow these steps:
- In the source job, if the Record fingerprints of files to track usage check box is selected, ignore it because the option isn't available in the target job.
- In the source job, if the Publish Javadoc check box is selected, follow these steps:
- In the source job, if the Publish JUnit test result report check box is selected, follow these steps:
- In the source job, if the Archive Maven 3 artifacts check box is selected, follow these steps:
- In the source job, if the Record fingerprints of Maven artifacts check box is selected, ignore it because the option isn't available in the target job.
- In the source job, if the Git Publisher check box is selected, follow these steps:
- In the source job, if the Notify that Maven dependencies have been updated by Maven 3 integration check box is selected, ignore it because the option isn't available in the target job.
- In the source job, if the Oracle Cloud Service Deployment check box is selected, follow these steps:
Advanced Tab
- Switch to the browser with the source job.
- Click the Advanced Tab tab.
- If the Quiet period check box is selected, note its period and follow these steps:
- Switch to the browser with the target job.
- Click Settings .
- Click the Advanced tab.
- Select the Quiet Period check box and specify its period.
- In the source job, if the Retry count check box is selected, note the SCM Checkout period and follow these steps:
- Switch to the browser with the target job.
- Click Settings .
- Click the Advanced tab.
- Select the Retry Count check box and specify the period in SCM Retries.
- In the source job, if the Block build when upstream job is building check box is selected, ignore it because the option isn't available in the target job.
- In the source job, if the Block build when downstream job is building check box is selected, ignore it because the option isn't available in the target job.
Create and Configure Pipelines
Some jobs of the source project might be configured to run when the builds of other jobs are complete, or to trigger builds of other jobs when their builds are complete. These dependencies are defined in the Triggers tab or the Post Build tab of the source job.
For example, in this image, Job C has an upstream dependency (or a many-to-one dependency) on Job A and Job B. When a build of any of these jobs complete, they trigger a build of Job C. Job C also has a downstream dependency (or a one-to-many dependency) on Job D and Job E. When a build of Job C is complete, it triggers builds of Job D and Job E.
While migrating source jobs to the target project, you might have noticed that When these jobs are built and Build other jobs options aren't available in the target jobs. To set up a dependency in the target project, you'll create a pipeline. You must create the pipeline after creating and configuring all dependent jobs.
Before you create a pipeline, see What Is a Pipeline? and Use the Pipeline Designer in Using Oracle Developer Cloud Service to learn about pipelines and how to design pipeline diagrams.
Set Up a Pipeline
For example, if you've a job (Job C) with upstream jobs (Job A and Job B) and downstream jobs (Job D and Job E):
Then, design a pipeline diagram like this:
Run a Build of a Job or a Pipeline
Docker Registries
Follow these steps to migrate Docker registries:
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Administration .
- Click Repositories.
- Expand Docker Repositories.
- Repeat these steps to migrate each Docker registry:
- In the source project, gather information about a Docker registry.
- In the target project, add the Docker registry.
- After migrating all Docker registries, with the Repositories page open in both source and target projects, verify that registries in the target project match the source project.
Maven Artifacts
You might have several artifacts in the source project's Maven repository, such as dependencies and build artifacts. To migrate them, you'll need to note details of each artifact, download it, and then upload it again in the target project. You may choose not to migrate build artifacts stored in the Maven repository of the source project as you can generate and archive them by running a build in the target project.
Follow these steps to migrate Maven artifacts:
- In the source and target projects,, in the navigation bar, click Maven .
- Repeat these steps to migrate each Maven artifact:
- In the source project, gather information about a Maven artifact and download it to your computer.
- In the target project, upload the Maven artifact.
- After migrating all Maven artifacts, with the Maven page open in both source and target projects, verify that artifacts in the target project match the source project.
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Administration .
- Click Repositories.
- Note the Maven auto-cleanup and overwrite settings of the source project and make the same settings in the target project.
- After migrating all Maven settings, with the Repositories page open in both source and target projects, verify that Maven settings in the target project match the source project.
Gather Information About a Maven Artifact From the Source Project
Perform these steps in the source project.
Environments
Follow these steps to migrate environments and its service instances:
- In the source and target projects, in the navigation bar, click Environments .
- Repeat these steps to migrate each environment:
- In the source project, gather information about an environment and its service instances.
- In the target project, create the environment and add its service instances.
- After migrating all environments, with the Environments page open in both source and target projects, verify that environments in the target project match the source project.
Deployment Configurations
Follow these steps to migrate deployment configurations:
- In the source and target projects, in the navigation bar, click Deployments .
- Repeat these steps to migrate each deployment configuration:
- In the source project, gather information about a deployment configuration and its target.
- In the target project, create and configure the deployment configuration.
- After migrating all deployment configurations, with the Deployments page open in both source and target projects, verify that deployment configurations in the target project match the source project.
Webhooks
Follow these steps to migrate webhooks:
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Administration .
- Click Webhooks.
- Repeat these steps to migrate each webhook:
- In the source project, gather information about a webhook.
- In the target project, create and configure the webhook.
- After migrating all webhooks, with the Webhooks page open in both source and target projects, verify that webhooks in the target project match the source project.
Template Definition
If the source project is a template, then to migrate its template variables and rules, you'll need to add them manually to the new project.
Follow these steps to migrate a project's template definition:
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Administration .
- Click Properties.
- In the source project, gather information about the project's template definition.
- In the target project, configure the template definition.
Announcements
Follow these steps to migrate announcements:
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Administration .
- Click Announcements.
- Repeat these steps to migrate each announcement:
- In the source project, gather information about an announcement.
- In the target project, create and configure the announcement.
- After migrating all announcements, with the Announcements page open in both source and target projects, verify that announcements in the target project match the source project.
RSS/ATOM Feeds
Follow these steps to migrate RSS/ATOM feeds:
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Administration .
- Click RSS/ATOM Feeds.
- Repeat these steps to migrate each RSS/ATOM feed:
- In the source project, gather information about a feed.
- In the target project, create and configure the feed.
- After migrating all feeds, with the RSS/ATOM Feeds page open in both source and target projects, verify that feeds in the target project match the source project.
Custom Link Rules
You don't need to migrate the default link rules as they are available in the target project.
Follow these steps to migrate link rules:
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Administration .
- Click Links.
- Repeat these steps to migrate each link rule:
- In the source project, gather information about a rule.
- In the target project, create and configure the link rule.
- After migrating all link rules, with the Links page open in both source and target projects, verify that link rules in the target project match the source project.
Remove Your Membership or Ownership
After migrating all artifacts of the source project to the target project, if you were not a member or an owner of the source project, you should remove your membership or ownership of the target project.
Perform these steps in the target project.
Migrate User Preferences
After migrating a project's artifacts and adding team members, ask each user to sign in to DevCS and set their user preferences and project preferences.
User Preferences
To migrate your DevCS user preferences, note them in the source DevCS instance and set them again in the target DevCS instance.
User preferences include their display name, email address, and email notification preferences.
- In the source and target DevCS instances, click the user avatar, and select Preferences.
- In the source DevCS instance, gather information about your preferences.
- In the target project, set them again.
- After setting preferences, with the User Preferences tab open in both source and target DevCS instances, verify that your preferences in the target project match the source project.
Project Preferences
To migrate your project preferences, note them in the source project and set them again in the target project.
Project preferences include favorite Git repositories and Agile boards, and the watch settings of branches and jobs.
Git Repositories and Branches
- In the source and target projects, follow these steps:
- In the navigation bar, click Project Home .
- Click the Repositories tab.
- Switch to the browser with the source project.
- Note the repositories marked as your favorite. You can identify them with the icon.
- Switch to the browser with the target project.
- In the Repositories tab, click the Favorite icon of the repository to mark it as your favorite.
- In the source and target projects, follow these steps:
- In the navigation bar, click Git .
- Click the Refs tab.
- Switch to the browser with the source project.
- For each repository in the Repositories list, note the branches you watch. They are marked with the Subscribed icon.
- Switch to the browser with the target project.
- In the Refs tab, select the repository and click cc in the branch to watch it.
Jobs
- Switch to the browser with the source project.
- Click the job's name to open it.
- If CCme is CCed, click it and note the states of check boxes in the CC Me dialog box. Click Cancel. Then, follow these steps in the target project:
- Switch to the browser with the target project.
- Open the same job.
- Click CCme. In the CC Me dialog box, select the check boxes as noted, and click OK.
- Switch to the browser with the source project.
Agile Boards
- In the source and target projects, in the navigation bar, click Boards .
- Switch to the browser with the source project.
- Note the boards marked as your favorite. You can identify them with the icon.
- Switch to the browser with the target project.
- For the boards marked as favorite in the source project, click the Favorite icon to mark it as your favorite.