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"
|
bw = "build --features windows"
|
||||||
bw86 = "build --target i686-pc-windows-msvc --features windows"
|
bw86 = "build --target i686-pc-windows-msvc --features windows"
|
||||||
|
|
||||||
[build]
|
#[build]
|
||||||
rustflags = ["-C", "target-feature=+crt-static"]
|
#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
|
- uses: Swatinem/rust-cache@v2
|
||||||
with:
|
with:
|
||||||
key: "rust-build-windows"
|
key: "rust-build-windows"
|
||||||
|
- name: Prepare Cargo
|
||||||
|
run: |
|
||||||
|
cargo install cargo-edit -f
|
||||||
|
cargo set-version $NBGV_NuGetPackageVersion
|
||||||
- name: Install Windows7 Rust Toolchain
|
- name: Install Windows7 Rust Toolchain
|
||||||
run: |
|
run: |
|
||||||
rustup toolchain install 1.75.0-x86_64-pc-windows-msvc
|
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
|
rustup target add i686-pc-windows-msvc --toolchain 1.75.0-x86_64-pc-windows-msvc
|
||||||
- name: Build Rust
|
- 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
|
run: cargo +1.75.0-x86_64-pc-windows-msvc build --target i686-pc-windows-msvc --features windows --release
|
||||||
- name: Upload Rust Build Artifacts
|
- name: Upload Rust Build Artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
@@ -82,16 +88,18 @@ jobs:
|
|||||||
- uses: Swatinem/rust-cache@v2
|
- uses: Swatinem/rust-cache@v2
|
||||||
with:
|
with:
|
||||||
key: "rust-build-linux"
|
key: "rust-build-linux"
|
||||||
- name: Build Rust (x64)
|
- name: Prepare Cargo
|
||||||
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 }}
|
|
||||||
run: |
|
run: |
|
||||||
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
|
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 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
|
cross build --release --target aarch64-unknown-linux-gnu
|
||||||
cp ./target/aarch64-unknown-linux-gnu/release/update ./target/release/UpdateNix_arm64
|
cp ./target/aarch64-unknown-linux-gnu/release/update ./target/release/UpdateNix_arm64
|
||||||
- name: Upload Rust Build Artifacts
|
- name: Upload Rust Build Artifacts
|
||||||
@@ -118,6 +126,10 @@ jobs:
|
|||||||
- uses: Swatinem/rust-cache@v2
|
- uses: Swatinem/rust-cache@v2
|
||||||
with:
|
with:
|
||||||
key: "rust-build-${{ matrix.os }}"
|
key: "rust-build-${{ matrix.os }}"
|
||||||
|
- name: Prepare Cargo
|
||||||
|
run: |
|
||||||
|
cargo install cargo-edit -f
|
||||||
|
cargo set-version $NBGV_NuGetPackageVersion
|
||||||
- name: Build Rust
|
- name: Build Rust
|
||||||
run: |
|
run: |
|
||||||
cargo build --release
|
cargo build --release
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
[target.aarch64-unknown-linux-gnu]
|
[target.x86_64-unknown-linux-gnu]
|
||||||
pre-build = [
|
pre-build = [
|
||||||
"dpkg --add-architecture $CROSS_DEB_ARCH",
|
"dpkg --add-architecture $CROSS_DEB_ARCH",
|
||||||
"apt-get update && apt-get install -y libssl-dev:$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")]
|
#[cfg(target_os = "windows")]
|
||||||
delay_load();
|
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 = 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 ver: u64 = ver.major << 48 | ver.minor << 32 | ver.patch << 16;
|
||||||
let desc = format!("Velopack {}", version);
|
let desc = format!("Velopack {}", version);
|
||||||
@@ -27,34 +27,18 @@ fn main() {
|
|||||||
.unwrap();
|
.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")]
|
#[cfg(target_os = "windows")]
|
||||||
fn delay_load() {
|
fn delay_load() {
|
||||||
delay_load_exe("update");
|
let features = env::var("CARGO_CFG_TARGET_FEATURE").unwrap_or_default();
|
||||||
delay_load_exe("setup");
|
if features.contains("crt-static") {
|
||||||
delay_load_exe("stub");
|
delay_load_exe("update");
|
||||||
println!("cargo:rustc-link-arg=/DEPENDENTLOADFLAG:0x800");
|
delay_load_exe("setup");
|
||||||
println!("cargo:rustc-link-arg=/WX");
|
delay_load_exe("stub");
|
||||||
println!("cargo:rustc-link-arg=/IGNORE:4099"); // PDB was not found
|
println!("cargo:rustc-link-arg=/DEPENDENTLOADFLAG:0x800");
|
||||||
println!("cargo:rustc-link-arg=/IGNORE:4199"); // delayload ignored, no imports found
|
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
|
// https://github.com/rust-lang/rustup/blob/master/build.rs#L45
|
||||||
|
|||||||
Reference in New Issue
Block a user