Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Kestrel Collaboration
Kestrel Firmware
Bare Metal Firmware
Commits
51c96232
Commit
51c96232
authored
4 years ago
by
Evan Lojewski
Committed by
Raptor Engineering Development Team
4 years ago
Browse files
Options
Download
Email Patches
Plain Diff
jenkins: pull in jenkins CI configuration from the boot rom.
parent
91dfc503
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
163 additions
and
0 deletions
+163
-0
.jenkins.groovy
.jenkins.groovy
+163
-0
No files found.
.jenkins.groovy
0 → 100644
View file @
51c96232
////////////////////////////////////////////////////////////////////////////////
///
/// @file .jenkins.groovy
///
/// @project
///
/// @brief Main Jenkins configuration
///
////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////
///
/// @copyright Copyright (c) 2019-2021, Evan Lojewski
/// @cond
///
/// All rights reserved.
///
/// Redistribution and use in source and binary forms, with or without
/// modification, are permitted provided that the following conditions are met:
/// 1. Redistributions of source code must retain the above copyright notice,
/// this list of conditions and the following disclaimer.
/// 2. Redistributions in binary form must reproduce the above copyright notice,
/// this list of conditions and the following disclaimer in the documentation
/// and/or other materials provided with the distribution.
/// 3. Neither the name of the copyright holder nor the
/// names of its contributors may be used to endorse or promote products
/// derived from this software without specific prior written permission.
///
////////////////////////////////////////////////////////////////////////////////
///
/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
/// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
/// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
/// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
/// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
/// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
/// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
/// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
/// POSSIBILITY OF SUCH DAMAGE.
/// @endcond
////////////////////////////////////////////////////////////////////////////////
def
notify
(
status
,
description
)
{
updateGitlabCommitStatus
name:
'build'
,
state:
status
}
def
build
(
nodeName
,
archive
=
false
,
archive_cab
=
false
,
analyze
=
true
,
test_archive
=
false
)
{
node
(
nodeName
)
{
cleanWs
()
def
URL
=
''
def
REFSPEC
=
env
[
'gitlabBranch'
]
try
{
URL
=
env
[
'gitlabSourceRepoHttpUrl'
]
}
catch
(
exc
)
{
URL
=
'http://gitlab.raptorengineering.com/kestrel-collaboration/firmware.git'
}
def
HASH
=
''
try
{
HASH
=
env
[
'gitlabMergeRequestLastCommit'
]
}
catch
(
exc
)
{
try
{
HASH
=
GITHUB_PR_HEAD_SHA
REFSPEC
=
'+refs/pull/*:refs/remotes/origin/pr/*'
}
catch
(
exc2
)
{
HASH
=
'**'
}
}
stage
(
'checkout'
)
{
def
scmVars
=
checkout
(
[
$class
:
'GitSCM'
,
branches:
[[
name:
HASH
]],
userRemoteConfigs:
[[
refspec:
REFSPEC
,
url:
URL
]],
browser:
[
$class
:
'GitLab'
,
repoUrl:
'http://gitlab.raptorengineering.com/kestrel-collaboration/firmware'
],
doGenerateSubmoduleConfigurations:
false
,
extensions:
[
[
$class
:
'SubmoduleOption'
,
disableSubmodules:
false
,
parentCredentials:
false
,
recursiveSubmodules:
false
,
reference:
''
,
trackingSubmodules:
false
]
],
submoduleCfg:
[]
])
def
GIT_SUBJECT
=
sh
(
script:
'git show -s --format=%s'
,
returnStdout:
true
,
).
trim
()
currentBuild
.
description
=
GIT_SUBJECT
}
stage
(
'build'
)
{
if
(
analyze
)
{
sh
'./build.sh'
}
else
{
sh
'./build.sh -DDISABLE_CLANG_ANALYZER=True'
}
if
(
archive
)
{
dir
(
'build'
)
{
archiveArtifacts
artifacts:
'*.zip'
,
fingerprint:
true
archiveArtifacts
artifacts:
'*.tar.gz'
,
fingerprint:
true
}
}
}
cleanWs
()
}
}
try
{
notify
(
'pending'
,
'Build Pending '
)
parallel
(
"fedora"
:
{
build
(
'master'
,
true
,
true
,
true
,
true
)
},
// "ubuntu-18.04": { build('ubuntu-18.04', false, false, false, false) },
// "ubuntu-20.04": { build('ubuntu-20.04', true, false, false, false) },
// "freebsd-12": { build('freebsd-12', true, false, false, false) },
)
}
catch
(
e
)
{
currentBuild
.
result
=
'FAILURE'
throw
e
}
finally
{
cleanWs
()
def
currentResult
=
currentBuild
.
result
?:
'SUCCESS'
if
(
currentResult
==
'SUCCESS'
)
{
notify
(
'success'
,
'Build Passed '
)
}
else
{
notify
(
'failed'
,
'Build Failed '
)
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment