diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..8de7fd6 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,159 @@ +import groovy.json.JsonSlurper + +VERSION_NUMBER = "" + +/** Pipeline **/ +node { + ws('netcore') { + try{ + stage("scm pull") { + deleteDir(); + cloneRepo(); + VERSION_NUMBER = getVersionNumber(); + currentBuild.displayName = "$VERSION_NUMBER"; + } + + stage ("dotnet build") { + dotnet_build(); + } + + stage ("dotnet test") { + dotnet_test(); + } + + stage ("dotnet publish") { + dotnet_publish(); + } + + stage ("docker build") { + docker_build(); + } + + stage ("docker run") { + docker_run(); + } + } + catch (InterruptedException x) { + currentBuild.result = 'ABORTED'; + throw x; + } + catch (e) { + currentBuild.result = 'FAILURE'; + throw e; + } + } +} + +def cloneRepo() { + checkout scm; +} + +def dotnet_build(){ + dir('Merken.NetCoreBuild.App') { + sh(script: 'dotnet build Merken.NetCoreBuild.App.csproj', returnStdout: true); + } +} + +def dotnet_test(){ + dir('Merken.NetCoreBuild.Test') { + + sh(script: 'dotnet restore', returnStdout: true); + sh(script: 'dotnet xunit -xml xunit-results.xml', returnStdout: true); + } + + dir('Merken.NetCoreBuild.Transform') { + sh(script: 'dotnet run ../Merken.NetCoreBuild.Test/xunit-results.xml xunitdotnet-2.0-to-junit-2.xsl junit-results.xml', returnStdout: true); + + step([$class: 'XUnitBuilder', + thresholds: [[$class: 'FailedThreshold', unstableThreshold: '1']], + tools: [[$class: 'JUnitType', pattern: '*.*']]]) + } +} + +def dotnet_publish(){ + dir('Merken.NetCoreBuild.App') { + sh(script: 'dotnet publish Merken.NetCoreBuild.App.csproj -o ./obj/Docker/publish', returnStdout: true); + sh(script: 'cp Dockerfile ./obj/Docker/publish', returnStdout: true); + sh(script: 'tar zcf netcoreapp.tar.gz -C ./obj/Docker/publish .', returnStdout: true); + } +} + +def docker_build(){ + dir('Merken.NetCoreBuild.App') { + dockerApiRequest('containers/netcoreapp/stop', 'POST'); + dockerApiRequest('containers/prune', 'POST'); + dockerApiRequest('images/netcoreapp', 'DELETE'); + dockerApiRequest('build?t=netcoreapp:' + VERSION_NUMBER + '&nocache=1&rm=1', 'POST', 'tar','', '@netcoreapp.tar.gz', true); + } +} + +def docker_run(){ + dir('Merken.NetCoreBuild.App') { + def containerId = createContainer(); + renameContainer(containerId); + startContainer(); + } +} + +def createContainer(){ + sh('echo \'{ "Image": "netcoreapp:' + VERSION_NUMBER + '", "ExposedPorts": { "5000/tcp" : {} }, "HostConfig": { "PortBindings": { "5000/tcp": [{ "HostPort": "5000" }] } } }\' > imageconf'); + + def createResponse = dockerApiRequest('containers/create', 'POST', 'json', 'json', '@imageconf'); + def containerId = createResponse.Id; + + return containerId; +} + +def renameContainer(containerId){ + def request = 'containers/' + containerId + '/rename?name=netcoreapp'; + dockerApiRequest(request, 'POST'); +} + +def startContainer(){ + dockerApiRequest('containers/netcoreapp/start', 'POST'); +} + +//Generates a version number +def getVersionNumber() { + def out = sh(script: 'git rev-list --count HEAD', returnStdout: true); + def array = out.split("\\r?\\n"); + def count = array[array.length - 1]; + + def commitCount = count.trim(); + + return commitCount; +} + +def dockerApiRequest(request, method, contenttype = 'json', accept = '', data = '', isDataBinary = false){ + def requestBuilder = 'curl -v -X ' + method + ' --unix-socket /var/run/docker.sock "http://0.0.0.0:2375/' + request + '"'; + + if(contenttype == 'json'){ + requestBuilder += ' -H "Content-Type:application/json"'; + } + + if(contenttype == 'tar'){ + requestBuilder += ' -H "Content-Type:application/x-tar"'; + } + + if(accept == 'json'){ + requestBuilder += ' -H "Accept: application/json"'; + } + + if(data.trim()){ + if(isDataBinary){ + requestBuilder += ' --data-binary ' + data + ' --dump-header - --no-buffer'; + }else{ + requestBuilder += ' -d ' + data; + } + } + + def response = sh(script: requestBuilder, returnStdout:true); + + if(accept == 'json'){ + def jsonSlurper = new JsonSlurper(); + def json = jsonSlurper.parseText(response); + return json; + } + + return null; +} \ No newline at end of file diff --git a/src/docker-compose/mongo/data/db/WiredTiger.turtle b/src/docker-compose/mongo/data/db/WiredTiger.turtle index ea0bc96..0d8cf9d 100644 --- a/src/docker-compose/mongo/data/db/WiredTiger.turtle +++ b/src/docker-compose/mongo/data/db/WiredTiger.turtle @@ -3,4 +3,4 @@ WiredTiger 10.0.2: (December 21, 2021) WiredTiger version major=10,minor=0,patch=2 file:WiredTiger.wt -access_pattern_hint=none,allocation_size=4KB,app_metadata=,assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,collator=,columns=,dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key=,huffman_value=,id=0,ignore_in_memory_cache_size=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=S,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,readonly=false,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),value_format=S,verbose=[],version=(major=1,minor=1),write_timestamp_usage=none,checkpoint=(WiredTigerCheckpoint.129073=(addr="018081e4e7b10cf78181e4228ff9ae8281e4cb791c0e808080e3028fc0e3010fc0",order=129073,time=1685215510,size=81920,newest_start_durable_ts=0,oldest_start_ts=0,newest_txn=270,newest_stop_durable_ts=0,newest_stop_ts=-1,newest_stop_txn=-11,prepare=0,write_gen=388099,run_write_gen=386079)),checkpoint_backup_info=,checkpoint_lsn=(98,494592) +access_pattern_hint=none,allocation_size=4KB,app_metadata=,assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,collator=,columns=,dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key=,huffman_value=,id=0,ignore_in_memory_cache_size=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=S,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,readonly=false,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),value_format=S,verbose=[],version=(major=1,minor=1),write_timestamp_usage=none,checkpoint=(WiredTigerCheckpoint.129161=(addr="018881e42b5966518981e489ac9f908a81e416856897808080e301ffc0e3010fc0",order=129161,time=1686737447,size=81920,newest_start_durable_ts=0,oldest_start_ts=0,newest_txn=12,newest_stop_durable_ts=0,newest_stop_ts=-1,newest_stop_txn=-11,prepare=0,write_gen=388377,run_write_gen=388367)),checkpoint_backup_info=,checkpoint_lsn=(103,7168) diff --git a/src/docker-compose/mongo/data/db/WiredTiger.wt b/src/docker-compose/mongo/data/db/WiredTiger.wt index f3d8e1e..1b77b6b 100644 Binary files a/src/docker-compose/mongo/data/db/WiredTiger.wt and b/src/docker-compose/mongo/data/db/WiredTiger.wt differ diff --git a/src/docker-compose/mongo/data/db/collection-2--4715807334585891142.wt b/src/docker-compose/mongo/data/db/collection-2--4715807334585891142.wt index f4bcbb8..e2d3c53 100644 Binary files a/src/docker-compose/mongo/data/db/collection-2--4715807334585891142.wt and b/src/docker-compose/mongo/data/db/collection-2--4715807334585891142.wt differ diff --git a/src/docker-compose/mongo/data/db/collection-4--4715807334585891142.wt b/src/docker-compose/mongo/data/db/collection-4--4715807334585891142.wt index aae3622..33d016d 100644 Binary files a/src/docker-compose/mongo/data/db/collection-4--4715807334585891142.wt and b/src/docker-compose/mongo/data/db/collection-4--4715807334585891142.wt differ diff --git a/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2022-12-04T12-37-21Z-00000 b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2022-12-04T12-37-21Z-00000 deleted file mode 100644 index 1cd098c..0000000 Binary files a/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2022-12-04T12-37-21Z-00000 and /dev/null differ diff --git a/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T20-06-30Z-00000 b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T20-06-30Z-00000 new file mode 100644 index 0000000..ca0e87c Binary files /dev/null and b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T20-06-30Z-00000 differ diff --git a/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T20-44-01Z-00000 b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T20-44-01Z-00000 new file mode 100644 index 0000000..5a53bf5 Binary files /dev/null and b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T20-44-01Z-00000 differ diff --git a/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T21-00-46Z-00000 b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T21-00-46Z-00000 new file mode 100644 index 0000000..783069e Binary files /dev/null and b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T21-00-46Z-00000 differ diff --git a/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T21-29-12Z-00000 b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T21-29-12Z-00000 new file mode 100644 index 0000000..80dffba Binary files /dev/null and b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-03T21-29-12Z-00000 differ diff --git a/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-14T10-07-47Z-00000 b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-14T10-07-47Z-00000 new file mode 100644 index 0000000..5a2e2b1 Binary files /dev/null and b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.2023-06-14T10-07-47Z-00000 differ diff --git a/src/docker-compose/mongo/data/db/diagnostic.data/metrics.interim b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.interim index 481207a..ab6956e 100644 Binary files a/src/docker-compose/mongo/data/db/diagnostic.data/metrics.interim and b/src/docker-compose/mongo/data/db/diagnostic.data/metrics.interim differ diff --git a/src/docker-compose/mongo/data/db/index-3--4715807334585891142.wt b/src/docker-compose/mongo/data/db/index-3--4715807334585891142.wt index f28fa74..5ac1cf3 100644 Binary files a/src/docker-compose/mongo/data/db/index-3--4715807334585891142.wt and b/src/docker-compose/mongo/data/db/index-3--4715807334585891142.wt differ diff --git a/src/docker-compose/mongo/data/db/index-5--4715807334585891142.wt b/src/docker-compose/mongo/data/db/index-5--4715807334585891142.wt index a25094d..d1862ee 100644 Binary files a/src/docker-compose/mongo/data/db/index-5--4715807334585891142.wt and b/src/docker-compose/mongo/data/db/index-5--4715807334585891142.wt differ diff --git a/src/docker-compose/mongo/data/db/index-6--4715807334585891142.wt b/src/docker-compose/mongo/data/db/index-6--4715807334585891142.wt index a7c6f04..a9e9489 100644 Binary files a/src/docker-compose/mongo/data/db/index-6--4715807334585891142.wt and b/src/docker-compose/mongo/data/db/index-6--4715807334585891142.wt differ diff --git a/src/docker-compose/mongo/data/db/journal/WiredTigerLog.0000000098 b/src/docker-compose/mongo/data/db/journal/WiredTigerLog.0000000103 similarity index 99% rename from src/docker-compose/mongo/data/db/journal/WiredTigerLog.0000000098 rename to src/docker-compose/mongo/data/db/journal/WiredTigerLog.0000000103 index c2aa94d..c4b1bbe 100644 Binary files a/src/docker-compose/mongo/data/db/journal/WiredTigerLog.0000000098 and b/src/docker-compose/mongo/data/db/journal/WiredTigerLog.0000000103 differ diff --git a/src/docker-compose/mongo/data/db/sizeStorer.wt b/src/docker-compose/mongo/data/db/sizeStorer.wt index 6799efa..127ad10 100644 Binary files a/src/docker-compose/mongo/data/db/sizeStorer.wt and b/src/docker-compose/mongo/data/db/sizeStorer.wt differ