(feature): add dummy jenkinsfile
This commit is contained in:
parent
b2c7a68070
commit
12edae98bb
159
Jenkinsfile
vendored
Normal file
159
Jenkinsfile
vendored
Normal file
@ -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;
|
||||
}
|
||||
@ -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)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user