Files
velopack/.github/workflows/build-packages.yml
2025-06-15 22:29:13 +01:00

101 lines
2.9 KiB
YAML

name: Build Packages
on:
workflow_call:
jobs:
python:
runs-on: ubuntu-latest
steps:
- name: Download Python Artifacts
uses: actions/download-artifact@v4
with:
path: pythondl
pattern: wheels-*
merge-multiple: true
- name: Upload lib-python package
uses: actions/upload-artifact@v4
with:
name: lib-python
path: pythondl
rust:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Job Environment
uses: ./.github/actions/job-setup
with:
update-dotnet: true
- name: Download Rust Artifacts
uses: actions/download-artifact@v4
with:
path: target/release
pattern: rust-*
merge-multiple: true
- name: Build .NET
run: dotnet build -c Release /p:PackRustAssets=true /p:ContinuousIntegrationBuild=true
- name: Build lib-nodejs
working-directory: src/lib-nodejs
run: |
npm install
npm run build
- name: Write Version File
run: echo $NBGV_NuGetPackageVersion > version.txt
- name: Upload version file as artifact
uses: actions/upload-artifact@v4
with:
name: build-version
path: version.txt
- name: Upload Package Artifacts
uses: actions/upload-artifact@v4
with:
name: packages
path: build/Release/*nupkg
- name: Rearrange Artifacts
run: |
mkdir src/lib-nodejs/lib/native
mv target/release/*.node src/lib-nodejs/lib/native/
mkdir lib-c
mkdir lib-c/lib
mkdir lib-c/lib-static
mkdir lib-c/include
mv target/release/*.so lib-c/lib/
mv target/release/*.dylib lib-c/lib/
mv target/release/*.dll lib-c/lib/
mv target/release/*.dll.lib lib-c/lib/
mv target/release/*.a lib-c/lib-static/
mv target/release/*.lib lib-c/lib-static/
cp src/lib-cpp/include/* lib-c/include/
mkdir bin-core
mv target/release/* bin-core/
- name: Upload Core Bins
uses: actions/upload-artifact@v4
with:
name: bin-core
path: bin-core/*
- name: Upload lib-c
uses: actions/upload-artifact@v4
with:
name: lib-c
path: lib-c/*
- name: Pack lib-nodejs
working-directory: src/lib-nodejs
run: npm pack
- name: Pack lib-rust
run: cargo package -p velopack --allow-dirty
- name: Upload lib-nodejs package
uses: actions/upload-artifact@v4
with:
name: lib-nodejs
path: src/lib-nodejs/velopack-*.tgz
- name: Upload lib-rust package
uses: actions/upload-artifact@v4
with:
name: lib-rust
path: target/package/velopack-*.crate