This is the core CICD Server in version 3.
For an implementation example, please have a look at https://github.com/bmoers/sn-cicd-example-v3.
- All changes are exported now to GIT
- Fields containing JavaScript are still created as .js files
- All other files / fields are exported as JSON
- No 'empty pull request' anymore
- The Update-Set, on which the CICD process runs, is also exported
- Branches are automatically deleted on pull request merge
- SSL support for portal
- New Jobs Dashboard to display progress
- More detailed 'build run' log
- Use of scripted REST API to interact with ServiceNow Global Scoped App
- Message-Queue driven Master/Worker architecture
- Easy to scale up by adding additional workers (on local- or remote server)
- ATF runs as worker job on server (and not anymore on build process/build tool)
- Support for external build tool
- Use CICD Server to extract code from ServiceNow and run a pipeline on e.g. Bamboo
- Build results are automatically sent from build process (remote) to CICD server
- Gulp tasks now configurable
- Allow to modify and extend build stages
- Better automated conflict detection on GIT merge
- Can be extended to inform about 'last commit wins' issues
- Null value support for empty fields
- ServiceNow sometimes treats null as empty or empty as null, to avoid displaying unrelated changes in GIT empty is treated as null
- Project DB (filesystem meta information) now in server and not in project
- Option to extend or overwrite CICD server modules
- Credentials only stored on CICD server (as env. variable) no Oauth token used anymore
Export, Build, Test and Deploy an Service-Now Update-Set.
On request (received from Service-Now) do:
- create a nodejs project
- init a git repo, link to remote repo, switch to master branch
- export all (related) files from Service-Now production instance
- switch to update-set branch
- export all files (sys_update_xml) from Service-Now development instance
- run
npm install
- run
gulp
- document the files with JSDoc
- check the quality with ESLint
- run the test cases (ATF tests) IN Service-Now via mocha wrapper
- if all gulp tasks are successful
- raise a pull request in remote git repo
- wait for code review and pull request completion
- on complete
- set update-set
complete
- deploy update-set to target
- set update-set
Please fork, please contribute.
-
3.1.0 - export empty values as null CICD_EXPORT_NULL_FOR_EMPTY - auto delete branch on merge CICD_GIT_DELETE_BRANCH_ON_MERGE
Boris Moers - Thu, 29 Nov 2018 06:26:06 +0100
-
worker node running status should change to pause when job done - only the worker clientState need to be pause
Brian Chen - Wed, 28 Nov 2018 20:03:25 +1100
-
print version on start
Boris Moers - Fri, 23 Nov 2018 16:02:10 +0100
-
sequence name in PR title
Boris Moers - Fri, 23 Nov 2018 15:41:53 +0100
-
3.0.13 for consistency with integration us
Boris Moers - Wed, 21 Nov 2018 15:50:34 +0100
-
3.0.12
Boris Moers - Tue, 20 Nov 2018 11:00:12 +0100
-
issue with node 11.0.0 clearTimeout() consuming 100% cpu random statistics random pull
Boris Moers - Tue, 20 Nov 2018 10:59:22 +0100
-
socket server options in case of timeout issues
Boris Moers - Tue, 20 Nov 2018 10:52:58 +0100
-
3.0.11 - separated pm2 ecosystem files - standalone worker
Boris Moers - Wed, 14 Nov 2018 10:12:23 +0100
-
3.0.10
Boris Moers - Tue, 13 Nov 2018 16:31:14 +0100
-
fix for worker not connecting if server is down on start
Boris Moers - Tue, 13 Nov 2018 16:30:45 +0100
-
3.0.9
Boris Moers - Tue, 13 Nov 2018 15:04:39 +0100
-
format
Boris Moers - Tue, 13 Nov 2018 15:04:06 +0100
-
dotenv only in cicd.js
Boris Moers - Tue, 13 Nov 2018 15:03:35 +0100
-
make sure there is only one run object with lastCommitId
Boris Moers - Tue, 13 Nov 2018 13:55:41 +0100
-
dedicated CD client
Boris Moers - Tue, 13 Nov 2018 13:55:07 +0100
-
pass target credentials to deploy request
Boris Moers - Tue, 13 Nov 2018 13:54:05 +0100
-
remove extra / in url
Boris Moers - Tue, 13 Nov 2018 13:52:45 +0100
-
3.0.8
Boris Moers - Thu, 8 Nov 2018 14:10:10 +0100
-
prefix option for servcie now api more control of deploy step
Boris Moers - Thu, 8 Nov 2018 14:08:43 +0100
-
3.0.7
Boris Moers - Wed, 7 Nov 2018 16:20:15 +0100
-
3.0.6
Boris Moers - Wed, 7 Nov 2018 16:19:41 +0100
-
missing return on project setup
Boris Moers - Wed, 7 Nov 2018 16:18:17 +0100
-
3.0.5 promise native delete pull request todo
Boris Moers - Wed, 7 Nov 2018 15:44:41 +0100
-
3.0.4
Boris Moers - Wed, 7 Nov 2018 15:19:28 +0100
-
check for PR changes on git server
Boris Moers - Wed, 7 Nov 2018 15:18:58 +0100
-
align with new cicd.js structure
Boris Moers - Wed, 7 Nov 2018 15:14:51 +0100
-
detailed step message for pull requrest abort
Boris Moers - Wed, 7 Nov 2018 15:14:04 +0100
-
format code
Boris Moers - Tue, 6 Nov 2018 10:55:28 +0100
-
in case of Commit Verification, GIT needs a valid user
Boris Moers - Tue, 6 Nov 2018 10:35:59 +0100
-
project setup changes must be pushed
Boris Moers - Tue, 6 Nov 2018 10:19:47 +0100
-
pm2 ecosystem file
Boris Moers - Tue, 6 Nov 2018 10:19:09 +0100
-
3.0.3
Boris Moers - Fri, 2 Nov 2018 14:32:16 +0100
-
support for pm2 cluster
Boris Moers - Fri, 2 Nov 2018 14:31:45 +0100
-
3.0.2
Boris Moers - Thu, 1 Nov 2018 08:30:15 +0100
-
use git from sn-project
Boris Moers - Thu, 1 Nov 2018 08:30:01 +0100
-
use git from sn-project support for commitId from env var
Boris Moers - Thu, 1 Nov 2018 08:29:51 +0100
-
chain test in sequence as parallel not supported by sno
Boris Moers - Thu, 1 Nov 2018 08:28:25 +0100
-
cleanup
Boris Moers - Thu, 1 Nov 2018 08:27:30 +0100
-
unique path issue git branch extensions
Boris Moers - Thu, 1 Nov 2018 08:27:05 +0100
-
git branch extensions
Boris Moers - Thu, 1 Nov 2018 08:25:19 +0100
-
remote datastore events
Boris Moers - Thu, 1 Nov 2018 08:24:06 +0100
-
remote datastore support
Boris Moers - Thu, 1 Nov 2018 08:22:48 +0100
-
moved to sn-project
Boris Moers - Thu, 1 Nov 2018 08:20:43 +0100
-
event emitter optonal dir for db files remote datastore for project split file rest api call in chunks support for json extraction
Boris Moers - Thu, 1 Nov 2018 08:20:24 +0100
-
also delete run with no directory assigned
Boris Moers - Fri, 19 Oct 2018 12:22:04 +0200
-
remove test as will not work
Boris Moers - Fri, 19 Oct 2018 12:21:05 +0200
-
event emitter
Boris Moers - Fri, 19 Oct 2018 12:20:39 +0200
-
why is there a change?
Boris Moers - Thu, 18 Oct 2018 17:38:39 +0200
-
project paht unique fix
Boris Moers - Thu, 18 Oct 2018 17:38:16 +0200
-
error handling if git is not initalized
Boris Moers - Thu, 18 Oct 2018 17:37:48 +0200
-
findOne
Boris Moers - Thu, 18 Oct 2018 17:37:15 +0200
-
better error handling
Boris Moers - Thu, 18 Oct 2018 17:36:42 +0200
-
distinguish between internal and external port check on start if server port is free refactore to findOne
Boris Moers - Thu, 18 Oct 2018 17:36:20 +0200
-
refactore to findOne
Boris Moers - Thu, 18 Oct 2018 17:34:34 +0200
-
fix: directory structure was not unique housekeeping on worker nodes
Boris Moers - Thu, 18 Oct 2018 17:33:18 +0200
-
housekeeping event to let worker do some file cleanup
Boris Moers - Thu, 18 Oct 2018 17:32:06 +0200
-
introduce findeOne to simplify lookup
Boris Moers - Thu, 18 Oct 2018 17:30:33 +0200
-
save pull request status
Boris Moers - Thu, 18 Oct 2018 17:29:30 +0200
-
cluster events added
Boris Moers - Wed, 17 Oct 2018 15:51:33 +0200
-
change logging
Boris Moers - Wed, 17 Oct 2018 15:50:57 +0200
The project is designed to use extensions. This core project contains all 'shared' features. Customization which are dedicated to your Service-Now environment or CICD pipeline shall be added to the 'extending' project (like https://github.com/bmoers/sn-cicd-example-v3)