mirror of
https://github.com/velopack/velopack.git
synced 2025-10-25 15:19:22 +00:00
ci: wip
This commit is contained in:
@@ -7,5 +7,5 @@ tw86 = "test --target i686-pc-windows-msvc --features windows"
|
||||
bw = "build --features windows"
|
||||
bw86 = "build --target i686-pc-windows-msvc --features windows"
|
||||
|
||||
[build]
|
||||
rustflags = ["-C", "target-feature=+crt-static"]
|
||||
#[build]
|
||||
#rustflags = ["-C", "target-feature=+crt-static"]
|
||||
26
.github/workflows/build.yml
vendored
26
.github/workflows/build.yml
vendored
@@ -52,11 +52,17 @@ jobs:
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: "rust-build-windows"
|
||||
- name: Prepare Cargo
|
||||
run: |
|
||||
cargo install cargo-edit -f
|
||||
cargo set-version $NBGV_NuGetPackageVersion
|
||||
- name: Install Windows7 Rust Toolchain
|
||||
run: |
|
||||
rustup toolchain install 1.75.0-x86_64-pc-windows-msvc
|
||||
rustup target add i686-pc-windows-msvc --toolchain 1.75.0-x86_64-pc-windows-msvc
|
||||
- name: Build Rust
|
||||
env:
|
||||
RUSTFLAGS: -C target-feature=+crt-static
|
||||
run: cargo +1.75.0-x86_64-pc-windows-msvc build --target i686-pc-windows-msvc --features windows --release
|
||||
- name: Upload Rust Build Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -82,16 +88,18 @@ jobs:
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: "rust-build-linux"
|
||||
- name: Build Rust (x64)
|
||||
run: |
|
||||
cargo build --release --target x86_64-unknown-linux-gnu
|
||||
cp ./target/x86_64-unknown-linux-gnu/release/update ./target/release/UpdateNix_x64
|
||||
- name: Build Rust (arm64)
|
||||
env:
|
||||
CROSS_NuGetPackageVersion: ${{ steps.nbgv.outputs.NuGetPackageVersion }}
|
||||
- name: Prepare Cargo
|
||||
run: |
|
||||
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
|
||||
cargo binstall cross --no-confirm --force
|
||||
cargo binstall cargo-edit --no-confirm --force
|
||||
cargo set-version $NBGV_NuGetPackageVersion
|
||||
- name: Build Rust (x64)
|
||||
run: |
|
||||
cross build --release --target x86_64-unknown-linux-gnu
|
||||
cp ./target/x86_64-unknown-linux-gnu/release/update ./target/release/UpdateNix_x64
|
||||
- name: Build Rust (arm64)
|
||||
run: |
|
||||
cross build --release --target aarch64-unknown-linux-gnu
|
||||
cp ./target/aarch64-unknown-linux-gnu/release/update ./target/release/UpdateNix_arm64
|
||||
- name: Upload Rust Build Artifacts
|
||||
@@ -118,6 +126,10 @@ jobs:
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: "rust-build-${{ matrix.os }}"
|
||||
- name: Prepare Cargo
|
||||
run: |
|
||||
cargo install cargo-edit -f
|
||||
cargo set-version $NBGV_NuGetPackageVersion
|
||||
- name: Build Rust
|
||||
run: |
|
||||
cargo build --release
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
[target.aarch64-unknown-linux-gnu]
|
||||
[target.x86_64-unknown-linux-gnu]
|
||||
pre-build = [
|
||||
"dpkg --add-architecture $CROSS_DEB_ARCH",
|
||||
"apt-get update && apt-get install -y libssl-dev:$CROSS_DEB_ARCH",
|
||||
]
|
||||
|
||||
[target.aarch64-unknown-linux-gnu]
|
||||
pre-build = [
|
||||
"dpkg --add-architecture $CROSS_DEB_ARCH",
|
||||
"apt-get update && apt-get install -y libssl-dev:$CROSS_DEB_ARCH",
|
||||
]
|
||||
@@ -6,7 +6,7 @@ fn main() {
|
||||
#[cfg(target_os = "windows")]
|
||||
delay_load();
|
||||
|
||||
let version = get_package_version();
|
||||
let version = env!("CARGO_PKG_VERSION");
|
||||
let ver = semver::Version::parse(&version).expect("Unable to parse ngbv output as semver version");
|
||||
let ver: u64 = ver.major << 48 | ver.minor << 32 | ver.patch << 16;
|
||||
let desc = format!("Velopack {}", version);
|
||||
@@ -27,34 +27,18 @@ fn main() {
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
fn get_package_version() -> String {
|
||||
if let Ok(version) = env::var("NuGetPackageVersion") {
|
||||
// NuGetPackageVersion is set, return it trimmed
|
||||
return version.trim().to_string();
|
||||
} else if let Ok(version) = env::var("NBGV_NuGetPackageVersion") {
|
||||
// NBGV_NuGetPackageVersion is set, return it trimmed
|
||||
return version.trim().to_string();
|
||||
} else if let Ok(version) = env::var("CROSS_NuGetPackageVersion") {
|
||||
// NBGV_NuGetPackageVersion is set, return it trimmed
|
||||
return version.trim().to_string();
|
||||
} else if env::var("CI").is_ok() {
|
||||
// CI is set, NuGetPackageVersion should be set always in CI
|
||||
panic!("Error: NuGetPackageVersion must be set in CI");
|
||||
} else {
|
||||
// CI is not set, return "v0.0.0-local"
|
||||
return "0.0.0-local".to_string();
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
fn delay_load() {
|
||||
delay_load_exe("update");
|
||||
delay_load_exe("setup");
|
||||
delay_load_exe("stub");
|
||||
println!("cargo:rustc-link-arg=/DEPENDENTLOADFLAG:0x800");
|
||||
println!("cargo:rustc-link-arg=/WX");
|
||||
println!("cargo:rustc-link-arg=/IGNORE:4099"); // PDB was not found
|
||||
println!("cargo:rustc-link-arg=/IGNORE:4199"); // delayload ignored, no imports found
|
||||
let features = env::var("CARGO_CFG_TARGET_FEATURE").unwrap_or_default();
|
||||
if features.contains("crt-static") {
|
||||
delay_load_exe("update");
|
||||
delay_load_exe("setup");
|
||||
delay_load_exe("stub");
|
||||
println!("cargo:rustc-link-arg=/DEPENDENTLOADFLAG:0x800");
|
||||
println!("cargo:rustc-link-arg=/WX");
|
||||
println!("cargo:rustc-link-arg=/IGNORE:4099"); // PDB was not found
|
||||
println!("cargo:rustc-link-arg=/IGNORE:4199"); // delayload ignored, no imports found
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/rust-lang/rustup/blob/master/build.rs#L45
|
||||
|
||||
Reference in New Issue
Block a user