moule lock

Showcase the module lock

source

lock module versions

Please refer to the module command to lock all module versions

    hello: 25456bbcd17db524d1148e42bdcc3bb36ce90042
    hello-dummy1: e8e9dc5dc913e211fdaa3bf1bd8a6618e602e8ff
    hello-dummy2: e8e9dc5dc913e211fdaa3bf1bd8a6618e602e8ff
    

config file - upconfig.yml

    version: 1.0.0
    Verbose: v
    MaxCallLayers: 8
    RefDir: .
    TaskFile: up.yml
    ConfigDir: .
    ConfigFile: upconfig.yml
    ModuleLock: true
    
    Modules:
    
      - repo: https://github.com/upcmd/hello-module.git
        alias: hello
        #v2 is a branch
        version: v2
        pullpolicy: skip
    
      - repo: https://github.com/upcmd/hello-module.git
        alias: hello-dummy1
        version: master
        pullpolicy: always
    
      - repo: https://github.com/upcmd/hello-module.git
        alias: hello-dummy2
    #    version: e8e9dc5
        version: 25456bbcd17db524d1148e42bdcc3bb36ce90042
        pullpolicy: always
    
    notes: |
      rules:
    
      #clone the repo, repo name will be the module name
      #version==empty, then it will use master
      #dir==empty, it will use cloned git repo root dir
      #dir==empty, then mod.dir will be auto mapped to repo name
      - repo: https://github.com/up/sayhi.git
      _dir: sayhi
      _alias: sayhi
      _version: master
      _iid: noname
    
      #skip: if repo exist already, then skip it and do not pull, this is the default if it is not configured
      #manual: if repo exist already, then stop processing and fails straight away
      #always: if repo exist already, then delete it and repull from remote again
      - repo: https://github.com/up/sayhi.git
      pullpolicy: manual | always | skip
    
      #if both repo and dir exist, then the repo will be cloned to be named to dir name
      - repo: https://github.com/up/sayhi.git
      dir: himodule
      _alias: himodule
      _version: master
      _iid: noname
    
      #this is to use sub directory ./sayhi/a/b as the module location instead of root repo dir
      - repo: https://github.com/up/sayhi.git
      subdir: a/b
      _dir: sayhi
      :>alias: require setup to make it clear what the module name is
      _version: master
      _iid: noname
    
      #use version value as tag name to check it out
      - repo: https://github.com/up/sayhi.git
      version: 1.0.0
      _dir: sayhi
      _alias: sayhi
      _iid: noname
    
      #the alias will be a translated name to be uesd in caller's code base
      #eg, call: hi.SayHiTask, without alias, you will have to use sayhi.SayHiTask
      #this is to just to avoid duplicated repo name, eg: https://github.com/somethingeles/sayhi.git
      - repo: https://github.com/up/sayhi.git
      alias: hi
      _version: master
      _dir: sayhi
      _iid: noname
    
      #sha value is a specific value to checkout if it presents as version
      - repo: https://github.com/up/sayhello.git
      version: abc123e
      _alias: sayhello
      _dir: sayhello
      _iid: noname
    
      - #if there is no repo, then it will use the dir as module and incorporate as module
      #if
      dir: c/d
      :>alias: require setup to make it clear what the module name is
      _iid: noname
    
      - #if there is no repo, then it will use the dir as module and incorporate as module
      dir: c/d
      alias: hi
      _iid: noname
    
      #you can use absolute path for dir to be the location of a module
      - dir: /etc/c/d
      :>alias: require setup to make it clear what the module name is
      _iid: noname
    
      #iid is the instance id, which could be used in module, if it is empty then use default nonamed
      - dir: /etc/c/d
      :>alias: require setup to make it clear what the module name is
      iid: dev
    
Main log file
    loading [Config]:  ./tests/modtests/0008/upconfig.yml
    Main config:
                 Version -> 1.0.0
                  RefDir -> ./tests/modtests/0008
                 WorkDir -> refdir
              AbsWorkDir -> /up_project/up/tests/modtests/0008
                TaskFile -> up.yml
                 Verbose -> v
              ModuleName -> self
               ShellType -> /bin/sh
           MaxCallLayers -> 8
                 Timeout -> 3600000
     MaxModuelCallLayers -> 256
               EntryTask -> Main
      ModRepoUsernameRef -> 
      ModRepoPasswordRef -> 
    work dir: /up_project/up/tests/modtests/0008
    -exec task: Main
    loading [Task]:  ./up.yml
    module: [self], instance id: [dev], exec profile: []
    Task1: [Main ==> Main: main entry ]
    -Step1: [
    note that the module dir is: hello-module, but in upconfig.yml you give the alias hello as module name
    ]
     WARN: [Locked version differs, use locked version] - [locked: 25456bbcd17db524d1148e42bdcc3bb36ce90042, configured: v2]
     WARN: [config file does not exist] - [use builtin defaults]
    loading [Task]:  ./up.yml
    module: [hello], instance id: [nonamed], exec profile: []
     WARN: [*be aware*] - [both instance id and exec profile are not set]
    =>call module: [hello] task: [Say_world]
    Task2: [TODO: Main Caller Taskname ==> Say_world:  ]
    -Step1:
    ~SubStep1: [print:  ]
     .... world from Say_world
    
Logs with different verbose level
Raw logs with different verbose level