Add initial libc build to CI

This commit is contained in:
Caelan Sayler
2024-10-20 01:10:53 +01:00
committed by Caelan
parent 1de333c616
commit abb220ba3b

View File

@@ -40,20 +40,32 @@ jobs:
target\i686-pc-windows-msvc\release\*.exe target\i686-pc-windows-msvc\release\*.exe
target\i686-pc-windows-msvc\release\*.pdb target\i686-pc-windows-msvc\release\*.pdb
- name: Build velopack_nodeffi (x64) - name: Build velopack_nodeffi (x64)
run: cargo +1.75.0-x86_64-pc-windows-msvc build --target x86_64-pc-windows-msvc --release --package velopack_nodeffi run: |
cargo +1.75.0-x86_64-pc-windows-msvc build --target x86_64-pc-windows-msvc --release --package velopack_nodeffi
cargo +1.75.0-x86_64-pc-windows-msvc build --target x86_64-pc-windows-msvc --release --package velopack_libc
- name: Build velopack_nodeffi (arm64) - name: Build velopack_nodeffi (arm64)
run: cargo +1.75.0-x86_64-pc-windows-msvc build --target aarch64-pc-windows-msvc --release --package velopack_nodeffi run: |
cargo +1.75.0-x86_64-pc-windows-msvc build --target aarch64-pc-windows-msvc --release --package velopack_nodeffi
cargo +1.75.0-x86_64-pc-windows-msvc build --target aarch64-pc-windows-msvc --release --package velopack_libc
- name: Collect Artifacts - name: Collect Artifacts
run: | run: |
move target\i686-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_x86_msvc.node move target\i686-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_x86_msvc.node
move target\x86_64-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_x64_msvc.node move target\x86_64-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_x64_msvc.node
move target\aarch64-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_arm64_msvc.node move target\aarch64-pc-windows-msvc\release\velopack_nodeffi.dll target\velopack_nodeffi_win_arm64_msvc.node
move target\i686-pc-windows-msvc\release\velopack_libc.dll target\velopack_libc_win_x86_msvc.dll
move target\x86_64-pc-windows-msvc\release\velopack_libc.dll target\velopack_libc_win_x64_msvc.dll
move target\aarch64-pc-windows-msvc\release\velopack_libc.dll target\velopack_libc_win_arm64_msvc.dll
move target\i686-pc-windows-msvc\release\velopack_libc.dll.lib target\velopack_libc_win_x86_msvc.lib
move target\x86_64-pc-windows-msvc\release\velopack_libc.dll.lib target\velopack_libc_win_x64_msvc.lib
move target\aarch64-pc-windows-msvc\release\velopack_libc.dll.lib target\velopack_libc_win_arm64_msvc.lib
- name: Upload Rust Build Artifacts - name: Upload Rust Build Artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: rust-windows-latest-libs name: rust-windows-latest-libs
path: | path: |
target\*.node target\*.node
target\*.dll
target\*.lib
- name: Cancel workflow if failed - name: Cancel workflow if failed
uses: andymckay/cancel-action@0.5 uses: andymckay/cancel-action@0.5
if: ${{ failure() }} if: ${{ failure() }}
@@ -80,12 +92,14 @@ jobs:
ldd ./target/x86_64-unknown-linux-gnu/release/update || true ldd ./target/x86_64-unknown-linux-gnu/release/update || true
cp ./target/x86_64-unknown-linux-gnu/release/update ./target/UpdateNix_x64 cp ./target/x86_64-unknown-linux-gnu/release/update ./target/UpdateNix_x64
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_x64_gnu.node cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_x64_gnu.node
cp ./target/x86_64-unknown-linux-gnu/release/libvelopack_libc.so ./target/velopack_libc_linux_x64_gnu.so
- name: Build Rust (arm64) - name: Build Rust (arm64)
run: | run: |
cross build --release --target aarch64-unknown-linux-gnu cross build --release --target aarch64-unknown-linux-gnu
ldd ./target/aarch64-unknown-linux-gnu/release/update || true ldd ./target/aarch64-unknown-linux-gnu/release/update || true
cp ./target/aarch64-unknown-linux-gnu/release/update ./target/UpdateNix_arm64 cp ./target/aarch64-unknown-linux-gnu/release/update ./target/UpdateNix_arm64
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_arm64_gnu.node cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_nodeffi.so ./target/velopack_nodeffi_linux_arm64_gnu.node
cp ./target/aarch64-unknown-linux-gnu/release/libvelopack_libc.so ./target/velopack_libc_linux_arm64_gnu.so
- name: Upload Rust Build Artifacts - name: Upload Rust Build Artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
@@ -128,6 +142,8 @@ jobs:
file ./target/UpdateMac file ./target/UpdateMac
lipo -create -output ./target/velopack_nodeffi_osx.node ./target/x86_64-apple-darwin/release/libvelopack_nodeffi.dylib ./target/aarch64-apple-darwin/release/libvelopack_nodeffi.dylib lipo -create -output ./target/velopack_nodeffi_osx.node ./target/x86_64-apple-darwin/release/libvelopack_nodeffi.dylib ./target/aarch64-apple-darwin/release/libvelopack_nodeffi.dylib
file ./target/velopack_nodeffi_osx.node file ./target/velopack_nodeffi_osx.node
lipo -create -output ./target/velopack_libc_osx.dylib ./target/x86_64-apple-darwin/release/libvelopack_libc.dylib ./target/aarch64-apple-darwin/release/libvelopack_libc.dylib
file ./target/velopack_libc_osx.dylib
- name: Upload Rust Build Artifacts - name: Upload Rust Build Artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
@@ -190,18 +206,21 @@ jobs:
run: | run: |
npm install npm install
npm run typecheck npm run typecheck
- uses: caesay/wait-artifact-action@494939e840383463b1686ce3624a8aab059c2c8b - name: Check CPlusPlusWin32 Sample
with: working-directory: samples/CPlusPlusWin32
token: ${{ secrets.GITHUB_TOKEN }} run: .\build.bat 1.0.0
max_wait_seconds: 900 # - uses: caesay/wait-artifact-action@494939e840383463b1686ce3624a8aab059c2c8b
artifacts: rust-${{ matrix.os }} # with:
verbose: true # token: ${{ secrets.GITHUB_TOKEN }}
- name: Download Rust Artifacts # max_wait_seconds: 900
uses: actions/download-artifact@v4 # artifacts: rust-${{ matrix.os }}
with: # verbose: true
path: target/release # - name: Download Rust Artifacts
pattern: rust-${{ matrix.os }} # uses: actions/download-artifact@v4
merge-multiple: true # with:
# path: target/release
# pattern: rust-${{ matrix.os }}
# merge-multiple: true
- name: Test lib-nodejs - name: Test lib-nodejs
working-directory: src/lib-nodejs working-directory: src/lib-nodejs
run: npm run test run: npm run test