Skip to content

Fetching latest changes Scenario 2 Module library and CI environment

CARMLPipelinePrincipal edited this page Jul 29, 2022 · 6 revisions

In this scenario you have onboarded both the module library and the CI environment, as described in Getting started Scenario 2 - Onboard module library and CI environment and you would therefore need to fetch latest changes for both.

Depending on the DevOps environment you are using (GitHub or Azure DevOps) the number and implementation of the required steps may vary.

The update process is the following:

Navigation

1. Sync your copy of the library

GitHub public repository

You have a public fork of public CARML source repository in your target organization.

  1. Keep your fork synced to the fork upstream repository, on the GitHub web UI or through the GitHub CLI or the command line, as explaind in Syncing a fork documentation.
  2. Sync your local copy of the fork taking care of eventual customizations you can have in place.

GitHub private repository

You have created your GitHub target repository and uploaded there the content of the CARML repository.

Clone/download CARML repository to create a local copy of it, as explained in Azure DevOps Repository section in Getting started - Scenario 2 Onboard module library and CI environment

Azure DevOps private git

You have created your target repository and uploaded there the content of the CARML repository.

Clone/download CARML repository to create a local copy of it, as explained in Azure DevOps Repository section in Getting started - Scenario 2 Onboard module library and CI environment

2. Apply specific settings to files

Personalize files with your specific settings:

  1. Update default name prefix
  2. Update variables file (global.variables.yml) as explained in Set up variables file

3. (Optional) Re-apply your customizations

There are different options for library's customization:

The recommendation is to contribute to the public CARML repository so that your updates can improve the public library. In this way your changes will be available on the public library when fetching updates, modules will be already tested with your changes and you won't need to take care of customization on each update.

In some cases, you might need to add to the library company/organization' specifics, that are not sharable with the public CARML repository.

In this scenario every time you'll fetch updates from the public CARML repository merge conflicts are expected. You'll have to compare the new public code with your customized one and re-apply your customizations to the updated code.

This process can be automated, by script or CI, if customization tasks are repeatable.

4. Run dependencies pipeline

Run the 'dependencies pipeline' to update dependencies configuration that can be updated on the downloaded CARML release. Follow Deploy dependencies section in Getting started - Scenario 2 Onboard module library and CI environment documentation to do this.

5. Update module parameter files

Follow the Update module parameter files procedure

6. (Optional) Convert library to ARM

Follow istructions in (Optional) Convert library to ARM

7. Push updated code

Push the updated local code to your remote public fork (for GitHub public repository scenario) or on your remote target repository for GitHub private repository and Azure DevOps private git scenarios.

8. Test and publish modules

If actions/ pipelines are enabled test and publishing of modules starts automatically. In some cases triggers for the pipelines are not enabled, in these cases start actions/pipelines to run tests and publish modules.

Clone this wiki locally