Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

This can be used for AOL and various other types of files that support download option from EBS.

In this example, we will talk about committing LDT files to Git, but this option would apply to other Source Control as well, just plugin operations used to commit files will change.

Let's first create Git (or any other SCM) instance in Topology - Integrations section. If you already have SCM Integration Instance created, you can skip this step. Here is an example of Git instance, we will call it EBSDemo.

Next Step is to create Workflow. We will call it Extract LDT. This will be of Build Type.

image-20240531-090305.png

There will be 5 steps in this workflow for Extracting files and commit to Git. If you are using Git, you can just paste Source shown below in Source popup of your workflow.

Make sure to change GIT1 instance code to your Instance Code if you are using different Instance code for Git. That would need to be updated in Git Clone, Add any new Files, Commit to Git, Push to Central Repository operations.

If you are using other SCM, then you will need to use proper operations for commit of files. Basic steps will be to checkout code, copy files in it and commit.

image-20240531-085608.png
Extract LDT workflow source
name: Extract LDT
description: ''
steps:
  - id: '1'
    name: Extract LDT Files from EBS
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonEBSPlugin
      pluginOperation: build
      inputs:
        - name: FDEBS_INP_INCLUDE_FILES
          value:
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []
  - id: '2'
    name: Git Clone
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonGITPlugin
      pluginOperation: clone
      inputs:
        - name: FDGIT_INP_INSTANCE_CODE
          value:
            value: EMILYGIT
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_DEST_SUBFOLDER
          value:
            value: ../ebsldtfiles
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_BRANCH
          value:
            value: FDBLD_STREAM_NAME
            isExpression: true
          isEncrypted: false
        - name: FDGIT_INP_DEPTH
          value:
            value: '1'
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_SPARSE_CHECKOUT_FOLDERS
          value:
            value: EBSCustomizations/XXHR/import
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []
  - id: '3'
    name: Copy downloaded files to Git Repository
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonFilePlugin
      pluginOperation: copy
      inputs:
        - name: FDFILE_INP_FILE_FILTER
          value:
            value: '*.ldt'
            isExpression: false
          isEncrypted: false
        - name: FDFILE_INP_FILE_FILTER_EXCLUDED
          value:
            isExpression: false
          isEncrypted: false
        - name: FDFILE_INP_SOURCE_PATH
          value:
            value: FD_TEMP_DIR
            isExpression: true
          isEncrypted: false
        - name: FDFILE_INP_TARGET_PATH
          value:
            value: FD_TEMP_DIR + '/../ebsldtfiles'
            isExpression: true
          isEncrypted: false
        - name: FDFILE_INP_CLEAN_DIRECTORY
          value:
            value: 'false'
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []
  - id: '4'
    name: Add any new Files
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonGITPlugin
      pluginOperation: add
      inputs:
        - name: FDGIT_INP_INSTANCE_CODE
          value:
            value: EMILYGIT
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_DEST_SUBFOLDER
          value:
            value: ../ebsldtfiles
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_FILELIST
          value:
            value: '--all .'
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []
  - id: '5'
    name: Commit to Git
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonGITPlugin
      pluginOperation: commit
      inputs:
        - name: FDGIT_INP_INSTANCE_CODE
          value:
            value: EMILYGIT
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_DEST_SUBFOLDER
          value:
            value: ../ebsldtfiles
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_NAME
          value:
            value: FD_WF_USER
            isExpression: true
          isEncrypted: false
        - name: FDGIT_INP_EMAIL
          value:
            value: FD_WF_USER_EMAIL
            isExpression: true
          isEncrypted: false
        - name: FDGIT_INP_REVISION_MESSAGE
          value:
            value: New ldt files added from FlexDeploy
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []
  - id: '6'
    name: Push to Central Repository
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonGITPlugin
      pluginOperation: push
      inputs:
        - name: FDGIT_INP_INSTANCE_CODE
          value:
            value: EMILYGIT
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_DEST_SUBFOLDER
          value:
            value: ../ebsldtfiles
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_BRANCH
          value:
            value: master
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_FOLLOW_TAGS
          value:
            value: 'false'
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []

Next step is to setup Topology. If you have not yet created EBS instance, you should follow FlexDeploy EBS Getting Started guide to create EBS Instance. Then make sure to associate Extract LDT workflow with your EBS Instance and Save it. See below. This step will happen on Topology page. (Topology - Instances - select EBS Instance - click Workflows).

Now that we have Workflow and Topology setup completed, last step is create Project for execution. We will create Extract LDT to GIT project. You can create this project in any application of your choice. Make sure to give name that makes sense to you, select Partial Deployments, and select EBS as Project Type.

When you create Project, it will automatically open. Click on Configurations tab and configure as shown in below screen shot.

  • SCM Type - None

  • Build Workflow - Extract LDT

  • Build Instance - EBS (can be different in your setup)

  • Streams - create more streams as necessary to indicate Git (or other SCM) branches. In this case we will go ahead with master for now.

  • Click Save.

Now go to Project Properties. Filter for application and enter Custom Top code and click Save at the bottom of the page.

Now we can create AOL object definition. This step will repeat for each AOL object that you want to extract from EBS environment. In this example, we are showing LDT files, but you can download other types of files as well.

  1. Select packages tab in the project.

  2. Click File Catalog on the right side.

  3. Click Create

  4. Select Application Object Library for type.

  5. Enter path for output file name for extracted LDT. This path should match with location in Git repository. Otherwise you need to adjust copy in Extract LDT workflow accordingly. Path name will generally end with .ldt.

  6. Click Evaluate.

  7. Change Type and Name as appropriate.

  8. Change any other attributes if necessary.

  9. Click Evaluate.

  10. Click Save.

You can add more files later if necessary. Now let's execute Build for this project. In this example, I am showing only one file extract but you can run All Files or selectively run for one or more files. Let's start by clicking the Packages tab - Create.

Now,

  • Select environment where you want to Extract files from. You must make sure that Environment is marked as Build Environment on Topology, otherwise it will not show up here in Environment list.

  • Select specific Stream (branch) where you want to commit files.

  • Click Force Build

  • Click Submit.

You can review execution details as well. Alternatively, you can just download the zip file from Artifacts tab and commit the files yourself after reviewing it, if that makes sense to do so. This guide just provides one example with Git, but you can follow this to commit files to your choice of SCM or rely on developers to commit files to SCM.

  • No labels