mirror of https://github.com/eldruin/ds323x-rs
				
				
				
			
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
name: Build
 | 
						|
on: [push, pull_request]
 | 
						|
 | 
						|
env:
 | 
						|
  RUSTFLAGS: '--deny warnings'
 | 
						|
 | 
						|
jobs:
 | 
						|
  build:
 | 
						|
    name: Build
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        rust: [stable, 1.75.0]
 | 
						|
        TARGET:
 | 
						|
          - x86_64-unknown-linux-gnu
 | 
						|
          - x86_64-unknown-linux-musl
 | 
						|
          - arm-unknown-linux-gnueabi # Raspberry Pi 1
 | 
						|
          - armv7-unknown-linux-gnueabihf # Raspberry Pi 2, 3, etc
 | 
						|
          # Bare metal
 | 
						|
          - thumbv6m-none-eabi
 | 
						|
          - thumbv7em-none-eabi
 | 
						|
          - thumbv7em-none-eabihf
 | 
						|
          - thumbv7m-none-eabi
 | 
						|
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: dtolnay/rust-toolchain@master
 | 
						|
        with:
 | 
						|
          toolchain: ${{ matrix.rust }}
 | 
						|
          targets: ${{ matrix.TARGET }}
 | 
						|
 | 
						|
      - name: Checkout CI scripts
 | 
						|
        uses: actions/checkout@v4
 | 
						|
        with:
 | 
						|
          repository: 'eldruin/rust-driver-ci-scripts'
 | 
						|
          ref: 'master'
 | 
						|
          path: 'ci'
 | 
						|
 | 
						|
      - run: ./ci/patch-no-std.sh
 | 
						|
        if: ${{ ! contains(matrix.TARGET, 'x86_64') }}
 | 
						|
 | 
						|
      - run: cargo build --target=${{ matrix.TARGET }}
 | 
						|
 | 
						|
  checks:
 | 
						|
    name: Checks
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: dtolnay/rust-toolchain@stable
 | 
						|
        with:
 | 
						|
          targets: x86_64-unknown-linux-gnu
 | 
						|
          components: rustfmt
 | 
						|
 | 
						|
      - run: cargo doc
 | 
						|
      - run: cargo fmt --all -- --check
 | 
						|
 | 
						|
  clippy:
 | 
						|
    name: Clippy
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: dtolnay/rust-toolchain@master
 | 
						|
        with:
 | 
						|
          toolchain: 1.83.0
 | 
						|
          targets: x86_64-unknown-linux-gnu
 | 
						|
          components: clippy
 | 
						|
 | 
						|
      - run: cargo clippy --all-targets
 | 
						|
 | 
						|
  test:
 | 
						|
    name: Tests
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        rust: [stable]
 | 
						|
        TARGET: [x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl]
 | 
						|
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: dtolnay/rust-toolchain@master
 | 
						|
        with:
 | 
						|
          toolchain: ${{ matrix.rust }}
 | 
						|
          targets: ${{ matrix.TARGET }}
 | 
						|
 | 
						|
      - name: Test
 | 
						|
        run: cargo test --target=${{ matrix.TARGET }}
 | 
						|
 | 
						|
      - name: Build examples
 | 
						|
        run: cargo build --target=${{ matrix.TARGET }} --examples
 | 
						|
 | 
						|
  coverage:
 | 
						|
    name: Coverage
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: dtolnay/rust-toolchain@stable
 | 
						|
 | 
						|
      - name: Install cargo-llvm-cov
 | 
						|
        uses: taiki-e/install-action@cargo-llvm-cov
 | 
						|
 | 
						|
      - name: Generate code coverage
 | 
						|
        run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
 | 
						|
 | 
						|
      - name: upload to Coveralls
 | 
						|
        uses: coverallsapp/github-action@master
 | 
						|
        with:
 | 
						|
          github-token: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
          path-to-lcov: './lcov.info' |