mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-02-02 09:46:26 +00:00
ci: bump status-jenkins-lib version, don't use a branch (#6446)
* ci: bump status-jenkins-lib version, don't use a branch Also renamed `Jenkinsfile.nix` to `nix.Jenkinsfile` because the filename makes no sense. But left a symlink temporarily to not break things. Signed-off-by: Jakub Sokołowski <jakub@status.im> * nix: fix hash for Nim compiler checksums repo Signed-off-by: Jakub Sokołowski <jakub@status.im> * nix: do not create variable name conflicts Signed-off-by: Jakub Sokołowski <jakub@status.im> --------- Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
parent
949758ed74
commit
8c621b9ae6
2
ci/Jenkinsfile
vendored
2
ci/Jenkinsfile
vendored
@ -6,7 +6,7 @@
|
|||||||
* * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
* * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
||||||
* at your option. This file may not be copied, modified, or distributed except according to those terms.
|
* at your option. This file may not be copied, modified, or distributed except according to those terms.
|
||||||
*/
|
*/
|
||||||
library 'status-jenkins-lib@v1.8.14'
|
library 'status-jenkins-lib@v1.9.2'
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
/* This way we run the same Jenkinsfile on different platforms. */
|
/* This way we run the same Jenkinsfile on different platforms. */
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
#!/usr/bin/env groovy
|
|
||||||
/* beacon_chain
|
|
||||||
* Copyright (c) 2019-2024 Status Research & Development GmbH
|
|
||||||
* Licensed and distributed under either of
|
|
||||||
* * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
|
||||||
* * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
|
||||||
* at your option. This file may not be copied, modified, or distributed except according to those terms.
|
|
||||||
*/
|
|
||||||
library 'status-jenkins-lib@nix/flake-build'
|
|
||||||
|
|
||||||
pipeline {
|
|
||||||
/* This way we run the same Jenkinsfile on different platforms. */
|
|
||||||
agent { label params.AGENT_LABEL }
|
|
||||||
|
|
||||||
parameters {
|
|
||||||
string(
|
|
||||||
name: 'AGENT_LABEL',
|
|
||||||
description: 'Label for targetted CI slave host: linux/macos',
|
|
||||||
defaultValue: params.AGENT_LABEL ?: getAgentLabel(),
|
|
||||||
)
|
|
||||||
choice(
|
|
||||||
name: 'VERBOSITY',
|
|
||||||
description: 'Value for the V make flag to increase log verbosity',
|
|
||||||
choices: [0, 1, 2]
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
options {
|
|
||||||
timestamps()
|
|
||||||
ansiColor('xterm')
|
|
||||||
/* This also includes wait time in the queue. */
|
|
||||||
timeout(time: 1, unit: 'HOURS')
|
|
||||||
/* Limit builds retained. */
|
|
||||||
buildDiscarder(logRotator(
|
|
||||||
numToKeepStr: '5',
|
|
||||||
daysToKeepStr: '30',
|
|
||||||
))
|
|
||||||
/* Abort old builds for non-main branches. */
|
|
||||||
disableConcurrentBuilds(
|
|
||||||
abortPrevious: !isMainBranch()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
stages {
|
|
||||||
stage('Beacon Node') {
|
|
||||||
steps { script {
|
|
||||||
nix.flake('beacon_node')
|
|
||||||
} }
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Version check') {
|
|
||||||
steps { script {
|
|
||||||
sh 'result/bin/nimbus_beacon_node --version'
|
|
||||||
} }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
post {
|
|
||||||
always {
|
|
||||||
cleanWs(
|
|
||||||
disableDeferredWipeout: true,
|
|
||||||
deleteDirs: true
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def isMainBranch() {
|
|
||||||
return ['stable', 'testing', 'unstable'].contains(env.BRANCH_NAME)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This allows us to use one Jenkinsfile and run
|
|
||||||
* jobs on different platforms based on job name. */
|
|
||||||
def getAgentLabel() {
|
|
||||||
if (params.AGENT_LABEL) { return params.AGENT_LABEL }
|
|
||||||
/* We extract the name of the job from currentThread because
|
|
||||||
* before an agent is picket env is not available. */
|
|
||||||
def tokens = Thread.currentThread().getName().split('/')
|
|
||||||
def labels = []
|
|
||||||
/* Check if the job path contains any of the valid labels. */
|
|
||||||
['linux', 'macos', 'x86_64', 'aarch64', 'arm64'].each {
|
|
||||||
if (tokens.contains(it)) { labels.add(it) }
|
|
||||||
}
|
|
||||||
return labels.join(' && ')
|
|
||||||
}
|
|
1
ci/Jenkinsfile.nix
Symbolic link
1
ci/Jenkinsfile.nix
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
nix.Jenkinsfile
|
85
ci/nix.Jenkinsfile
Normal file
85
ci/nix.Jenkinsfile
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
#!/usr/bin/env groovy
|
||||||
|
/* beacon_chain
|
||||||
|
* Copyright (c) 2019-2024 Status Research & Development GmbH
|
||||||
|
* Licensed and distributed under either of
|
||||||
|
* * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
||||||
|
* * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
||||||
|
* at your option. This file may not be copied, modified, or distributed except according to those terms.
|
||||||
|
*/
|
||||||
|
library 'status-jenkins-lib@v1.9.2'
|
||||||
|
|
||||||
|
pipeline {
|
||||||
|
/* This way we run the same Jenkinsfile on different platforms. */
|
||||||
|
agent { label params.AGENT_LABEL }
|
||||||
|
|
||||||
|
parameters {
|
||||||
|
string(
|
||||||
|
name: 'AGENT_LABEL',
|
||||||
|
description: 'Label for targetted CI slave host: linux/macos',
|
||||||
|
defaultValue: params.AGENT_LABEL ?: getAgentLabel(),
|
||||||
|
)
|
||||||
|
choice(
|
||||||
|
name: 'VERBOSITY',
|
||||||
|
description: 'Value for the V make flag to increase log verbosity',
|
||||||
|
choices: [0, 1, 2]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
options {
|
||||||
|
timestamps()
|
||||||
|
ansiColor('xterm')
|
||||||
|
/* This also includes wait time in the queue. */
|
||||||
|
timeout(time: 1, unit: 'HOURS')
|
||||||
|
/* Limit builds retained. */
|
||||||
|
buildDiscarder(logRotator(
|
||||||
|
numToKeepStr: '5',
|
||||||
|
daysToKeepStr: '30',
|
||||||
|
))
|
||||||
|
/* Abort old builds for non-main branches. */
|
||||||
|
disableConcurrentBuilds(
|
||||||
|
abortPrevious: !isMainBranch()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage('Beacon Node') {
|
||||||
|
steps { script {
|
||||||
|
nix.flake('beacon_node')
|
||||||
|
} }
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Version check') {
|
||||||
|
steps { script {
|
||||||
|
sh 'result/bin/nimbus_beacon_node --version'
|
||||||
|
} }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
post {
|
||||||
|
always {
|
||||||
|
cleanWs(
|
||||||
|
disableDeferredWipeout: true,
|
||||||
|
deleteDirs: true
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def isMainBranch() {
|
||||||
|
return ['stable', 'testing', 'unstable'].contains(env.BRANCH_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* This allows us to use one Jenkinsfile and run
|
||||||
|
* jobs on different platforms based on job name. */
|
||||||
|
def getAgentLabel() {
|
||||||
|
if (params.AGENT_LABEL) { return params.AGENT_LABEL }
|
||||||
|
/* We extract the name of the job from currentThread because
|
||||||
|
* before an agent is picket env is not available. */
|
||||||
|
def tokens = Thread.currentThread().getName().split('/')
|
||||||
|
def labels = []
|
||||||
|
/* Check if the job path contains any of the valid labels. */
|
||||||
|
['linux', 'macos', 'x86_64', 'aarch64', 'arm64'].each {
|
||||||
|
if (tokens.contains(it)) { labels.add(it) }
|
||||||
|
}
|
||||||
|
return labels.join(' && ')
|
||||||
|
}
|
@ -8,5 +8,5 @@ in pkgs.fetchFromGitHub {
|
|||||||
repo = "checksums";
|
repo = "checksums";
|
||||||
rev = tools.findKeyValue "^ +ChecksumsStableCommit = \"([a-f0-9]+)\"$" sourceFile;
|
rev = tools.findKeyValue "^ +ChecksumsStableCommit = \"([a-f0-9]+)\"$" sourceFile;
|
||||||
# WARNING: Requires manual updates when Nim compiler version changes.
|
# WARNING: Requires manual updates when Nim compiler version changes.
|
||||||
hash = "sha256-AIiMBqLcGJCTkINHfJ2dN3ogitU7Za9Z9Sv9zjKeOQk=";
|
hash = "sha256-RB2IXs2xcfYHhV9d7l1mtHW51mtsrqrYRapSoTikvHw=";
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ let
|
|||||||
in {
|
in {
|
||||||
findKeyValue = regex: sourceFile:
|
findKeyValue = regex: sourceFile:
|
||||||
let
|
let
|
||||||
linesFrom = sourceFile: splitString "\n" (fileContents sourceFile);
|
linesFrom = file: splitString "\n" (fileContents file);
|
||||||
matching = regex: lines: map (line: match regex line) lines;
|
matching = regex: lines: map (line: match regex line) lines;
|
||||||
extractMatch = matches: last (flatten (remove null matches));
|
extractMatch = matches: last (flatten (remove null matches));
|
||||||
in
|
in
|
||||||
|
Loading…
x
Reference in New Issue
Block a user