Skip to content

intersystems-community/GitLab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitLab

Various GitLab hooks. For more information please read a series of articles on Continuous Delivery of your InterSystems solution using GitLab (index):

Installation

Load and compile classes.

Development

Development is done on Cache-Tort-Git UDL fork.

Use

Set settings via: write ##class(isc.git.Settings).setSetting("setting", "value")

Available settings:

Setting Sample Value Description
ext $lb("xml") List of files extensions to load and compile.
tests MyApp/Tests Path relative from the repo root to the test suite.
commit Do not set. Current commit hash.
hooks MyApp/Hooks/ Path relative from the repo root to the hooks.
delete Package.Class:Method Code called to delete files from project. Should accept one argument - list of files to delete.
url http://127.0.0.1:57772 Server root.

Hooks

There are two types of hooks available:

  • Global - executed each time the CI is run. Extend isc.git.hook.Global.
  • Local - executed once. Extend isc.git.hook.Local.

Hooks of the same type are executed in collation order. To create a hook extend either or isc.git.hook.Global or isc.git.hook.Local and implement onBefore and/or onAfter methods.

Execution order:

  1. Global hooks, before.
  2. Local hooks, before.
  3. Code load and compile.
  4. Local hooks, after.
  5. Global hooks, after.

Tips & Tricks

Various tricks for GitLab CI.

Namespaces

Use CI_COMMIT_REF_NAME (resolves to branch) environment variable to use several namespaces on one server.

I.e. csession ensemble -U ${CI_COMMIT_REF_NAME} "##class(isc.git.GitLab).loadDiff()"