Skip to content

Update Build.yml - generate native sources archive #461

Update Build.yml - generate native sources archive

Update Build.yml - generate native sources archive #461

Workflow file for this run

name: Build CI
on:
workflow_dispatch:
push:
branches-ignore: release
pull_request:
types: synchronize
branches-ignore: release
env:
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
NATIVE_UTILS_LOG_LEVEL: "0"
jobs:
build-wrappers:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: build
run: |
./gradlew makeNativeWrappers
cp LICENSE native/
cp intel-eula.txt native/
tar -czf native-sources.tar.gz native
- uses: actions/upload-artifact@v4
with:
name: build-wrappers
path: |
./gradle.properties
./*java/dfp/build/generated/sources/nativeWrappers/com/epam/deltix/dfp*
./*java/dfp-math/build/generated/sources/nativeWrappers/com/epam/deltix/dfpmath*
./csharp/EPAM.Deltix.DFP/NativeImpl.cs
./csharp/EPAM.Deltix.DFP/Version.targets
./csharp/EPAM.Deltix.DFPMath/NativeMathImpl.cs
./csharp/EPAM.Deltix.DFPMath/Version.targets
./native/include*
retention-days: 7
- uses: actions/upload-artifact@v4
with:
name: native-sources
path: |
./native-sources.tar.gz
retention-days: 7
build-native-linux:
runs-on: ubuntu-22.04
needs: [build-wrappers]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Download build-wrappers artifacts
uses: actions/download-artifact@v4
with:
name: build-wrappers
- name: build
run: |
sudo apt update
sudo apt install -yqq g++-arm-linux-gnueabihf \
g++-aarch64-linux-gnu \
g++-i686-linux-gnu \
musl-tools
./gradlew makeNativeLinux
- uses: actions/upload-artifact@v4
with:
name: build-native-linux
path: |
./*native/install*
retention-days: 7
build-native-windows:
runs-on: windows-2022
needs: [build-wrappers]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Download build-wrappers artifacts
uses: actions/download-artifact@v4
with:
name: build-wrappers
- name: Use MSBuild
uses: microsoft/setup-msbuild@v2
- name: build
run: |
./gradlew makeNativeWindows
- uses: actions/upload-artifact@v4
with:
name: build-native-windows
path: |
./*native/install*
retention-days: 7
build-native-macos:
runs-on: macos-12
needs: [build-wrappers]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Download build-wrappers artifacts
uses: actions/download-artifact@v4
with:
name: build-wrappers
- name: build
run: |
./gradlew makeNativeDarwin
- uses: actions/upload-artifact@v4
with:
name: build-native-macos
path: |
./*native/install*
retention-days: 7
compress-native:
runs-on: ubuntu-22.04
needs: [build-wrappers, build-native-linux, build-native-windows, build-native-macos]
steps:
- uses: actions/checkout@v4
- name: Download build-wrappers artifacts
uses: actions/download-artifact@v4
with:
name: build-wrappers
- name: Download native-linux artifacts
uses: actions/download-artifact@v4
with:
name: build-native-linux
- name: Download native-windows artifacts
uses: actions/download-artifact@v4
with:
name: build-native-windows
- name: Download native-macos artifacts
uses: actions/download-artifact@v4
with:
name: build-native-macos
- name: compress
run: |
zstd --version
./gradlew nativeInstallToBin
- uses: actions/upload-artifact@v4
with:
name: compress-native
path: |
./gradle.properties
./*native/bin*
./*native/binmath*
./*java/dfp/build/generated/sources/nativeWrappers/com/epam/deltix/dfp*
./*java/dfp-math/build/generated/sources/nativeWrappers/com/epam/deltix/dfpmath*
./csharp/EPAM.Deltix.DFP/NativeImpl.cs
./csharp/EPAM.Deltix.DFP/Version.targets
./csharp/EPAM.Deltix.DFPMath/NativeMathImpl.cs
./csharp/EPAM.Deltix.DFPMath/Version.targets
./native/include*
retention-days: 7
build-java:
runs-on: ubuntu-22.04
needs: [compress-native]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Download compress-native artifacts
uses: actions/download-artifact@v4
with:
name: compress-native
- name: Setup java
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: '19'
- name: build
run: |
./gradlew jar
./gradlew javadocJar
./gradlew copyTestJars
- uses: actions/upload-artifact@v4
with:
name: java-jars
path: |
./*java/dfp/build/libs/*
./*java/dfp-math/build/libs/*
./*java/dfp/testLibs/*
./*java/dfp-math/testLibs/*
./*java/dfpNativeTests/testLibs/*
./*java/vtaTest/testLibs/*
retention-days: 7
build-dotnet:
runs-on: windows-2022
needs: [compress-native]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Download compress-native artifacts
uses: actions/download-artifact@v4
with:
name: compress-native
- name: Setup dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: '3.1.x'
- name: build
run: |
cd csharp
./build -Target Build
- uses: actions/upload-artifact@v4
with:
name: dotnet-build
path: |
./*csharp/EPAM.Deltix.DFP/bin/Release/*
./*csharp/EPAM.Deltix.DFPMath/bin/Release/*
./*csharp/EPAM.Deltix.DFP.Demo/bin/Release/*
retention-days: 7
test-java:
runs-on: ${{ matrix.os }}
needs: [build-java]
strategy:
fail-fast: false
matrix:
os: [ 'ubuntu-22.04', 'windows-2022', 'macos-12']
java: [ '8', '11', '19']
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Download java-jars artifacts
uses: actions/download-artifact@v4
with:
name: java-jars
- name: Setup java
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: ${{ matrix.java }}
- name: Show environment
run: |
./gradlew :java:systemInfo:runSystemInfo
- name: test
run: |
./gradlew runTestJars
test-dotnet:
runs-on: ${{ matrix.os }}
needs: [compress-native]
strategy:
fail-fast: false
matrix:
os: [ 'ubuntu-22.04', 'windows-2022', 'macos-12']
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Download compress-native artifacts
uses: actions/download-artifact@v4
with:
name: compress-native
- name: Setup dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: '3.1.x'
- name: test windows
if: ${{ matrix.os == 'windows-2022' }}
run: |
cd csharp
./build --target=Run-Unit-Tests
- name: test nix
if: ${{ matrix.os == 'ubuntu-22.04' || matrix.os == 'macos-12' }}
run: |
cd csharp
./build.sh --target=Run-Unit-Tests
- name: Upload test results on failure
uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
path: |
csharp/EPAM.Deltix.DFP/bin/*
csharp/EPAM.Deltix.DFPMath/bin/*
csharp/*.txt
csharp/*.xml
name: Dotnet-3.1-${{ matrix.os }}-TestReports