Skip to content

Merge branch 'master' of https://github.com/OpenByteDev/netcorehost #254

Merge branch 'master' of https://github.com/OpenByteDev/netcorehost

Merge branch 'master' of https://github.com/OpenByteDev/netcorehost #254

Workflow file for this run

name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
CARGO_TERM_COLOR: always
RUSTDOCFLAGS: "--deny warnings"
RUSTFLAGS: "--deny warnings"
RUST_TEST_THREADS: 1
# COREHOST_TRACE: 2
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
toolchain: ["beta"]
target: ["x86_64-unknown-linux-gnu", "x86_64-pc-windows-msvc", "i686-pc-windows-msvc", "x86_64-apple-darwin"]
dotnet: ["6.0", "7.0", "8.0"]
include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
dotnet_install_download_script: curl -sSL https://dot.net/v1/dotnet-install.sh > dotnet-install.sh; chmod +x dotnet-install.sh
dotnet_install_script: ./dotnet-install.sh
arch: x64
- target: x86_64-pc-windows-msvc
os: windows-latest
dotnet_install_download_script: Invoke-WebRequest -Uri https://dot.net/v1/dotnet-install.ps1 -OutFile dotnet-install.ps1
dotnet_install_script: ./dotnet-install.ps1
arch: x64
- target: i686-pc-windows-msvc
os: windows-latest
dotnet_install_download_script: Invoke-WebRequest -Uri https://dot.net/v1/dotnet-install.ps1 -OutFile dotnet-install.ps1
dotnet_install_script: ./dotnet-install.ps1
arch: x86
- target: x86_64-apple-darwin
os: macos-latest
dotnet_install_download_script: curl -sSL https://dot.net/v1/dotnet-install.sh > dotnet-install.sh; chmod +x dotnet-install.sh
dotnet_install_script: ./dotnet-install.sh
arch: x64
env:
NETCOREHOST_TEST_NETCORE_VERSION: net${{ matrix.dotnet }}
steps:
- uses: actions/checkout@v3
- name: Install .NET SDK ${{ matrix.dotnet }}
run: |
${{ matrix.dotnet_install_download_script }}
${{ matrix.dotnet_install_script }} -Architecture ${{ matrix.arch }} -Channel 6.0
${{ matrix.dotnet_install_script }} -Architecture ${{ matrix.arch }} -Channel 7.0
${{ matrix.dotnet_install_script }} -Architecture ${{ matrix.arch }} -Channel 8.0
if ($Env:DOTNET_INSTALL_DIR) {
$dotnetRoot = $Env:DOTNET_INSTALL_DIR
} else {
if ([System.Environment]::OSVersion.Platform -eq "Win32NT") {
$dotnetRoot = [IO.Path]::Combine($Env:LOCALAPPDATA, "Microsoft", "dotnet")
} else {
$dotnetRoot = [IO.Path]::Combine($Env:HOME, ".dotnet")
}
}
$dotnetRoot >> $env:GITHUB_PATH
"DOTNET_ROOT=$dotnetRoot" >> $env:GITHUB_ENV
dotnet --info
shell: pwsh
- name: Check .NET Installation
run: dotnet --info
- name: Install latest ${{ matrix.toolchain }}
uses: dtolnay/rust-toolchain@master
with:
target: ${{ matrix.target }}
toolchain: ${{ matrix.toolchain }}
override: true
- name: Build
run: cargo build --target ${{ matrix.target }} --no-default-features --features "nethost-download $("net" + "${{ matrix.dotnet }}".replace(".", "_"))"
shell: pwsh
- name: Test
run: cargo test --target ${{ matrix.target }} --all-targets --no-fail-fast --no-default-features --features "nethost-download $("net" + "${{ matrix.dotnet }}".replace(".", "_"))" -- --nocapture
shell: pwsh
cross:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
toolchain: ["beta"]
target: ["aarch64-unknown-linux-gnu", "armv7-unknown-linux-gnueabihf"]
steps:
- uses: actions/checkout@v3
- name: Install latest ${{ matrix.toolchain }}
uses: dtolnay/rust-toolchain@master
with:
target: ${{ matrix.target }}
toolchain: ${{ matrix.toolchain }}
override: true
- name: Install cross
run: cargo install cross --git https://github.com/cross-rs/cross
- name: Build
run: cross build --target ${{ matrix.target }}
examples:
runs-on: ubuntu-latest
strategy:
matrix:
toolchain: ["beta"]
example: ["run-app", "run-app-with-args", "call-managed-function", "passing-parameters", "return-string-from-managed"]
steps:
- uses: actions/checkout@v3
- name: Install latest ${{ matrix.toolchain }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
override: true
- name: Build .NET project for '${{ matrix.example }}'
working-directory: ./examples/${{ matrix.example }}/ExampleProject
run: dotnet build
- name: Run example '${{ matrix.example }}'
run: cargo run --example ${{ matrix.example }}
documentation:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
- os: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install latest nightly
uses: dtolnay/rust-toolchain@master
with:
profile: minimal
toolchain: nightly
override: true
- name: Generate documentation
run: cargo doc --all-features
- name: Install cargo-deadlinks
run: cargo install cargo-deadlinks
- name: Check dead links in doc
run: cargo deadlinks
clippy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
- os: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install latest nightly
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: clippy
override: true
- name: Clippy check
run: cargo clippy --all-features
fmt:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
- os: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install latest nightly
uses: dtolnay/rust-toolchain@master
with:
profile: minimal
toolchain: nightly
override: true
components: rustfmt
- name: Format check
run: cargo fmt --all -- --check