From: garciadeblas Date: Wed, 16 Oct 2019 09:56:23 +0000 (+0200) Subject: Added Dockerfile, Jenkinsfile and devops-stage with swagger validation X-Git-Tag: v7.1.0rc1~2 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=61a64d3a36f4913cae95b2509d85e74f3f361134;p=osm%2FSOL005.git Added Dockerfile, Jenkinsfile and devops-stage with swagger validation Change-Id: I684a8f4d732a8b11c0f84ab17dc6e5e1db096b12 Signed-off-by: garciadeblas --- diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bc6676d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This Dockerfile is intented for devops and deb package generation + +FROM alpine:latest + +RUN apk update +RUN apk add bash +RUN apk add nodejs +RUN apk add nodejs-npm +RUN npm install -g swagger-cli +RUN npm install -g speccy + diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..fbe9942 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,46 @@ +/* + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +properties([ + parameters([ + string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'), + string(defaultValue: 'osm/SOL005', description: '', name: 'GERRIT_PROJECT'), + string(defaultValue: env.GERRIT_REFSPEC, description: '', name: 'GERRIT_REFSPEC'), + string(defaultValue: env.GERRIT_PATCHSET_REVISION, description: '', name: 'GERRIT_PATCHSET_REVISION'), + string(defaultValue: 'https://osm.etsi.org/gerrit', description: '', name: 'PROJECT_URL_PREFIX'), + booleanParam(defaultValue: false, description: '', name: 'TEST_INSTALL'), + string(defaultValue: 'artifactory-osm', description: '', name: 'ARTIFACTORY_SERVER'), + ]) +]) + +def devops_checkout() { + dir('devops') { + git url: "${PROJECT_URL_PREFIX}/osm/devops", branch: params.GERRIT_BRANCH + } +} + +node('docker') { + checkout scm + devops_checkout() + + ci_stage_2 = load "devops/jenkins/ci-pipelines/ci_stage_2.groovy" + ci_stage_2.ci_pipeline( 'SOL005', + params.PROJECT_URL_PREFIX, + params.GERRIT_PROJECT, + params.GERRIT_BRANCH, + params.GERRIT_REFSPEC, + params.GERRIT_PATCHSET_REVISION, + params.TEST_INSTALL, + params.ARTIFACTORY_SERVER) +} diff --git a/devops-stages/stage-archive.sh b/devops-stages/stage-archive.sh new file mode 100755 index 0000000..a82f9ea --- /dev/null +++ b/devops-stages/stage-archive.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + diff --git a/devops-stages/stage-build.sh b/devops-stages/stage-build.sh new file mode 100755 index 0000000..a82f9ea --- /dev/null +++ b/devops-stages/stage-build.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + diff --git a/devops-stages/stage-test.sh b/devops-stages/stage-test.sh new file mode 100755 index 0000000..b7693a7 --- /dev/null +++ b/devops-stages/stage-test.sh @@ -0,0 +1,32 @@ +#!/bin/sh +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +specfiles=$(ls | egrep "^[^.]*.(json|yaml)") + +fres=0 +for i in $specfiles ; do + echo "-- Validating and linting OpenAPI file $i..." + swagger-cli validate "$i" + res=$? + speccy lint "$i" --skip openapi-tags-alphabetical + res2=$? + fres=$(($fres||$res||$res2)) + echo "--- Validator returned $res, linter returned $res2." +done + +echo "-- Final validation returns $fres." + +exit $fres +