name: Build Packages on: workflow_call: jobs: package: 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