chore(build): use premade docker env
This commit is contained in:
1 file changed
+11
-42
Vendored
+11
-42
@@ -1,30 +1,5 @@
|
|||||||
def getArch(target) {
|
|
||||||
return target.tokenize('-')[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
def getGCCTarget(rust_target) {
|
|
||||||
def targetMapping = [
|
|
||||||
"aarch64-unknown-linux-musl": "aarch64-linux-musl",
|
|
||||||
"arm-unknown-linux-musleabi": "arm-linux-musleabi",
|
|
||||||
"armv7-unknown-linux-musleabi": "armv7m-linux-musleabi",
|
|
||||||
"armv7-unknown-linux-musleabihf": "armv7l-linux-musleabihf",
|
|
||||||
"mips-unknown-linux-musl": "mips-linux-muslsf",
|
|
||||||
"mips64-unknown-linux-muslabi64": "mips64-linux-musl",
|
|
||||||
"mips64el-unknown-linux-muslabi64": "mips64el-linux-musl",
|
|
||||||
"mipsel-unknown-linux-musl": "mipsel-linux-muslsf",
|
|
||||||
"x86_64-unknown-linux-musl": "x86_64-linux-musl"
|
|
||||||
]
|
|
||||||
|
|
||||||
return targetMapping[rust_target]
|
|
||||||
}
|
|
||||||
|
|
||||||
// CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER
|
|
||||||
def getLinkerEnv(target) {
|
|
||||||
return 'CARGO_TARGET_' + target.replaceAll('-', '_').toUpperCase() + '_LINKER'
|
|
||||||
}
|
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { dockerfile true }
|
agent any
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
stage('Main') {
|
stage('Main') {
|
||||||
@@ -32,28 +7,22 @@ pipeline {
|
|||||||
axes {
|
axes {
|
||||||
axis {
|
axis {
|
||||||
name 'TARGET'
|
name 'TARGET'
|
||||||
values 'aarch64-unknown-linux-musl', 'arm-unknown-linux-musleabi', 'armv7-unknown-linux-musleabi', 'armv7-unknown-linux-musleabihf','mips-unknown-linux-musl', 'mips64-unknown-linux-muslabi64', 'mips64el-unknown-linux-muslabi64', 'mipsel-unknown-linux-musl', 'x86_64-unknown-linux-musl'
|
values 'x86_64-musl', 'i686-musl', 'arm-musleabi', 'arm-musleabihf', 'armv7-musleabi', 'armv7-musleabihf', 'aarch64-musl', 'mips-musl', 'mipsel-musl', 'mips64-musl', 'mips64el-musl', 'mips64-muslabi64', 'mips64el-muslabi64', 'riscv64gc-musl'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
environment {
|
agent {
|
||||||
GCC_TARGET = getGCCTarget(TARGET)
|
docker {
|
||||||
TARGET_ARCH = getArch(GCC_TARGET)
|
image "ghcr.io/rust-cross/rust-musl-cross:${TARGET}"
|
||||||
GCC = "${GCC_TARGET}-gcc"
|
}
|
||||||
LINKER_ENV_KEY = getLinkerEnv(TARGET)
|
}
|
||||||
PATH_CC = "/opt/${GCC_TARGET}-cross/bin:/home/sdk/.cargo/bin"
|
|
||||||
RUSTFLAGS = "-C target-feature=+crt-static -C link-arg=-fuse-ld=lld"
|
|
||||||
}
|
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
stage('Build') {
|
stage('Build') {
|
||||||
steps {
|
steps {
|
||||||
sh '''
|
sh '''
|
||||||
export CC="$GCC" PATH="$PATH_CC:$PATH"
|
cargo build \
|
||||||
cargo +nightly build \
|
--release
|
||||||
-Z build-std=std,panic_abort \
|
|
||||||
-Z build-std-features="optimize_for_size" \
|
|
||||||
--target $TARGET --release
|
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -61,8 +30,8 @@ pipeline {
|
|||||||
stage('Archive artifact') {
|
stage('Archive artifact') {
|
||||||
steps {
|
steps {
|
||||||
dir("target/${TARGET}/release") {
|
dir("target/${TARGET}/release") {
|
||||||
sh "cp -v sqm-autorate-rust sqm-autorate-rust-${TARGET_ARCH}"
|
sh "cp -v sqm-autorate-rust sqm-autorate-rust-${TARGET}"
|
||||||
archiveArtifacts artifacts: "sqm-autorate-rust-${TARGET_ARCH}", fingerprint: true, onlyIfSuccessful: true
|
archiveArtifacts artifacts: "sqm-autorate-rust-${TARGET}", fingerprint: true, onlyIfSuccessful: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user