Try building samples in a matrix

This commit is contained in:
Caelan Sayler
2024-11-09 10:59:01 +00:00
committed by Caelan
parent 5d3455f0b8
commit 92ebe96d74
10 changed files with 143 additions and 92 deletions

View File

@@ -151,6 +151,7 @@ jobs:
test-bins:
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
include:
@@ -166,6 +167,14 @@ jobs:
key: "rust-test-${{ matrix.os }}"
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Check lib-rust
run: cargo check -p velopack -F async,delta
- name: Check lib-nodejs
working-directory: src/lib-nodejs
run: |
npm install
npm run build
npm run test
- name: Test Rust
run: cargo llvm-cov ${{ matrix.rust_flags }} --cobertura --output-path ./test/coverage.rust.${{ matrix.os }}.xml
- name: Upload Coverage
@@ -173,51 +182,92 @@ jobs:
with:
files: ./test/coverage.rust.${{ matrix.os }}.xml
check-libs:
# check-libs:
# strategy:
# fail-fast: false
# matrix:
# os: [macos-latest, windows-latest, ubuntu-latest]
# runs-on: ${{ matrix.os }}
# steps:
# - uses: actions/checkout@v4
# with:
# fetch-depth: 0
# - name: Check lib-rust
# run: cargo check -p velopack -F async,delta
# # - name: Check RustIced Sample
# # working-directory: samples/RustIced
# # run: cargo check
# - name: Check lib-nodejs
# working-directory: src/lib-nodejs
# run: |
# npm install
# npm run build
# npm run test
# # - name: Check NodeJSElectron Sample
# # working-directory: samples/NodeJSElectron
# # run: |
# # npm install
# # npm run typecheck
# # - name: Check CPlusPlusWin32 Sample
# # working-directory: samples/CPlusPlusWin32
# # run: |
# # dotnet tool install -g vpk
# # .\build.bat 1.0.0
# # if: ${{ matrix.os == 'windows-latest' }}
# # - name: Install CPlusPlusWidgets Dependencies
# # run: |
# # sudo apt-cache search libwxgt*
# # sudo apt install -y libwxgtk3.0-dev
# # if: ${{ matrix.os == 'ubuntu-latest' }}
# # - name: Check CPlusPlusWidgets Sample
# # working-directory: samples/CPlusPlusWidgets
# # run: |
# # cargo build -p velopack_libc
# # cmake -S . -B build-rel -D CMAKE_BUILD_TYPE=Release
# # cmake --build build-rel -j --config Release
check-samples:
strategy:
fail-fast: false
matrix:
sample: [CPlusPlusWidgets, CPlusPlusWin32, CSharpAvalonia, CSharpWpf, NodeJSElectron, RustIced]
os: [macos-latest, windows-latest, ubuntu-latest]
exclude:
- os: ubuntu-latest
sample: CPlusPlusWin32
- os: macos-latest
sample: CPlusPlusWin32
- os: ubuntu-latest
sample: CSharpWpf
- os: macos-latest
sample: CSharpWpf
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check lib-rust
run: cargo check -p velopack -F async,delta
- name: Check RustIced Sample
working-directory: samples/RustIced
run: cargo check
- name: Check lib-nodejs
working-directory: src/lib-nodejs
run: |
npm install
npm run build
npm run test
- name: Check NodeJSElectron Sample
working-directory: samples/NodeJSElectron
run: |
npm install
npm run typecheck
- name: Check CPlusPlusWin32 Sample
working-directory: samples/CPlusPlusWin32
run: |
dotnet tool install -g vpk
.\build.bat 1.0.0
if: ${{ matrix.os == 'windows-latest' }}
- name: Install CPlusPlusWidgets Dependencies
- name: Install GTK3
run: |
sudo apt-cache search libwxgt*
sudo apt install -y libwxgtk3.0-dev
sudo apt-cache search libgtk*
sudo apt install -y libwxgtk3.0-gtk3-dev libgtk-3-dev
if: ${{ matrix.os == 'ubuntu-latest' }}
- name: Check CPlusPlusWidgets Sample
working-directory: samples/CPlusPlusWidgets
- name: Install VPK
run: dotnet tool install -g vpk
- name: Pack Sample (Windows)
working-directory: samples/${{ matrix.sample }}
run: .\build.bat 1.0.0
if: ${{ matrix.os == 'windows-latest' }}
- name: Pack Sample (Unix)
working-directory: samples/${{ matrix.sample }}
run: |
cargo build -p velopack_libc
cmake -S. -Bbuild-rel -DCMAKE_BUILD_TYPE=Release
cmake --build build-rel -j --config Release
chmod 755 ./build.sh
./build.sh 1.0.0
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
test-vpk:
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
@@ -387,7 +437,7 @@ jobs:
release:
runs-on: ubuntu-latest
needs: [package, test-vpk, test-bins, check-libs]
needs: [package, test-vpk, test-bins, check-samples]
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
steps:
- name: Invoke Release Workflow