Skip to content

Merge pull request #102 from FrameworkComputer/amd13-guid #2

Merge pull request #102 from FrameworkComputer/amd13-guid

Merge pull request #102 from FrameworkComputer/amd13-guid #2

Workflow file for this run

name: CI
on:
push:
jobs:
# Won't work because pkg-config can't find hidapi.
# I changed build.rs to search for 'hidapi-libusb', which is how it's installed
# on Ubuntu. But that still can't find it.
# freebsd-cross-build:
# name: Cross-Build for FreeBSD
# runs-on: 'ubuntu-22.04'
# env:
# CARGO_NET_GIT_FETCH_WITH_CLI: true
# steps:
# - uses: actions/checkout@v3
# - uses: webfactory/ssh-agent@v0.7.0
# with:
# ssh-private-key: |
# ${{ secrets.PRIVKEY_SMBIOS_LIB }}
# - name: Install dependencies
# run: |
# sudo apt-get update
# sudo apt-get install -y libudev-dev libhidapi-dev
# - name: Setup Rust toolchain
# run: rustup show
# - name: Install cross compilation tool
# run: cargo install cross
# - name: Build FreeBSD tool
# run: cross build --target=x86_64-unknown-freebsd --no-default-features --features unix
# - name: Upload FreeBSD App
# uses: actions/upload-artifact@v3
# with:
# name: framework_tool_freebsd
# path: target/x86_64-unknown-freebsd/debug/framework_tool
build:
name: Build Linux and UEFI
runs-on: ubuntu-22.04
env:
CARGO_NET_GIT_FETCH_WITH_CLI: true
steps:
- uses: actions/checkout@v3
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: |
${{ secrets.PRIVKEY_SMBIOS_LIB }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev
- name: Setup Rust toolchain
run: rustup show
- name: Build library (Linux)
run: cargo build -p framework_lib
- name: Build Linux tool
run: cargo build -p framework_tool
- name: Check if Linux tool can start
run: cargo run -- --help
- name: Upload Linux App
uses: actions/upload-artifact@v3
with:
name: framework_tool
path: target/debug/framework_tool
- name: Build UEFI application (no ESP)
run: make -C framework_uefi build/x86_64-unknown-uefi/boot.efi
- name: Upload UEFI App
uses: actions/upload-artifact@v3
with:
name: framework.efi
path: framework_uefi/build/x86_64-unknown-uefi/boot.efi
- name: Install mtools to build ESP (Linux)
run: sudo apt-get install -y mtools
- name: Build ESP (Linux)
run: make -C framework_uefi
build-windows:
name: Build Windows
runs-on: windows-2022
env:
CARGO_NET_GIT_FETCH_WITH_CLI: true
steps:
- uses: actions/checkout@v3
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: |
${{ secrets.PRIVKEY_SMBIOS_LIB }}
- name: Setup Rust toolchain
run: rustup show
- name: Build library (Windows)
run: cargo build -p framework_lib --no-default-features --features "windows"
- name: Build Windows tool
run: cargo build -p framework_tool --no-default-features --features "windows"
- name: Check if Windows tool can start
run: cargo run --no-default-features --features "windows" -- --help
- name: Upload Windows App
uses: actions/upload-artifact@v3
with:
name: framework_tool.exe
path: target/debug/framework_tool.exe
test:
name: Test Suite
runs-on: ubuntu-latest
env:
CARGO_NET_GIT_FETCH_WITH_CLI: true
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: |
${{ secrets.PRIVKEY_SMBIOS_LIB }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev
- name: Setup Rust toolchain
run: rustup show
- name: Run cargo test
run: cargo test -p framework_lib
lints:
name: Lints
runs-on: ubuntu-22.04
env:
CARGO_NET_GIT_FETCH_WITH_CLI: true
steps:
- uses: actions/checkout@v3
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: |
${{ secrets.PRIVKEY_SMBIOS_LIB }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev
- name: Setup Rust toolchain
run: rustup show
- name: Run cargo fmt
run: cargo fmt --all -- --check
- name: Run cargo clippy
run: cargo clippy -p framework_lib -p framework_tool -- -D warnings
# Just make sure doc generation works
doc:
name: Generate docs
runs-on: ubuntu-22.04
env:
CARGO_NET_GIT_FETCH_WITH_CLI: true
# Fail if warnings are produced
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v3
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: |
${{ secrets.PRIVKEY_SMBIOS_LIB }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev
- name: Setup Rust toolchain
run: rustup show
- name: Run cargo doc
run: cargo doc