Add windows service functionality #344 #1735
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Test Build" | |
on: | |
push: | |
branches: | |
- main | |
paths: | |
- ".github/**/*" | |
- "**.rs" | |
- "**/Cargo.toml" | |
- "**/Cargo.lock" | |
pull_request: | |
branches: | |
- main | |
paths: | |
- ".github/**/*" | |
- "**.rs" | |
- "**/Cargo.toml" | |
- "**/Cargo.lock" | |
jobs: | |
publish: | |
name: Test on ${{ matrix.os }} for ${{ matrix.target }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- x86_64-unknown-linux-gnu | |
- aarch64-unknown-linux-musl | |
- armv7-unknown-linux-musleabihf | |
- arm-unknown-linux-musleabihf | |
- x86_64-pc-windows-msvc | |
- x86_64-apple-darwin | |
- aarch64-apple-darwin | |
include: | |
- os: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
cross: false | |
- os: ubuntu-latest | |
target: aarch64-unknown-linux-musl | |
cross: true | |
- os: ubuntu-latest | |
target: armv7-unknown-linux-musleabihf | |
cross: true | |
- os: ubuntu-latest | |
target: arm-unknown-linux-musleabihf | |
cross: true | |
- os: windows-latest | |
target: x86_64-pc-windows-msvc | |
cross: false | |
- os: macos-latest | |
target: x86_64-apple-darwin | |
cross: false | |
- os: macos-latest | |
target: aarch64-apple-darwin | |
cross: true | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: llvm-tools-preview | |
targets: ${{ matrix.target }} | |
- name: Install cargo-nextest | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: nextest | |
- name: Install cargo-cross | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: cross | |
if: ${{ matrix.cross }} | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo-${{ matrix.target }}- | |
# ----- Non-Cross path | |
- name: cargo build | |
run: cargo build --target=${{ matrix.target }} | |
if: ${{ !matrix.cross }} | |
- name: cargo test | |
run: cargo nextest run --workspace --target=${{ matrix.target }} | |
env: | |
NEXTEST_PROFILE: ci # defined in .config/nextest.toml | |
if: ${{ !matrix.cross }} | |
# ----- Cross path | |
#- name: Install qemu | |
# run: apt-get install --assume-yes binfmt-support qemu-user-static qemu-user | |
# if: ${{ matrix.cross }} | |
- name: cargo build | |
run: cross build --target=${{ matrix.target }} | |
if: ${{ matrix.cross }} | |
# We don't do automated testing for cross builds yet. | |
# - They don't work in the CI. I have yet to figure out why things aren't set up properly. | |
# - The tests run way to slow and all kinds of race conditions are triggered. | |
# Until we find a way to run time related tests in an ultra slow environment, this needs to be postponed. | |
#- name: cargo test | |
# run: cross test run --workspace --target=${{ matrix.target }} | |
# env: | |
# NEXTEST_PROFILE: ci # defined in .config/nextest.toml | |
# if: ${{ matrix.cross }} | |
# ----- Test result artifacts are used by the test-report.yaml workflow. | |
- name: upload test results | |
uses: actions/upload-artifact@v3 | |
if: ${{ !matrix.cross }} | |
with: | |
name: Test results (${{ matrix.target }}) | |
path: target/nextest/ci/junit.xml | |
# the event file (containing the JSON payload for the webhook triggering this | |
# workflow) is needed to generate test result reports with the correct | |
# context. See the test-report.yaml workflow for details. | |
event_file: | |
name: "Event File" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Upload | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Event File | |
path: ${{ github.event_path }} |