Skip to content

v0.1.1

v0.1.1 #1028

Workflow file for this run

name: Rust
on:
push:
pull_request:
release:
types: [released]
env:
DEPS: "libasound2-dev libudev-dev libgtk-3-dev"
RUST_BACKTRACE: 1
jobs:
test_pc:
strategy:
fail-fast: false
matrix:
os: [ubuntu, windows, macos]
rust_version: [stable, "1.70"]
name: "test pc ${{ matrix.os }} ${{ matrix.rust_version }}"
runs-on: ${{ matrix.os }}-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
id: "rust-toolchain"
with:
toolchain: ${{ matrix.rust_version }}
- name: Install dependencies
if: ${{ matrix.os == 'ubuntu' }}
run: sudo apt-get update && sudo apt-get install -y ${{ env.DEPS }}
- uses: actions/cache@v3
with:
path: |
~/.cargo/git
~/.cargo/registry
target
!target/doc
key: "PC ${{runner.os}} Rust ${{steps.rust-toolchain.outputs.cachekey}} Lock ${{hashFiles('Cargo.lock')}}"
- run: cargo test --all-features -p mission2teegarden-b-models
- run: cargo test --all-features -p mission2teegarden-b-map
- run: cargo test --all-features -p mission2teegarden-b
- run: cargo doc --all-features -p mission2teegarden-b
build_pc:
strategy:
fail-fast: false
matrix:
os: [ubuntu, windows, macos]
name: build ${{ matrix.os }}
runs-on: ${{ matrix.os }}-latest
needs: [test_pc]
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
id: "rust-toolchain"
- name: Install dependencies
if: ${{ matrix.os == 'ubuntu' }}
run: sudo apt-get update && sudo apt-get install -y ${{ env.DEPS }}
- uses: actions/cache@v3
with:
path: |
~/.cargo/git
~/.cargo/registry
target
key: "PC Build ${{runner.os}} Rust ${{steps.rust-toolchain.outputs.cachekey}} Lock ${{hashFiles('Cargo.lock')}}"
- run: cargo build --all-features --release --locked -p mission2teegarden-b
env:
RUST_BACKTRACE: 1
working-directory: pc
- name: 'Upload Artifact'
uses: actions/upload-artifact@v3
with:
name: "${{ matrix.os }}"
path: |
target/release/mission2teegarden-b
target/release/mission2teegarden-b.exe
check_pybadge:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
rust_version: [stable, nightly, "1.70"]
name: "check pybadge ${{ matrix.rust_version }}"
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
id: "rust-toolchain"
with:
targets: thumbv7em-none-eabihf
toolchain: ${{ matrix.rust_version }}
- uses: actions/cache@v3
with:
path: |
~/.cargo/git
~/.cargo/registry
target
!target/thumbv7em-none-eabihf/doc
key: "Pybadge ${{runner.os}} Rust ${{steps.rust-toolchain.outputs.cachekey}} Lock ${{hashFiles('Cargo.lock')}}"
- name: cargo check models
run: cargo check --all-features --target thumbv7em-none-eabihf -p mission2teegarden-b-models
env:
RUST_BACKTRACE: 1
- name: cargo check pybadge
run: cargo check --all-features -p mission2teegarden-b-pybadge
working-directory: pybadge
env:
RUST_BACKTRACE: 1
- run: cargo doc --all-features -p mission2teegarden-b-pybadge
working-directory: pybadge
env:
RUST_BACKTRACE: 1
build_pybadge:
runs-on: ubuntu-latest
needs: [check_pybadge]
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@nightly
id: "rust-toolchain"
with:
targets: thumbv7em-none-eabihf
- uses: actions/cache@v3
with:
path: |
~/.cargo/git
~/.cargo/registry
target
key: "Build Pybadge ${{runner.os}} Rust ${{steps.rust-toolchain.outputs.cachekey}} Lock ${{hashFiles('Cargo.lock')}}"
- name: cargo check models
run: cargo check --all-features --target thumbv7em-none-eabihf -p mission2teegarden-b-models
env:
RUST_BACKTRACE: 1
- name: cargo bulid pybadge
run: cargo build --release --locked --all-features -p mission2teegarden-b-pybadge
working-directory: pybadge
env:
RUST_BACKTRACE: 1
- run: cp target/thumbv7em-none-eabihf/release/mission2teegarden-b-pybadge mission2teegarden-b-pybadge.elf
- name: 'Upload Artifact'
uses: actions/upload-artifact@v3
with:
name: "pybadge"
path: mission2teegarden-b-pybadge.elf
clippy_pc:
runs-on: ubuntu-latest
needs: [test_pc]
steps:
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y ${{ env.DEPS }}
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
id: "rust-toolchain"
with:
components: clippy
- uses: actions/cache@v3
with:
path: |
~/.cargo/git
~/.cargo/registry
target
key: "Clippy ${{runner.os}} Rust ${{steps.rust-toolchain.outputs.cachekey}} Lock ${{hashFiles('Cargo.lock')}}"
- uses: LoliGothick/clippy-check@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
working-directory: pc
clippy_pybadge:
runs-on: ubuntu-latest
needs: [check_pybadge]
steps:
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y ${{ env.DEPS }}
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
id: "rust-toolchain"
with:
components: clippy
targets: thumbv7em-none-eabihf
- uses: actions/cache@v3
with:
path: |
~/.cargo/git
~/.cargo/registry
target
key: "Clippy ${{runner.os}} Rust ${{steps.rust-toolchain.outputs.cachekey}} Lock ${{hashFiles('Cargo.lock')}}"
- uses: LoliGothick/clippy-check@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
target: thumbv7em-none-eabihf
working-directory: pybadge
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: cargo fmt --all -- --check
doc2readme:
runs-on: ubuntu-latest
container:
image: ghcr.io/msrd0/cargo-doc2readme:nightly
steps:
- name: Install dependencies
run: apk add --no-cache alsa-lib-dev libudev-zero-dev gtk+3.0-dev zlib-static
- uses: actions/checkout@v3
- run: cargo doc2readme --check --expand-macros
working-directory: pc
cargo_publish:
if: ${{ github.event_name == 'release' }}
needs: [test_pc, check_pybadge]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y ${{ env.DEPS }}
- uses: dtolnay/rust-toolchain@stable
- uses: msrd0/cargo-publish-action@v1
with:
packages: mission2teegarden-b-models mission2teegarden-b-map
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
github_publish:
runs-on: ubuntu-latest
needs: [build_pybadge, build_pc]
if: ${{ github.event_name == 'release' }}
steps:
- uses: actions/checkout@v3 #needed to get github.event.release.tag_name
- name: Upload Release Artifacts
uses: LuckyTurtleDev/artifacts2release@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}